mirror of
https://github.com/golang/go.git
synced 2026-02-03 17:35:05 +03:00
Compare commits
117 Commits
go1.19
...
dev.unifie
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d558507db4 | ||
|
|
85d87b9c75 | ||
|
|
fb1bfd4d37 | ||
|
|
44ff9bff0c | ||
|
|
f42dc0de74 | ||
|
|
d29a0282e9 | ||
|
|
c5be4ed7df | ||
|
|
2b8a9a484f | ||
|
|
ddfd639408 | ||
|
|
426ea5702b | ||
|
|
d37cc9a8cd | ||
|
|
ab0a94c6d3 | ||
|
|
1e3c19f3fe | ||
|
|
f28fa952b5 | ||
|
|
87384801dc | ||
|
|
c9f2150cfb | ||
|
|
c6a2dada0d | ||
|
|
29b9a328d2 | ||
|
|
c647264619 | ||
|
|
399f50c9d7 | ||
|
|
4509e951ec | ||
|
|
4400238ec8 | ||
|
|
5999a28de8 | ||
|
|
0e18cf6d09 | ||
|
|
4358a53a97 | ||
|
|
b486518964 | ||
|
|
54a0ab3f7b | ||
|
|
4240ff764b | ||
|
|
8666d89ca8 | ||
|
|
74cee276fe | ||
|
|
222799fde6 | ||
|
|
e9d7f54a1a | ||
|
|
5e8d261918 | ||
|
|
0ad2ec6596 | ||
|
|
7e952962df | ||
|
|
9dbc0f3556 | ||
|
|
d723df76da | ||
|
|
1b7e71e8ae | ||
|
|
f2a9f3e2e0 | ||
|
|
27038b70f8 | ||
|
|
994ff78ba0 | ||
|
|
23554d4744 | ||
|
|
c8d5ccf82e | ||
|
|
ac0844ec27 | ||
|
|
f995946094 | ||
|
|
f2851c67fd | ||
|
|
831fdf1dff | ||
|
|
92798176e7 | ||
|
|
9b70178d58 | ||
|
|
fc72b7705d | ||
|
|
f48fa643f1 | ||
|
|
131f981df0 | ||
|
|
ae43bdc3e3 | ||
|
|
7a8ba83b72 | ||
|
|
64cd6faa13 | ||
|
|
a4c5198a3c | ||
|
|
318027044a | ||
|
|
e971b6a9be | ||
|
|
878439cfe5 | ||
|
|
e376746e54 | ||
|
|
c846fd8e13 | ||
|
|
ebd34e3e45 | ||
|
|
76a82f09d6 | ||
|
|
de649a2a98 | ||
|
|
055a5e55fa | ||
|
|
2cf632cd57 | ||
|
|
9371a65584 | ||
|
|
d667be8831 | ||
|
|
1b838e9556 | ||
|
|
0a503cf43a | ||
|
|
3635b07d16 | ||
|
|
e7219cc093 | ||
|
|
2f3ef73e18 | ||
|
|
95d7ce9ab1 | ||
|
|
f751319a0b | ||
|
|
e3cdc981c8 | ||
|
|
2280d897d6 | ||
|
|
4b78ece3d7 | ||
|
|
398d46d538 | ||
|
|
e7100adbca | ||
|
|
09a838ad86 | ||
|
|
421e9e9db2 | ||
|
|
a3fea7796a | ||
|
|
82a958a661 | ||
|
|
711dacd8cf | ||
|
|
46b01ec667 | ||
|
|
a3e474f867 | ||
|
|
5f5422a2dd | ||
|
|
9cb784ac69 | ||
|
|
c70e93ff3d | ||
|
|
20e1d5ac8c | ||
|
|
61ae2b734c | ||
|
|
3d432b6c4b | ||
|
|
7368647ac6 | ||
|
|
5960f4ec10 | ||
|
|
5e0258c700 | ||
|
|
93833cd5d8 | ||
|
|
f70775ff22 | ||
|
|
fc5dad6646 | ||
|
|
1f4e8afafe | ||
|
|
8a9485c023 | ||
|
|
394ea70cc9 | ||
|
|
f73ad3d24d | ||
|
|
8ef8b60e18 | ||
|
|
1a6c96bb9b | ||
|
|
c50c6bbc03 | ||
|
|
d6df08693c | ||
|
|
e7ef58542c | ||
|
|
9e5c968021 | ||
|
|
46ddf0873e | ||
|
|
a8780f94c3 | ||
|
|
3a1f1e1575 | ||
|
|
df7cb59de4 | ||
|
|
b39ac80871 | ||
|
|
55fc07e164 | ||
|
|
6c33f1d52e | ||
|
|
4d28fcabb4 |
@@ -1 +1,2 @@
|
||||
branch: master
|
||||
branch: dev.unified
|
||||
parent-branch: master
|
||||
|
||||
@@ -10,6 +10,7 @@ package cgotest
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strings"
|
||||
"syscall"
|
||||
@@ -145,6 +146,11 @@ func test1435(t *testing.T) {
|
||||
if syscall.Getuid() != 0 {
|
||||
t.Skip("skipping root only test")
|
||||
}
|
||||
if runtime.GOOS == "linux" {
|
||||
if _, err := os.Stat("/etc/alpine-release"); err == nil {
|
||||
t.Skip("skipping failing test on alpine - go.dev/issue/19938")
|
||||
}
|
||||
}
|
||||
|
||||
// Launch some threads in C.
|
||||
const cts = 5
|
||||
|
||||
@@ -34,6 +34,10 @@ func TestCrossPackageTests(t *testing.T) {
|
||||
case "arm64":
|
||||
t.Skip("Can't exec cmd/go subprocess on iOS.")
|
||||
}
|
||||
case "linux":
|
||||
if _, err := os.Stat("/etc/alpine-release"); err == nil {
|
||||
t.Skip("skipping failing test on alpine - go.dev/issue/39857")
|
||||
}
|
||||
}
|
||||
|
||||
GOPATH, err := os.MkdirTemp("", "cgotest")
|
||||
|
||||
@@ -46,6 +46,13 @@ func TestMain(m *testing.M) {
|
||||
fmt.Printf("SKIP - short mode and $GO_BUILDER_NAME not set\n")
|
||||
os.Exit(0)
|
||||
}
|
||||
if runtime.GOOS == "linux" {
|
||||
if _, err := os.Stat("/etc/alpine-release"); err == nil {
|
||||
fmt.Printf("SKIP - skipping failing test on alpine - go.dev/issue/19938\n")
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
log.SetFlags(log.Lshortfile)
|
||||
os.Exit(testMain(m))
|
||||
}
|
||||
|
||||
@@ -44,6 +44,12 @@ func testMain(m *testing.M) int {
|
||||
fmt.Printf("SKIP - short mode and $GO_BUILDER_NAME not set\n")
|
||||
os.Exit(0)
|
||||
}
|
||||
if runtime.GOOS == "linux" {
|
||||
if _, err := os.Stat("/etc/alpine-release"); err == nil {
|
||||
fmt.Printf("SKIP - skipping failing test on alpine - go.dev/issue/19938\n")
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
GOOS = goEnv("GOOS")
|
||||
GOARCH = goEnv("GOARCH")
|
||||
|
||||
@@ -37,6 +37,8 @@ Flags:
|
||||
Write symbol ABI information to output file. Don't assemble.
|
||||
-o file
|
||||
Write output to file. The default is foo.o for /a/b/c/foo.s.
|
||||
-p pkgpath
|
||||
Set expected package import to pkgpath.
|
||||
-shared
|
||||
Generate code that can be linked into a shared library.
|
||||
-spectre list
|
||||
|
||||
@@ -163,6 +163,7 @@ func ParseFlags() {
|
||||
if buildcfg.Experiment.Unified {
|
||||
Debug.Unified = 1
|
||||
}
|
||||
Debug.SyncFrames = -1 // disable sync markers by default
|
||||
|
||||
Debug.Checkptr = -1 // so we can tell whether it is set explicitly
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build !go1.8
|
||||
// +build !go1.8
|
||||
|
||||
package gc
|
||||
|
||||
import (
|
||||
"cmd/compile/internal/base"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
func startMutexProfiling() {
|
||||
base.Fatalf("mutex profiling unavailable in version %v", runtime.Version())
|
||||
}
|
||||
@@ -75,11 +75,6 @@ func Main(archInit func(*ssagen.ArchInfo)) {
|
||||
|
||||
types.LocalPkg = types.NewPkg(base.Ctxt.Pkgpath, "")
|
||||
|
||||
// We won't know localpkg's height until after import
|
||||
// processing. In the mean time, set to MaxPkgHeight to ensure
|
||||
// height comparisons at least work until then.
|
||||
types.LocalPkg.Height = types.MaxPkgHeight
|
||||
|
||||
// pseudo-package, for scoping
|
||||
types.BuiltinPkg = types.NewPkg("go.builtin", "") // TODO(gri) name this package go.builtin?
|
||||
types.BuiltinPkg.Prefix = "go.builtin" // not go%2ebuiltin
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build go1.8
|
||||
// +build go1.8
|
||||
|
||||
package gc
|
||||
|
||||
import "runtime"
|
||||
|
||||
func startMutexProfiling() {
|
||||
runtime.SetMutexProfileFraction(1)
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
// Copyright 2016 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build go1.7
|
||||
// +build go1.7
|
||||
|
||||
package gc
|
||||
|
||||
import (
|
||||
"os"
|
||||
tracepkg "runtime/trace"
|
||||
|
||||
"cmd/compile/internal/base"
|
||||
)
|
||||
|
||||
func init() {
|
||||
traceHandler = traceHandlerGo17
|
||||
}
|
||||
|
||||
func traceHandlerGo17(traceprofile string) {
|
||||
f, err := os.Create(traceprofile)
|
||||
if err != nil {
|
||||
base.Fatalf("%v", err)
|
||||
}
|
||||
if err := tracepkg.Start(f); err != nil {
|
||||
base.Fatalf("%v", err)
|
||||
}
|
||||
base.AtExit(tracepkg.Stop)
|
||||
}
|
||||
@@ -8,12 +8,11 @@ import (
|
||||
"os"
|
||||
"runtime"
|
||||
"runtime/pprof"
|
||||
tracepkg "runtime/trace"
|
||||
|
||||
"cmd/compile/internal/base"
|
||||
)
|
||||
|
||||
var traceHandler func(string)
|
||||
|
||||
func startProfile() {
|
||||
if base.Flag.CPUProfile != "" {
|
||||
f, err := os.Create(base.Flag.CPUProfile)
|
||||
@@ -64,13 +63,20 @@ func startProfile() {
|
||||
if err != nil {
|
||||
base.Fatalf("%v", err)
|
||||
}
|
||||
startMutexProfiling()
|
||||
runtime.SetMutexProfileFraction(1)
|
||||
base.AtExit(func() {
|
||||
pprof.Lookup("mutex").WriteTo(f, 0)
|
||||
f.Close()
|
||||
})
|
||||
}
|
||||
if base.Flag.TraceProfile != "" && traceHandler != nil {
|
||||
traceHandler(base.Flag.TraceProfile)
|
||||
if base.Flag.TraceProfile != "" {
|
||||
f, err := os.Create(base.Flag.TraceProfile)
|
||||
if err != nil {
|
||||
base.Fatalf("%v", err)
|
||||
}
|
||||
if err := tracepkg.Start(f); err != nil {
|
||||
base.Fatalf("%v", err)
|
||||
}
|
||||
base.AtExit(tracepkg.Stop)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,22 +139,19 @@ func ImportData(imports map[string]*types2.Package, data, path string) (pkg *typ
|
||||
pkgPathOff := r.uint64()
|
||||
pkgPath := p.stringAt(pkgPathOff)
|
||||
pkgName := p.stringAt(r.uint64())
|
||||
pkgHeight := int(r.uint64())
|
||||
_ = int(r.uint64()) // was package height, but not necessary anymore.
|
||||
|
||||
if pkgPath == "" {
|
||||
pkgPath = path
|
||||
}
|
||||
pkg := imports[pkgPath]
|
||||
if pkg == nil {
|
||||
pkg = types2.NewPackageHeight(pkgPath, pkgName, pkgHeight)
|
||||
pkg = types2.NewPackage(pkgPath, pkgName)
|
||||
imports[pkgPath] = pkg
|
||||
} else {
|
||||
if pkg.Name() != pkgName {
|
||||
errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path)
|
||||
}
|
||||
if pkg.Height() != pkgHeight {
|
||||
errorf("conflicting heights %v and %v for package %q", pkg.Height(), pkgHeight, path)
|
||||
}
|
||||
}
|
||||
|
||||
p.pkgCache[pkgPathOff] = pkg
|
||||
|
||||
@@ -39,7 +39,7 @@ func ReadPackage(ctxt *types2.Context, imports map[string]*types2.Package, input
|
||||
|
||||
r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic)
|
||||
pkg := r.pkg()
|
||||
r.Bool() // has init
|
||||
r.Bool() // TODO(mdempsky): Remove; was "has init"
|
||||
|
||||
for i, n := 0, r.Len(); i < n; i++ {
|
||||
// As if r.obj(), but avoiding the Scope.Lookup call,
|
||||
@@ -162,9 +162,7 @@ func (r *reader) doPkg() *types2.Package {
|
||||
}
|
||||
|
||||
name := r.String()
|
||||
height := r.Len()
|
||||
|
||||
pkg := types2.NewPackageHeight(path, name, height)
|
||||
pkg := types2.NewPackage(path, name)
|
||||
r.p.imports[path] = pkg
|
||||
|
||||
// TODO(mdempsky): The list of imported packages is important for
|
||||
|
||||
@@ -430,6 +430,36 @@ func (v *hairyVisitor) doNode(n ir.Node) bool {
|
||||
|
||||
case ir.OMETHEXPR:
|
||||
v.budget++ // Hack for toolstash -cmp.
|
||||
|
||||
case ir.OAS2:
|
||||
n := n.(*ir.AssignListStmt)
|
||||
|
||||
// Unified IR unconditionally rewrites:
|
||||
//
|
||||
// a, b = f()
|
||||
//
|
||||
// into:
|
||||
//
|
||||
// DCL tmp1
|
||||
// DCL tmp2
|
||||
// tmp1, tmp2 = f()
|
||||
// a, b = tmp1, tmp2
|
||||
//
|
||||
// so that it can insert implicit conversions as necessary. To
|
||||
// minimize impact to the existing inlining heuristics (in
|
||||
// particular, to avoid breaking the existing inlinability regress
|
||||
// tests), we need to compensate for this here.
|
||||
if base.Debug.Unified != 0 {
|
||||
if init := n.Rhs[0].Init(); len(init) == 1 {
|
||||
if _, ok := init[0].(*ir.AssignListStmt); ok {
|
||||
// 4 for each value, because each temporary variable now
|
||||
// appears 3 times (DCL, LHS, RHS), plus an extra DCL node.
|
||||
//
|
||||
// 1 for the extra "tmp1, tmp2 = f()" assignment statement.
|
||||
v.budget += 4*int32(len(n.Lhs)) + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
v.budget--
|
||||
@@ -655,9 +685,8 @@ var inlgen int
|
||||
var SSADumpInline = func(*ir.Func) {}
|
||||
|
||||
// NewInline allows the inliner implementation to be overridden.
|
||||
// If it returns nil, the legacy inliner will handle this call
|
||||
// instead.
|
||||
var NewInline = func(call *ir.CallExpr, fn *ir.Func, inlIndex int) *ir.InlinedCallExpr { return nil }
|
||||
// If it returns nil, the function will not be inlined.
|
||||
var NewInline = oldInline
|
||||
|
||||
// If n is a OCALLFUNC node, and fn is an ONAME node for a
|
||||
// function with an inlinable body, return an OINLCALL node that can replace n.
|
||||
@@ -777,7 +806,7 @@ func mkinlcall(n *ir.CallExpr, fn *ir.Func, maxCost int32, inlMap map[*ir.Func]b
|
||||
|
||||
res := NewInline(n, fn, inlIndex)
|
||||
if res == nil {
|
||||
res = oldInline(n, fn, inlIndex)
|
||||
return n
|
||||
}
|
||||
|
||||
// transitive inlining
|
||||
|
||||
@@ -119,8 +119,9 @@ func (n *BasicLit) SetVal(val constant.Value) { n.val = val }
|
||||
// or Op(X, Y) for builtin functions that do not become calls.
|
||||
type BinaryExpr struct {
|
||||
miniExpr
|
||||
X Node
|
||||
Y Node
|
||||
X Node
|
||||
Y Node
|
||||
RType Node `mknode:"-"` // see reflectdata/helpers.go
|
||||
}
|
||||
|
||||
func NewBinaryExpr(pos src.XPos, op Op, x, y Node) *BinaryExpr {
|
||||
@@ -148,6 +149,7 @@ type CallExpr struct {
|
||||
origNode
|
||||
X Node
|
||||
Args Nodes
|
||||
RType Node `mknode:"-"` // see reflectdata/helpers.go
|
||||
KeepAlive []*Name // vars to be kept alive until call returns
|
||||
IsDDD bool
|
||||
NoInline bool
|
||||
@@ -192,6 +194,7 @@ type CompLitExpr struct {
|
||||
miniExpr
|
||||
origNode
|
||||
List Nodes // initialized values
|
||||
RType Node `mknode:"-"` // *runtime._type for OMAPLIT map types
|
||||
Prealloc *Name
|
||||
// For OSLICELIT, Len is the backing array length.
|
||||
// For OMAPLIT, Len is the number of entries that we've removed from List and
|
||||
@@ -246,6 +249,27 @@ func (n *ConstExpr) Val() constant.Value { return n.val }
|
||||
type ConvExpr struct {
|
||||
miniExpr
|
||||
X Node
|
||||
|
||||
// For implementing OCONVIFACE expressions.
|
||||
//
|
||||
// TypeWord is an expression yielding a *runtime._type or
|
||||
// *runtime.itab value to go in the type word of the iface/eface
|
||||
// result. See reflectdata.ConvIfaceTypeWord for further details.
|
||||
//
|
||||
// SrcRType is an expression yielding a *runtime._type value for X,
|
||||
// if it's not pointer-shaped and needs to be heap allocated.
|
||||
TypeWord Node `mknode:"-"`
|
||||
SrcRType Node `mknode:"-"`
|
||||
|
||||
// For -d=checkptr instrumentation of conversions from
|
||||
// unsafe.Pointer to *Elem or *[Len]Elem.
|
||||
//
|
||||
// TODO(mdempsky): We only ever need one of these, but currently we
|
||||
// don't decide which one until walk. Longer term, it probably makes
|
||||
// sense to have a dedicated IR op for `(*[Len]Elem)(ptr)[:n:m]`
|
||||
// expressions.
|
||||
ElemRType Node `mknode:"-"`
|
||||
ElemElemRType Node `mknode:"-"`
|
||||
}
|
||||
|
||||
func NewConvExpr(pos src.XPos, op Op, typ *types.Type, x Node) *ConvExpr {
|
||||
@@ -275,6 +299,7 @@ type IndexExpr struct {
|
||||
miniExpr
|
||||
X Node
|
||||
Index Node
|
||||
RType Node `mknode:"-"` // see reflectdata/helpers.go
|
||||
Assigned bool
|
||||
}
|
||||
|
||||
@@ -385,8 +410,9 @@ func (n *LogicalExpr) SetOp(op Op) {
|
||||
// but *not* OMAKE (that's a pre-typechecking CallExpr).
|
||||
type MakeExpr struct {
|
||||
miniExpr
|
||||
Len Node
|
||||
Cap Node
|
||||
RType Node `mknode:"-"` // see reflectdata/helpers.go
|
||||
Len Node
|
||||
Cap Node
|
||||
}
|
||||
|
||||
func NewMakeExpr(pos src.XPos, op Op, len, cap Node) *MakeExpr {
|
||||
@@ -623,7 +649,7 @@ type TypeAssertExpr struct {
|
||||
|
||||
// Runtime type information provided by walkDotType for
|
||||
// assertions from non-empty interface to concrete type.
|
||||
ITab *AddrExpr `mknode:"-"` // *runtime.itab for Type implementing X's type
|
||||
ITab Node `mknode:"-"` // *runtime.itab for Type implementing X's type
|
||||
}
|
||||
|
||||
func NewTypeAssertExpr(pos src.XPos, x Node, typ *types.Type) *TypeAssertExpr {
|
||||
@@ -650,6 +676,11 @@ type DynamicTypeAssertExpr struct {
|
||||
miniExpr
|
||||
X Node
|
||||
|
||||
// SrcRType is an expression that yields a *runtime._type value
|
||||
// representing X's type. It's used in failed assertion panic
|
||||
// messages.
|
||||
SrcRType Node
|
||||
|
||||
// RType is an expression that yields a *runtime._type value
|
||||
// representing the asserted type.
|
||||
//
|
||||
|
||||
@@ -170,6 +170,17 @@ type CaseClause struct {
|
||||
miniStmt
|
||||
Var *Name // declared variable for this case in type switch
|
||||
List Nodes // list of expressions for switch, early select
|
||||
|
||||
// RTypes is a list of RType expressions, which are copied to the
|
||||
// corresponding OEQ nodes that are emitted when switch statements
|
||||
// are desugared. RTypes[i] must be non-nil if the emitted
|
||||
// comparison for List[i] will be a mixed interface/concrete
|
||||
// comparison; see reflectdata.CompareRType for details.
|
||||
//
|
||||
// Because mixed interface/concrete switch cases are rare, we allow
|
||||
// len(RTypes) < len(List). Missing entries are implicitly nil.
|
||||
RTypes Nodes
|
||||
|
||||
Body Nodes
|
||||
}
|
||||
|
||||
@@ -333,11 +344,20 @@ type RangeStmt struct {
|
||||
Label *types.Sym
|
||||
Def bool
|
||||
X Node
|
||||
RType Node `mknode:"-"` // see reflectdata/helpers.go
|
||||
Key Node
|
||||
Value Node
|
||||
Body Nodes
|
||||
HasBreak bool
|
||||
Prealloc *Name
|
||||
|
||||
// When desugaring the RangeStmt during walk, the assignments to Key
|
||||
// and Value may require OCONVIFACE operations. If so, these fields
|
||||
// will be copied to their respective ConvExpr fields.
|
||||
KeyTypeWord Node `mknode:"-"`
|
||||
KeySrcRType Node `mknode:"-"`
|
||||
ValueTypeWord Node `mknode:"-"`
|
||||
ValueSrcRType Node `mknode:"-"`
|
||||
}
|
||||
|
||||
func NewRangeStmt(pos src.XPos, key, value, x Node, body []Node) *RangeStmt {
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build go1.8
|
||||
// +build go1.8
|
||||
|
||||
package logopt
|
||||
|
||||
import "net/url"
|
||||
|
||||
func pathEscape(s string) string {
|
||||
return url.PathEscape(s)
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build !go1.8
|
||||
// +build !go1.8
|
||||
|
||||
package logopt
|
||||
|
||||
// For bootstrapping with an early version of Go
|
||||
func pathEscape(s string) string {
|
||||
panic("This should never be called; the compiler is not fully bootstrapped if it is.")
|
||||
}
|
||||
@@ -376,7 +376,7 @@ func writerForLSP(subdirpath, file string) io.WriteCloser {
|
||||
if lastdot != -1 {
|
||||
basename = basename[:lastdot]
|
||||
}
|
||||
basename = pathEscape(basename)
|
||||
basename = url.PathEscape(basename)
|
||||
|
||||
// Assume a directory, make a file
|
||||
p := filepath.Join(subdirpath, basename+".json")
|
||||
@@ -428,7 +428,7 @@ func FlushLoggedOpts(ctxt *obj.Link, slashPkgPath string) {
|
||||
if slashPkgPath == "" {
|
||||
slashPkgPath = "\000"
|
||||
}
|
||||
subdirpath := filepath.Join(dest, pathEscape(slashPkgPath))
|
||||
subdirpath := filepath.Join(dest, url.PathEscape(slashPkgPath))
|
||||
err := os.MkdirAll(subdirpath, 0755)
|
||||
if err != nil {
|
||||
log.Fatalf("Could not create directory %s for logging optimizer actions, %v", subdirpath, err)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// UNREVIEWED
|
||||
|
||||
// Copyright 2021 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.
|
||||
@@ -8,6 +6,7 @@ package noder
|
||||
|
||||
import "internal/pkgbits"
|
||||
|
||||
// A codeStmt distinguishes among statement encodings.
|
||||
type codeStmt int
|
||||
|
||||
func (c codeStmt) Marker() pkgbits.SyncMarker { return pkgbits.SyncStmt1 }
|
||||
@@ -31,6 +30,7 @@ const (
|
||||
stmtSelect
|
||||
)
|
||||
|
||||
// A codeExpr distinguishes among expression encodings.
|
||||
type codeExpr int
|
||||
|
||||
func (c codeExpr) Marker() pkgbits.SyncMarker { return pkgbits.SyncExpr }
|
||||
@@ -38,12 +38,9 @@ func (c codeExpr) Value() int { return int(c) }
|
||||
|
||||
// TODO(mdempsky): Split expr into addr, for lvalues.
|
||||
const (
|
||||
exprNone codeExpr = iota
|
||||
exprConst
|
||||
exprType // type expression
|
||||
exprLocal // local variable
|
||||
exprName // global variable or function
|
||||
exprBlank
|
||||
exprConst codeExpr = iota
|
||||
exprLocal // local variable
|
||||
exprGlobal // global variable or function
|
||||
exprCompLit
|
||||
exprFuncLit
|
||||
exprSelector
|
||||
@@ -54,8 +51,23 @@ const (
|
||||
exprBinaryOp
|
||||
exprCall
|
||||
exprConvert
|
||||
exprNew
|
||||
exprMake
|
||||
exprNil
|
||||
)
|
||||
|
||||
type codeAssign int
|
||||
|
||||
func (c codeAssign) Marker() pkgbits.SyncMarker { return pkgbits.SyncAssign }
|
||||
func (c codeAssign) Value() int { return int(c) }
|
||||
|
||||
const (
|
||||
assignBlank codeAssign = iota
|
||||
assignDef
|
||||
assignExpr
|
||||
)
|
||||
|
||||
// A codeDecl distinguishes among declaration encodings.
|
||||
type codeDecl int
|
||||
|
||||
func (c codeDecl) Marker() pkgbits.SyncMarker { return pkgbits.SyncDecl }
|
||||
|
||||
@@ -6,7 +6,6 @@ package noder
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go/constant"
|
||||
|
||||
"cmd/compile/internal/base"
|
||||
"cmd/compile/internal/ir"
|
||||
@@ -53,31 +52,9 @@ func (g *irgen) expr(expr syntax.Expr) ir.Node {
|
||||
|
||||
base.Assert(g.exprStmtOK)
|
||||
|
||||
// The gc backend expects all expressions to have a concrete type, and
|
||||
// types2 mostly satisfies this expectation already. But there are a few
|
||||
// cases where the Go spec doesn't require converting to concrete type,
|
||||
// and so types2 leaves them untyped. So we need to fix those up here.
|
||||
typ := tv.Type
|
||||
if basic, ok := typ.(*types2.Basic); ok && basic.Info()&types2.IsUntyped != 0 {
|
||||
switch basic.Kind() {
|
||||
case types2.UntypedNil:
|
||||
// ok; can appear in type switch case clauses
|
||||
// TODO(mdempsky): Handle as part of type switches instead?
|
||||
case types2.UntypedInt, types2.UntypedFloat, types2.UntypedComplex:
|
||||
// Untyped rhs of non-constant shift, e.g. x << 1.0.
|
||||
// If we have a constant value, it must be an int >= 0.
|
||||
if tv.Value != nil {
|
||||
s := constant.ToInt(tv.Value)
|
||||
assert(s.Kind() == constant.Int && constant.Sign(s) >= 0)
|
||||
}
|
||||
typ = types2.Typ[types2.Uint]
|
||||
case types2.UntypedBool:
|
||||
typ = types2.Typ[types2.Bool] // expression in "if" or "for" condition
|
||||
case types2.UntypedString:
|
||||
typ = types2.Typ[types2.String] // argument to "append" or "copy" calls
|
||||
default:
|
||||
base.FatalfAt(g.pos(expr), "unexpected untyped type: %v", basic)
|
||||
}
|
||||
typ := idealType(tv)
|
||||
if typ == nil {
|
||||
base.FatalfAt(g.pos(expr), "unexpected untyped type: %v", tv.Type)
|
||||
}
|
||||
|
||||
// Constant expression.
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"cmd/compile/internal/ir"
|
||||
"cmd/compile/internal/typecheck"
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/compile/internal/types2"
|
||||
"cmd/internal/src"
|
||||
)
|
||||
|
||||
@@ -39,10 +40,6 @@ func typed(typ *types.Type, n ir.Node) ir.Node {
|
||||
|
||||
// Values
|
||||
|
||||
func Const(pos src.XPos, typ *types.Type, val constant.Value) ir.Node {
|
||||
return typed(typ, ir.NewBasicLit(pos, val))
|
||||
}
|
||||
|
||||
func OrigConst(pos src.XPos, typ *types.Type, val constant.Value, op ir.Op, raw string) ir.Node {
|
||||
orig := ir.NewRawOrigExpr(pos, op, raw)
|
||||
return ir.NewConstExpr(val, typed(typ, orig))
|
||||
@@ -224,3 +221,33 @@ func IncDec(pos src.XPos, op ir.Op, x ir.Node) *ir.AssignOpStmt {
|
||||
}
|
||||
return ir.NewAssignOpStmt(pos, op, x, bl)
|
||||
}
|
||||
|
||||
func idealType(tv types2.TypeAndValue) types2.Type {
|
||||
// The gc backend expects all expressions to have a concrete type, and
|
||||
// types2 mostly satisfies this expectation already. But there are a few
|
||||
// cases where the Go spec doesn't require converting to concrete type,
|
||||
// and so types2 leaves them untyped. So we need to fix those up here.
|
||||
typ := tv.Type
|
||||
if basic, ok := typ.(*types2.Basic); ok && basic.Info()&types2.IsUntyped != 0 {
|
||||
switch basic.Kind() {
|
||||
case types2.UntypedNil:
|
||||
// ok; can appear in type switch case clauses
|
||||
// TODO(mdempsky): Handle as part of type switches instead?
|
||||
case types2.UntypedInt, types2.UntypedFloat, types2.UntypedComplex:
|
||||
// Untyped rhs of non-constant shift, e.g. x << 1.0.
|
||||
// If we have a constant value, it must be an int >= 0.
|
||||
if tv.Value != nil {
|
||||
s := constant.ToInt(tv.Value)
|
||||
assert(s.Kind() == constant.Int && constant.Sign(s) >= 0)
|
||||
}
|
||||
typ = types2.Typ[types2.Uint]
|
||||
case types2.UntypedBool:
|
||||
typ = types2.Typ[types2.Bool] // expression in "if" or "for" condition
|
||||
case types2.UntypedString:
|
||||
typ = types2.Typ[types2.String] // argument to "append" or "copy" calls
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return typ
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ func readImportFile(path string, target *ir.Package, env *types2.Context, packag
|
||||
pr := pkgbits.NewPkgDecoder(pkg1.Path, data)
|
||||
|
||||
// Read package descriptors for both types2 and compiler backend.
|
||||
readPackage(newPkgReader(pr), pkg1)
|
||||
readPackage(newPkgReader(pr), pkg1, false)
|
||||
pkg2 = importer.ReadPackage(env, packages, pr)
|
||||
|
||||
case 'i':
|
||||
|
||||
@@ -219,7 +219,6 @@ type typeDelayInfo struct {
|
||||
|
||||
func (g *irgen) generate(noders []*noder) {
|
||||
types.LocalPkg.Name = g.self.Name()
|
||||
types.LocalPkg.Height = g.self.Height()
|
||||
typecheck.TypecheckAllowed = true
|
||||
|
||||
// Prevent size calculations until we set the underlying type
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// UNREVIEWED
|
||||
|
||||
// Copyright 2021 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.
|
||||
@@ -34,13 +32,20 @@ import (
|
||||
// low-level linking details can be moved there, but the logic for
|
||||
// handling extension data needs to stay in the compiler.
|
||||
|
||||
// A linker combines a package's stub export data with any referenced
|
||||
// elements from imported packages into a single, self-contained
|
||||
// export data file.
|
||||
type linker struct {
|
||||
pw pkgbits.PkgEncoder
|
||||
|
||||
pkgs map[string]pkgbits.Index
|
||||
decls map[*types.Sym]pkgbits.Index
|
||||
pkgs map[string]pkgbits.Index
|
||||
decls map[*types.Sym]pkgbits.Index
|
||||
bodies map[*types.Sym]pkgbits.Index
|
||||
}
|
||||
|
||||
// relocAll ensures that all elements specified by pr and relocs are
|
||||
// copied into the output export data file, and returns the
|
||||
// corresponding indices in the output.
|
||||
func (l *linker) relocAll(pr *pkgReader, relocs []pkgbits.RelocEnt) []pkgbits.RelocEnt {
|
||||
res := make([]pkgbits.RelocEnt, len(relocs))
|
||||
for i, rent := range relocs {
|
||||
@@ -50,6 +55,8 @@ func (l *linker) relocAll(pr *pkgReader, relocs []pkgbits.RelocEnt) []pkgbits.Re
|
||||
return res
|
||||
}
|
||||
|
||||
// relocIdx ensures a single element is copied into the output export
|
||||
// data file, and returns the corresponding index in the output.
|
||||
func (l *linker) relocIdx(pr *pkgReader, k pkgbits.RelocKind, idx pkgbits.Index) pkgbits.Index {
|
||||
assert(pr != nil)
|
||||
|
||||
@@ -85,10 +92,19 @@ func (l *linker) relocIdx(pr *pkgReader, k pkgbits.RelocKind, idx pkgbits.Index)
|
||||
return newidx
|
||||
}
|
||||
|
||||
// relocString copies the specified string from pr into the output
|
||||
// export data file, deduplicating it against other strings.
|
||||
func (l *linker) relocString(pr *pkgReader, idx pkgbits.Index) pkgbits.Index {
|
||||
return l.pw.StringIdx(pr.StringIdx(idx))
|
||||
}
|
||||
|
||||
// relocPkg copies the specified package from pr into the output
|
||||
// export data file, rewriting its import path to match how it was
|
||||
// imported.
|
||||
//
|
||||
// TODO(mdempsky): Since CL 391014, we already have the compilation
|
||||
// unit's import path, so there should be no need to rewrite packages
|
||||
// anymore.
|
||||
func (l *linker) relocPkg(pr *pkgReader, idx pkgbits.Index) pkgbits.Index {
|
||||
path := pr.PeekPkgPath(idx)
|
||||
|
||||
@@ -114,6 +130,9 @@ func (l *linker) relocPkg(pr *pkgReader, idx pkgbits.Index) pkgbits.Index {
|
||||
return w.Flush()
|
||||
}
|
||||
|
||||
// relocObj copies the specified object from pr into the output export
|
||||
// data file, rewriting its compiler-private extension data (e.g.,
|
||||
// adding inlining cost and escape analysis results for functions).
|
||||
func (l *linker) relocObj(pr *pkgReader, idx pkgbits.Index) pkgbits.Index {
|
||||
path, name, tag := pr.PeekObj(idx)
|
||||
sym := types.NewPkg(path, "").Lookup(name)
|
||||
@@ -152,21 +171,12 @@ func (l *linker) relocObj(pr *pkgReader, idx pkgbits.Index) pkgbits.Index {
|
||||
l.relocCommon(pr, &wname, pkgbits.RelocName, idx)
|
||||
l.relocCommon(pr, &wdict, pkgbits.RelocObjDict, idx)
|
||||
|
||||
var obj *ir.Name
|
||||
if sym.Pkg == types.LocalPkg {
|
||||
var ok bool
|
||||
obj, ok = sym.Def.(*ir.Name)
|
||||
// Generic types and functions won't have definitions, and imported
|
||||
// objects may not either.
|
||||
obj, _ := sym.Def.(*ir.Name)
|
||||
local := sym.Pkg == types.LocalPkg
|
||||
|
||||
// Generic types and functions and declared constraint types won't
|
||||
// have definitions.
|
||||
// For now, just generically copy their extension data.
|
||||
// TODO(mdempsky): Restore assertion.
|
||||
if !ok && false {
|
||||
base.Fatalf("missing definition for %v", sym)
|
||||
}
|
||||
}
|
||||
|
||||
if obj != nil {
|
||||
if local && obj != nil {
|
||||
wext.Sync(pkgbits.SyncObject1)
|
||||
switch tag {
|
||||
case pkgbits.ObjFunc:
|
||||
@@ -181,9 +191,66 @@ func (l *linker) relocObj(pr *pkgReader, idx pkgbits.Index) pkgbits.Index {
|
||||
l.relocCommon(pr, &wext, pkgbits.RelocObjExt, idx)
|
||||
}
|
||||
|
||||
// Check if we need to export the inline bodies for functions and
|
||||
// methods.
|
||||
if obj != nil {
|
||||
if obj.Op() == ir.ONAME && obj.Class == ir.PFUNC {
|
||||
l.exportBody(obj, local)
|
||||
}
|
||||
|
||||
if obj.Op() == ir.OTYPE {
|
||||
if typ := obj.Type(); !typ.IsInterface() {
|
||||
for _, method := range typ.Methods().Slice() {
|
||||
l.exportBody(method.Nname.(*ir.Name), local)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return w.Idx
|
||||
}
|
||||
|
||||
// exportBody exports the given function or method's body, if
|
||||
// appropriate. local indicates whether it's a local function or
|
||||
// method available on a locally declared type. (Due to cross-package
|
||||
// type aliases, a method may be imported, but still available on a
|
||||
// locally declared type.)
|
||||
func (l *linker) exportBody(obj *ir.Name, local bool) {
|
||||
assert(obj.Op() == ir.ONAME && obj.Class == ir.PFUNC)
|
||||
|
||||
fn := obj.Func
|
||||
if fn.Inl == nil {
|
||||
return // not inlinable anyway
|
||||
}
|
||||
|
||||
// As a simple heuristic, if the function was declared in this
|
||||
// package or we inlined it somewhere in this package, then we'll
|
||||
// (re)export the function body. This isn't perfect, but seems
|
||||
// reasonable in practice. In particular, it has the nice property
|
||||
// that in the worst case, adding a blank import ensures the
|
||||
// function body is available for inlining.
|
||||
//
|
||||
// TODO(mdempsky): Reimplement the reachable method crawling logic
|
||||
// from typecheck/crawler.go.
|
||||
exportBody := local || fn.Inl.Body != nil
|
||||
if !exportBody {
|
||||
return
|
||||
}
|
||||
|
||||
sym := obj.Sym()
|
||||
if _, ok := l.bodies[sym]; ok {
|
||||
// Due to type aliases, we might visit methods multiple times.
|
||||
base.AssertfAt(obj.Type().Recv() != nil, obj.Pos(), "expected method: %v", obj)
|
||||
return
|
||||
}
|
||||
|
||||
pri, ok := bodyReaderFor(fn)
|
||||
assert(ok)
|
||||
l.bodies[sym] = l.relocIdx(pri.pr, pkgbits.RelocBody, pri.idx)
|
||||
}
|
||||
|
||||
// relocCommon copies the specified element from pr into w,
|
||||
// recursively relocating any referenced elements as well.
|
||||
func (l *linker) relocCommon(pr *pkgReader, w *pkgbits.Encoder, k pkgbits.RelocKind, idx pkgbits.Index) {
|
||||
r := pr.NewDecoderRaw(k, idx)
|
||||
w.Relocs = l.relocAll(pr, r.Relocs)
|
||||
@@ -220,10 +287,6 @@ func (l *linker) relocFuncExt(w *pkgbits.Encoder, name *ir.Name) {
|
||||
if inl := name.Func.Inl; w.Bool(inl != nil) {
|
||||
w.Len(int(inl.Cost))
|
||||
w.Bool(inl.CanDelayResults)
|
||||
|
||||
pri, ok := bodyReader[name.Func]
|
||||
assert(ok)
|
||||
w.Reloc(pkgbits.RelocBody, l.relocIdx(pri.pr, pkgbits.RelocBody, pri.idx))
|
||||
}
|
||||
|
||||
w.Sync(pkgbits.SyncEOF)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// UNREVIEWED
|
||||
|
||||
// Copyright 2021 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.
|
||||
@@ -12,12 +10,12 @@ import (
|
||||
"cmd/compile/internal/syntax"
|
||||
)
|
||||
|
||||
// This file defines helper functions useful for satisfying toolstash
|
||||
// -cmp when compared against the legacy frontend behavior, but can be
|
||||
// removed after that's no longer a concern.
|
||||
|
||||
// typeExprEndPos returns the position that noder would leave base.Pos
|
||||
// after parsing the given type expression.
|
||||
//
|
||||
// Deprecated: This function exists to emulate position semantics from
|
||||
// Go 1.17, necessary for compatibility with the backend DWARF
|
||||
// generation logic that assigns variables to their appropriate scope.
|
||||
func typeExprEndPos(expr0 syntax.Expr) syntax.Pos {
|
||||
for {
|
||||
switch expr := expr0.(type) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1357,6 +1357,9 @@ func (g *genInst) dictPass(info *instInfo) {
|
||||
}
|
||||
case ir.ODOTTYPE, ir.ODOTTYPE2:
|
||||
dt := m.(*ir.TypeAssertExpr)
|
||||
if dt.Type().IsEmptyInterface() || (dt.Type().IsInterface() && !dt.Type().HasShape()) {
|
||||
break
|
||||
}
|
||||
if !dt.Type().HasShape() && !(dt.X.Type().HasShape() && !dt.X.Type().IsEmptyInterface()) {
|
||||
break
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// UNREVIEWED
|
||||
|
||||
// Copyright 2021 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.
|
||||
@@ -82,13 +80,12 @@ func unified(noders []*noder) {
|
||||
base.Flag.Lang = fmt.Sprintf("go1.%d", goversion.Version)
|
||||
types.ParseLangFlag()
|
||||
|
||||
types.LocalPkg.Height = 0 // reset so pkgReader.pkgIdx doesn't complain
|
||||
target := typecheck.Target
|
||||
|
||||
typecheck.TypecheckAllowed = true
|
||||
|
||||
localPkgReader = newPkgReader(pkgbits.NewPkgDecoder(types.LocalPkg.Path, data))
|
||||
readPackage(localPkgReader, types.LocalPkg)
|
||||
readPackage(localPkgReader, types.LocalPkg, true)
|
||||
|
||||
r := localPkgReader.newReader(pkgbits.RelocMeta, pkgbits.PrivateRootIdx, pkgbits.SyncPrivate)
|
||||
r.pkgInit(types.LocalPkg, target)
|
||||
@@ -164,7 +161,7 @@ func writePkgStub(noders []*noder) string {
|
||||
{
|
||||
w := publicRootWriter
|
||||
w.pkg(pkg)
|
||||
w.Bool(false) // has init; XXX
|
||||
w.Bool(false) // TODO(mdempsky): Remove; was "has init"
|
||||
|
||||
scope := pkg.Scope()
|
||||
names := scope.Names()
|
||||
@@ -227,42 +224,76 @@ func freePackage(pkg *types2.Package) {
|
||||
base.Fatalf("package never finalized")
|
||||
}
|
||||
|
||||
func readPackage(pr *pkgReader, importpkg *types.Pkg) {
|
||||
r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic)
|
||||
// readPackage reads package export data from pr to populate
|
||||
// importpkg.
|
||||
//
|
||||
// localStub indicates whether pr is reading the stub export data for
|
||||
// the local package, as opposed to relocated export data for an
|
||||
// import.
|
||||
func readPackage(pr *pkgReader, importpkg *types.Pkg, localStub bool) {
|
||||
{
|
||||
r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic)
|
||||
|
||||
pkg := r.pkg()
|
||||
base.Assertf(pkg == importpkg, "have package %q (%p), want package %q (%p)", pkg.Path, pkg, importpkg.Path, importpkg)
|
||||
pkg := r.pkg()
|
||||
base.Assertf(pkg == importpkg, "have package %q (%p), want package %q (%p)", pkg.Path, pkg, importpkg.Path, importpkg)
|
||||
|
||||
if r.Bool() {
|
||||
sym := pkg.Lookup(".inittask")
|
||||
task := ir.NewNameAt(src.NoXPos, sym)
|
||||
task.Class = ir.PEXTERN
|
||||
sym.Def = task
|
||||
r.Bool() // TODO(mdempsky): Remove; was "has init"
|
||||
|
||||
for i, n := 0, r.Len(); i < n; i++ {
|
||||
r.Sync(pkgbits.SyncObject)
|
||||
assert(!r.Bool())
|
||||
idx := r.Reloc(pkgbits.RelocObj)
|
||||
assert(r.Len() == 0)
|
||||
|
||||
path, name, code := r.p.PeekObj(idx)
|
||||
if code != pkgbits.ObjStub {
|
||||
objReader[types.NewPkg(path, "").Lookup(name)] = pkgReaderIndex{pr, idx, nil, nil}
|
||||
}
|
||||
}
|
||||
|
||||
r.Sync(pkgbits.SyncEOF)
|
||||
}
|
||||
|
||||
for i, n := 0, r.Len(); i < n; i++ {
|
||||
r.Sync(pkgbits.SyncObject)
|
||||
assert(!r.Bool())
|
||||
idx := r.Reloc(pkgbits.RelocObj)
|
||||
assert(r.Len() == 0)
|
||||
if !localStub {
|
||||
r := pr.newReader(pkgbits.RelocMeta, pkgbits.PrivateRootIdx, pkgbits.SyncPrivate)
|
||||
|
||||
path, name, code := r.p.PeekObj(idx)
|
||||
if code != pkgbits.ObjStub {
|
||||
objReader[types.NewPkg(path, "").Lookup(name)] = pkgReaderIndex{pr, idx, nil}
|
||||
if r.Bool() {
|
||||
sym := importpkg.Lookup(".inittask")
|
||||
task := ir.NewNameAt(src.NoXPos, sym)
|
||||
task.Class = ir.PEXTERN
|
||||
sym.Def = task
|
||||
}
|
||||
|
||||
for i, n := 0, r.Len(); i < n; i++ {
|
||||
path := r.String()
|
||||
name := r.String()
|
||||
idx := r.Reloc(pkgbits.RelocBody)
|
||||
|
||||
sym := types.NewPkg(path, "").Lookup(name)
|
||||
if _, ok := importBodyReader[sym]; !ok {
|
||||
importBodyReader[sym] = pkgReaderIndex{pr, idx, nil, nil}
|
||||
}
|
||||
}
|
||||
|
||||
r.Sync(pkgbits.SyncEOF)
|
||||
}
|
||||
}
|
||||
|
||||
// writeUnifiedExport writes to `out` the finalized, self-contained
|
||||
// Unified IR export data file for the current compilation unit.
|
||||
func writeUnifiedExport(out io.Writer) {
|
||||
l := linker{
|
||||
pw: pkgbits.NewPkgEncoder(base.Debug.SyncFrames),
|
||||
|
||||
pkgs: make(map[string]pkgbits.Index),
|
||||
decls: make(map[*types.Sym]pkgbits.Index),
|
||||
pkgs: make(map[string]pkgbits.Index),
|
||||
decls: make(map[*types.Sym]pkgbits.Index),
|
||||
bodies: make(map[*types.Sym]pkgbits.Index),
|
||||
}
|
||||
|
||||
publicRootWriter := l.pw.NewEncoder(pkgbits.RelocMeta, pkgbits.SyncPublic)
|
||||
privateRootWriter := l.pw.NewEncoder(pkgbits.RelocMeta, pkgbits.SyncPrivate)
|
||||
assert(publicRootWriter.Idx == pkgbits.PublicRootIdx)
|
||||
assert(privateRootWriter.Idx == pkgbits.PrivateRootIdx)
|
||||
|
||||
var selfPkgIdx pkgbits.Index
|
||||
|
||||
@@ -273,7 +304,7 @@ func writeUnifiedExport(out io.Writer) {
|
||||
r.Sync(pkgbits.SyncPkg)
|
||||
selfPkgIdx = l.relocIdx(pr, pkgbits.RelocPkg, r.Reloc(pkgbits.RelocPkg))
|
||||
|
||||
r.Bool() // has init
|
||||
r.Bool() // TODO(mdempsky): Remove; was "has init"
|
||||
|
||||
for i, n := 0, r.Len(); i < n; i++ {
|
||||
r.Sync(pkgbits.SyncObject)
|
||||
@@ -304,8 +335,7 @@ func writeUnifiedExport(out io.Writer) {
|
||||
|
||||
w.Sync(pkgbits.SyncPkg)
|
||||
w.Reloc(pkgbits.RelocPkg, selfPkgIdx)
|
||||
|
||||
w.Bool(typecheck.Lookup(".inittask").Def != nil)
|
||||
w.Bool(false) // TODO(mdempsky): Remove; was "has init"
|
||||
|
||||
w.Len(len(idxs))
|
||||
for _, idx := range idxs {
|
||||
@@ -319,5 +349,31 @@ func writeUnifiedExport(out io.Writer) {
|
||||
w.Flush()
|
||||
}
|
||||
|
||||
{
|
||||
type symIdx struct {
|
||||
sym *types.Sym
|
||||
idx pkgbits.Index
|
||||
}
|
||||
var bodies []symIdx
|
||||
for sym, idx := range l.bodies {
|
||||
bodies = append(bodies, symIdx{sym, idx})
|
||||
}
|
||||
sort.Slice(bodies, func(i, j int) bool { return bodies[i].idx < bodies[j].idx })
|
||||
|
||||
w := privateRootWriter
|
||||
|
||||
w.Bool(typecheck.Lookup(".inittask").Def != nil)
|
||||
|
||||
w.Len(len(bodies))
|
||||
for _, body := range bodies {
|
||||
w.String(body.sym.Pkg.Path)
|
||||
w.String(body.sym.Name)
|
||||
w.Reloc(pkgbits.RelocBody, body.idx)
|
||||
}
|
||||
|
||||
w.Sync(pkgbits.SyncEOF)
|
||||
w.Flush()
|
||||
}
|
||||
|
||||
base.Ctxt.Fingerprint = l.pw.DumpTo(out)
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
226
src/cmd/compile/internal/reflectdata/helpers.go
Normal file
226
src/cmd/compile/internal/reflectdata/helpers.go
Normal file
@@ -0,0 +1,226 @@
|
||||
// Copyright 2022 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 reflectdata
|
||||
|
||||
import (
|
||||
"cmd/compile/internal/base"
|
||||
"cmd/compile/internal/ir"
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/internal/src"
|
||||
)
|
||||
|
||||
func hasRType(n, rtype ir.Node, fieldName string) bool {
|
||||
if rtype != nil {
|
||||
return true
|
||||
}
|
||||
|
||||
// We make an exception for `init`, because we still depend on
|
||||
// pkginit for sorting package initialization statements, and it
|
||||
// gets confused by implicit conversions. Also, because
|
||||
// package-scope statements can never be generic, so they'll never
|
||||
// require dictionary lookups.
|
||||
if base.Debug.Unified != 0 && ir.CurFunc.Nname.Sym().Name != "init" {
|
||||
ir.Dump("CurFunc", ir.CurFunc)
|
||||
base.FatalfAt(n.Pos(), "missing %s in %v: %+v", fieldName, ir.CurFunc, n)
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// assertOp asserts that n is an op.
|
||||
func assertOp(n ir.Node, op ir.Op) {
|
||||
base.AssertfAt(n.Op() == op, n.Pos(), "want %v, have %v", op, n)
|
||||
}
|
||||
|
||||
// assertOp2 asserts that n is an op1 or op2.
|
||||
func assertOp2(n ir.Node, op1, op2 ir.Op) {
|
||||
base.AssertfAt(n.Op() == op1 || n.Op() == op2, n.Pos(), "want %v or %v, have %v", op1, op2, n)
|
||||
}
|
||||
|
||||
// kindRType asserts that typ has the given kind, and returns an
|
||||
// expression that yields the *runtime._type value representing typ.
|
||||
func kindRType(pos src.XPos, typ *types.Type, k types.Kind) ir.Node {
|
||||
base.AssertfAt(typ.Kind() == k, pos, "want %v type, have %v", k, typ)
|
||||
return TypePtrAt(pos, typ)
|
||||
}
|
||||
|
||||
// mapRType asserts that typ is a map type, and returns an expression
|
||||
// that yields the *runtime._type value representing typ.
|
||||
func mapRType(pos src.XPos, typ *types.Type) ir.Node {
|
||||
return kindRType(pos, typ, types.TMAP)
|
||||
}
|
||||
|
||||
// chanRType asserts that typ is a map type, and returns an expression
|
||||
// that yields the *runtime._type value representing typ.
|
||||
func chanRType(pos src.XPos, typ *types.Type) ir.Node {
|
||||
return kindRType(pos, typ, types.TCHAN)
|
||||
}
|
||||
|
||||
// sliceElemRType asserts that typ is a slice type, and returns an
|
||||
// expression that yields the *runtime._type value representing typ's
|
||||
// element type.
|
||||
func sliceElemRType(pos src.XPos, typ *types.Type) ir.Node {
|
||||
base.AssertfAt(typ.IsSlice(), pos, "want slice type, have %v", typ)
|
||||
return TypePtrAt(pos, typ.Elem())
|
||||
}
|
||||
|
||||
// concreteRType asserts that typ is not an interface type, and
|
||||
// returns an expression that yields the *runtime._type value
|
||||
// representing typ.
|
||||
func concreteRType(pos src.XPos, typ *types.Type) ir.Node {
|
||||
base.AssertfAt(!typ.IsInterface(), pos, "want non-interface type, have %v", typ)
|
||||
return TypePtrAt(pos, typ)
|
||||
}
|
||||
|
||||
// AppendElemRType asserts that n is an "append" operation, and
|
||||
// returns an expression that yields the *runtime._type value
|
||||
// representing the result slice type's element type.
|
||||
func AppendElemRType(pos src.XPos, n *ir.CallExpr) ir.Node {
|
||||
assertOp(n, ir.OAPPEND)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return sliceElemRType(pos, n.Type())
|
||||
}
|
||||
|
||||
// CompareRType asserts that n is a comparison (== or !=) operation
|
||||
// between expressions of interface and non-interface type, and
|
||||
// returns an expression that yields the *runtime._type value
|
||||
// representing the non-interface type.
|
||||
func CompareRType(pos src.XPos, n *ir.BinaryExpr) ir.Node {
|
||||
assertOp2(n, ir.OEQ, ir.ONE)
|
||||
base.AssertfAt(n.X.Type().IsInterface() != n.Y.Type().IsInterface(), n.Pos(), "expect mixed interface and non-interface, have %L and %L", n.X, n.Y)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
typ := n.X.Type()
|
||||
if typ.IsInterface() {
|
||||
typ = n.Y.Type()
|
||||
}
|
||||
return concreteRType(pos, typ)
|
||||
}
|
||||
|
||||
// ConvIfaceTypeWord asserts that n is conversion to interface type,
|
||||
// and returns an expression that yields the *runtime._type or
|
||||
// *runtime.itab value necessary for implementing the conversion.
|
||||
//
|
||||
// - *runtime._type for the destination type, for I2I conversions
|
||||
// - *runtime.itab, for T2I conversions
|
||||
// - *runtime._type for the source type, for T2E conversions
|
||||
func ConvIfaceTypeWord(pos src.XPos, n *ir.ConvExpr) ir.Node {
|
||||
assertOp(n, ir.OCONVIFACE)
|
||||
src, dst := n.X.Type(), n.Type()
|
||||
base.AssertfAt(dst.IsInterface(), n.Pos(), "want interface type, have %L", n)
|
||||
if hasRType(n, n.TypeWord, "TypeWord") {
|
||||
return n.TypeWord
|
||||
}
|
||||
if dst.IsEmptyInterface() {
|
||||
return concreteRType(pos, src) // direct eface construction
|
||||
}
|
||||
if !src.IsInterface() {
|
||||
return ITabAddrAt(pos, src, dst) // direct iface construction
|
||||
}
|
||||
return TypePtrAt(pos, dst) // convI2I
|
||||
}
|
||||
|
||||
// ConvIfaceSrcRType asserts that n is a conversion from
|
||||
// non-interface type to interface type (or OCONVIDATA operation), and
|
||||
// returns an expression that yields the *runtime._type for copying
|
||||
// the convertee value to the heap.
|
||||
func ConvIfaceSrcRType(pos src.XPos, n *ir.ConvExpr) ir.Node {
|
||||
assertOp2(n, ir.OCONVIFACE, ir.OCONVIDATA)
|
||||
if hasRType(n, n.SrcRType, "SrcRType") {
|
||||
return n.SrcRType
|
||||
}
|
||||
return concreteRType(pos, n.X.Type())
|
||||
}
|
||||
|
||||
// CopyElemRType asserts that n is a "copy" operation, and returns an
|
||||
// expression that yields the *runtime._type value representing the
|
||||
// destination slice type's element type.
|
||||
func CopyElemRType(pos src.XPos, n *ir.BinaryExpr) ir.Node {
|
||||
assertOp(n, ir.OCOPY)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return sliceElemRType(pos, n.X.Type())
|
||||
}
|
||||
|
||||
// DeleteMapRType asserts that n is a "delete" operation, and returns
|
||||
// an expression that yields the *runtime._type value representing the
|
||||
// map type.
|
||||
func DeleteMapRType(pos src.XPos, n *ir.CallExpr) ir.Node {
|
||||
assertOp(n, ir.ODELETE)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return mapRType(pos, n.Args[0].Type())
|
||||
}
|
||||
|
||||
// IndexMapRType asserts that n is a map index operation, and returns
|
||||
// an expression that yields the *runtime._type value representing the
|
||||
// map type.
|
||||
func IndexMapRType(pos src.XPos, n *ir.IndexExpr) ir.Node {
|
||||
assertOp(n, ir.OINDEXMAP)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return mapRType(pos, n.X.Type())
|
||||
}
|
||||
|
||||
// MakeChanRType asserts that n is a "make" operation for a channel
|
||||
// type, and returns an expression that yields the *runtime._type
|
||||
// value representing that channel type.
|
||||
func MakeChanRType(pos src.XPos, n *ir.MakeExpr) ir.Node {
|
||||
assertOp(n, ir.OMAKECHAN)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return chanRType(pos, n.Type())
|
||||
}
|
||||
|
||||
// MakeMapRType asserts that n is a "make" operation for a map type,
|
||||
// and returns an expression that yields the *runtime._type value
|
||||
// representing that map type.
|
||||
func MakeMapRType(pos src.XPos, n *ir.MakeExpr) ir.Node {
|
||||
assertOp(n, ir.OMAKEMAP)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return mapRType(pos, n.Type())
|
||||
}
|
||||
|
||||
// MakeSliceElemRType asserts that n is a "make" operation for a slice
|
||||
// type, and returns an expression that yields the *runtime._type
|
||||
// value representing that slice type's element type.
|
||||
func MakeSliceElemRType(pos src.XPos, n *ir.MakeExpr) ir.Node {
|
||||
assertOp2(n, ir.OMAKESLICE, ir.OMAKESLICECOPY)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return sliceElemRType(pos, n.Type())
|
||||
}
|
||||
|
||||
// RangeMapRType asserts that n is a "range" loop over a map value,
|
||||
// and returns an expression that yields the *runtime._type value
|
||||
// representing that map type.
|
||||
func RangeMapRType(pos src.XPos, n *ir.RangeStmt) ir.Node {
|
||||
assertOp(n, ir.ORANGE)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return mapRType(pos, n.X.Type())
|
||||
}
|
||||
|
||||
// UnsafeSliceElemRType asserts that n is an "unsafe.Slice" operation,
|
||||
// and returns an expression that yields the *runtime._type value
|
||||
// representing the result slice type's element type.
|
||||
func UnsafeSliceElemRType(pos src.XPos, n *ir.BinaryExpr) ir.Node {
|
||||
assertOp(n, ir.OUNSAFESLICE)
|
||||
if hasRType(n, n.RType, "RType") {
|
||||
return n.RType
|
||||
}
|
||||
return sliceElemRType(pos, n.Type())
|
||||
}
|
||||
@@ -842,9 +842,15 @@ func TypeLinksym(t *types.Type) *obj.LSym {
|
||||
return TypeSym(t).Linksym()
|
||||
}
|
||||
|
||||
// Deprecated: Use TypePtrAt instead.
|
||||
func TypePtr(t *types.Type) *ir.AddrExpr {
|
||||
n := ir.NewLinksymExpr(base.Pos, TypeLinksym(t), types.Types[types.TUINT8])
|
||||
return typecheck.Expr(typecheck.NodAddr(n)).(*ir.AddrExpr)
|
||||
return TypePtrAt(base.Pos, t)
|
||||
}
|
||||
|
||||
// TypePtrAt returns an expression that evaluates to the
|
||||
// *runtime._type value for t.
|
||||
func TypePtrAt(pos src.XPos, t *types.Type) *ir.AddrExpr {
|
||||
return typecheck.LinksymAddr(pos, TypeLinksym(t), types.Types[types.TUINT8])
|
||||
}
|
||||
|
||||
// ITabLsym returns the LSym representing the itab for concrete type typ implementing
|
||||
@@ -864,9 +870,15 @@ func ITabLsym(typ, iface *types.Type) *obj.LSym {
|
||||
return lsym
|
||||
}
|
||||
|
||||
// ITabAddr returns an expression representing a pointer to the itab
|
||||
// for concrete type typ implementing interface iface.
|
||||
// Deprecated: Use ITabAddrAt instead.
|
||||
func ITabAddr(typ, iface *types.Type) *ir.AddrExpr {
|
||||
return ITabAddrAt(base.Pos, typ, iface)
|
||||
}
|
||||
|
||||
// ITabAddrAt returns an expression that evaluates to the
|
||||
// *runtime.itab value for concrete type typ implementing interface
|
||||
// iface.
|
||||
func ITabAddrAt(pos src.XPos, typ, iface *types.Type) *ir.AddrExpr {
|
||||
s, existed := ir.Pkgs.Itab.LookupOK(typ.LinkString() + "," + iface.LinkString())
|
||||
lsym := s.Linksym()
|
||||
|
||||
@@ -874,8 +886,7 @@ func ITabAddr(typ, iface *types.Type) *ir.AddrExpr {
|
||||
writeITab(lsym, typ, iface, false)
|
||||
}
|
||||
|
||||
n := ir.NewLinksymExpr(base.Pos, lsym, types.Types[types.TUINT8])
|
||||
return typecheck.Expr(typecheck.NodAddr(n)).(*ir.AddrExpr)
|
||||
return typecheck.LinksymAddr(pos, lsym, types.Types[types.TUINT8])
|
||||
}
|
||||
|
||||
// needkeyupdate reports whether map updates with t as a key
|
||||
|
||||
@@ -76,7 +76,7 @@ func TestDebugLinesPushback(t *testing.T) {
|
||||
fn := "(*List[go.shape.int_0]).PushBack"
|
||||
if buildcfg.Experiment.Unified {
|
||||
// Unified mangles differently
|
||||
fn = "(*List[int]).PushBack"
|
||||
fn = "(*List[int]).PushBack-shaped"
|
||||
}
|
||||
testDebugLines(t, "-N -l", "pushback.go", fn, []int{17, 18, 19, 20, 21, 22, 24}, true)
|
||||
}
|
||||
@@ -95,7 +95,7 @@ func TestDebugLinesConvert(t *testing.T) {
|
||||
fn := "G[go.shape.int_0]"
|
||||
if buildcfg.Experiment.Unified {
|
||||
// Unified mangles differently
|
||||
fn = "G[int]"
|
||||
fn = "G[int]-shaped"
|
||||
}
|
||||
testDebugLines(t, "-N -l", "convertline.go", fn, []int{9, 10, 11}, true)
|
||||
}
|
||||
|
||||
@@ -664,7 +664,7 @@ func (s *state) paramsToHeap() {
|
||||
|
||||
// newHeapaddr allocates heap memory for n and sets its heap address.
|
||||
func (s *state) newHeapaddr(n *ir.Name) {
|
||||
s.setHeapaddr(n.Pos(), n, s.newObject(n.Type()))
|
||||
s.setHeapaddr(n.Pos(), n, s.newObject(n.Type(), nil))
|
||||
}
|
||||
|
||||
// setHeapaddr allocates a new PAUTO variable to store ptr (which must be non-nil)
|
||||
@@ -692,23 +692,26 @@ func (s *state) setHeapaddr(pos src.XPos, n *ir.Name, ptr *ssa.Value) {
|
||||
}
|
||||
|
||||
// newObject returns an SSA value denoting new(typ).
|
||||
func (s *state) newObject(typ *types.Type) *ssa.Value {
|
||||
func (s *state) newObject(typ *types.Type, rtype *ssa.Value) *ssa.Value {
|
||||
if typ.Size() == 0 {
|
||||
return s.newValue1A(ssa.OpAddr, types.NewPtr(typ), ir.Syms.Zerobase, s.sb)
|
||||
}
|
||||
return s.rtcall(ir.Syms.Newobject, true, []*types.Type{types.NewPtr(typ)}, s.reflectType(typ))[0]
|
||||
if rtype == nil {
|
||||
rtype = s.reflectType(typ)
|
||||
}
|
||||
return s.rtcall(ir.Syms.Newobject, true, []*types.Type{types.NewPtr(typ)}, rtype)[0]
|
||||
}
|
||||
|
||||
func (s *state) checkPtrAlignment(n *ir.ConvExpr, v *ssa.Value, count *ssa.Value) {
|
||||
if !n.Type().IsPtr() {
|
||||
s.Fatalf("expected pointer type: %v", n.Type())
|
||||
}
|
||||
elem := n.Type().Elem()
|
||||
elem, rtypeExpr := n.Type().Elem(), n.ElemRType
|
||||
if count != nil {
|
||||
if !elem.IsArray() {
|
||||
s.Fatalf("expected array type: %v", elem)
|
||||
}
|
||||
elem = elem.Elem()
|
||||
elem, rtypeExpr = elem.Elem(), n.ElemElemRType
|
||||
}
|
||||
size := elem.Size()
|
||||
// Casting from larger type to smaller one is ok, so for smallest type, do nothing.
|
||||
@@ -721,12 +724,20 @@ func (s *state) checkPtrAlignment(n *ir.ConvExpr, v *ssa.Value, count *ssa.Value
|
||||
if count.Type.Size() != s.config.PtrSize {
|
||||
s.Fatalf("expected count fit to an uintptr size, have: %d, want: %d", count.Type.Size(), s.config.PtrSize)
|
||||
}
|
||||
s.rtcall(ir.Syms.CheckPtrAlignment, true, nil, v, s.reflectType(elem), count)
|
||||
var rtype *ssa.Value
|
||||
if rtypeExpr != nil {
|
||||
rtype = s.expr(rtypeExpr)
|
||||
} else {
|
||||
rtype = s.reflectType(elem)
|
||||
}
|
||||
s.rtcall(ir.Syms.CheckPtrAlignment, true, nil, v, rtype, count)
|
||||
}
|
||||
|
||||
// reflectType returns an SSA value representing a pointer to typ's
|
||||
// reflection type descriptor.
|
||||
func (s *state) reflectType(typ *types.Type) *ssa.Value {
|
||||
// TODO(mdempsky): Make this Fatalf under Unified IR; frontend needs
|
||||
// to supply RType expressions.
|
||||
lsym := reflectdata.TypeLinksym(typ)
|
||||
return s.entryNewValue1A(ssa.OpAddr, types.NewPtr(types.Types[types.TUINT8]), lsym, s.sb)
|
||||
}
|
||||
@@ -3294,7 +3305,11 @@ func (s *state) exprCheckPtr(n ir.Node, checkPtrOK bool) *ssa.Value {
|
||||
|
||||
case ir.ONEW:
|
||||
n := n.(*ir.UnaryExpr)
|
||||
return s.newObject(n.Type().Elem())
|
||||
var rtype *ssa.Value
|
||||
if x, ok := n.X.(*ir.DynamicType); ok && x.Op() == ir.ODYNAMICTYPE {
|
||||
rtype = s.expr(x.RType)
|
||||
}
|
||||
return s.newObject(n.Type().Elem(), rtype)
|
||||
|
||||
case ir.OUNSAFEADD:
|
||||
n := n.(*ir.BinaryExpr)
|
||||
@@ -6226,12 +6241,15 @@ func (s *state) dottype(n *ir.TypeAssertExpr, commaok bool) (res, resok *ssa.Val
|
||||
if n.ITab != nil {
|
||||
targetItab = s.expr(n.ITab)
|
||||
}
|
||||
return s.dottype1(n.Pos(), n.X.Type(), n.Type(), iface, target, targetItab, commaok)
|
||||
return s.dottype1(n.Pos(), n.X.Type(), n.Type(), iface, nil, target, targetItab, commaok)
|
||||
}
|
||||
|
||||
func (s *state) dynamicDottype(n *ir.DynamicTypeAssertExpr, commaok bool) (res, resok *ssa.Value) {
|
||||
iface := s.expr(n.X)
|
||||
var target, targetItab *ssa.Value
|
||||
var source, target, targetItab *ssa.Value
|
||||
if n.SrcRType != nil {
|
||||
source = s.expr(n.SrcRType)
|
||||
}
|
||||
if !n.X.Type().IsEmptyInterface() && !n.Type().IsInterface() {
|
||||
byteptr := s.f.Config.Types.BytePtr
|
||||
targetItab = s.expr(n.ITab)
|
||||
@@ -6241,15 +6259,16 @@ func (s *state) dynamicDottype(n *ir.DynamicTypeAssertExpr, commaok bool) (res,
|
||||
} else {
|
||||
target = s.expr(n.RType)
|
||||
}
|
||||
return s.dottype1(n.Pos(), n.X.Type(), n.Type(), iface, target, targetItab, commaok)
|
||||
return s.dottype1(n.Pos(), n.X.Type(), n.Type(), iface, source, target, targetItab, commaok)
|
||||
}
|
||||
|
||||
// dottype1 implements a x.(T) operation. iface is the argument (x), dst is the type we're asserting to (T)
|
||||
// and src is the type we're asserting from.
|
||||
// source is the *runtime._type of src
|
||||
// target is the *runtime._type of dst.
|
||||
// If src is a nonempty interface and dst is not an interface, targetItab is an itab representing (dst, src). Otherwise it is nil.
|
||||
// commaok is true if the caller wants a boolean success value. Otherwise, the generated code panics if the conversion fails.
|
||||
func (s *state) dottype1(pos src.XPos, src, dst *types.Type, iface, target, targetItab *ssa.Value, commaok bool) (res, resok *ssa.Value) {
|
||||
func (s *state) dottype1(pos src.XPos, src, dst *types.Type, iface, source, target, targetItab *ssa.Value, commaok bool) (res, resok *ssa.Value) {
|
||||
byteptr := s.f.Config.Types.BytePtr
|
||||
if dst.IsInterface() {
|
||||
if dst.IsEmptyInterface() {
|
||||
@@ -6385,7 +6404,10 @@ func (s *state) dottype1(pos src.XPos, src, dst *types.Type, iface, target, targ
|
||||
if !commaok {
|
||||
// on failure, panic by calling panicdottype
|
||||
s.startBlock(bFail)
|
||||
taddr := s.reflectType(src)
|
||||
taddr := source
|
||||
if taddr == nil {
|
||||
taddr = s.reflectType(src)
|
||||
}
|
||||
if src.IsEmptyInterface() {
|
||||
s.rtcall(ir.Syms.PanicdottypeE, false, nil, itab, target, taddr)
|
||||
} else {
|
||||
|
||||
@@ -405,7 +405,7 @@ func (w *exportWriter) writeIndex(index map[*types.Sym]uint64, mainIndex bool) {
|
||||
w.string(exportPath(pkg))
|
||||
if mainIndex {
|
||||
w.string(pkg.Name)
|
||||
w.uint64(uint64(pkg.Height))
|
||||
w.uint64(0) // was package height, but not necessary anymore.
|
||||
}
|
||||
|
||||
// Sort symbols within a package by name.
|
||||
@@ -1978,6 +1978,7 @@ func (w *exportWriter) expr(n ir.Node) {
|
||||
w.pos(n.Pos())
|
||||
w.typ(n.Type())
|
||||
w.expr(n.X)
|
||||
w.bool(n.Implicit())
|
||||
|
||||
case ir.OREAL, ir.OIMAG, ir.OCAP, ir.OCLOSE, ir.OLEN, ir.ONEW, ir.OPANIC:
|
||||
n := n.(*ir.UnaryExpr)
|
||||
|
||||
@@ -175,10 +175,9 @@ func ReadImports(pkg *types.Pkg, data string) {
|
||||
for nPkgs := ird.uint64(); nPkgs > 0; nPkgs-- {
|
||||
pkg := p.pkgAt(ird.uint64())
|
||||
pkgName := p.stringAt(ird.uint64())
|
||||
pkgHeight := int(ird.uint64())
|
||||
_ = int(ird.uint64()) // was package height, but not necessary anymore.
|
||||
if pkg.Name == "" {
|
||||
pkg.Name = pkgName
|
||||
pkg.Height = pkgHeight
|
||||
types.NumImport[pkgName]++
|
||||
|
||||
// TODO(mdempsky): This belongs somewhere else.
|
||||
@@ -187,9 +186,6 @@ func ReadImports(pkg *types.Pkg, data string) {
|
||||
if pkg.Name != pkgName {
|
||||
base.Fatalf("conflicting package names %v and %v for path %q", pkg.Name, pkgName, pkg.Path)
|
||||
}
|
||||
if pkg.Height != pkgHeight {
|
||||
base.Fatalf("conflicting package heights %v and %v for path %q", pkg.Height, pkgHeight, pkg.Path)
|
||||
}
|
||||
}
|
||||
|
||||
for nSyms := ird.uint64(); nSyms > 0; nSyms-- {
|
||||
@@ -1493,7 +1489,9 @@ func (r *importReader) node() ir.Node {
|
||||
return n
|
||||
|
||||
case ir.OCONV, ir.OCONVIFACE, ir.OCONVIDATA, ir.OCONVNOP, ir.OBYTES2STR, ir.ORUNES2STR, ir.OSTR2BYTES, ir.OSTR2RUNES, ir.ORUNESTR, ir.OSLICE2ARRPTR:
|
||||
return ir.NewConvExpr(r.pos(), op, r.typ(), r.expr())
|
||||
n := ir.NewConvExpr(r.pos(), op, r.typ(), r.expr())
|
||||
n.SetImplicit(r.bool())
|
||||
return n
|
||||
|
||||
case ir.OCOPY, ir.OCOMPLEX, ir.OREAL, ir.OIMAG, ir.OAPPEND, ir.OCAP, ir.OCLOSE, ir.ODELETE, ir.OLEN, ir.OMAKE, ir.ONEW, ir.OPANIC, ir.ORECOVER, ir.OPRINT, ir.OPRINTN, ir.OUNSAFEADD, ir.OUNSAFESLICE:
|
||||
pos := r.pos()
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"cmd/compile/internal/base"
|
||||
"cmd/compile/internal/ir"
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/internal/obj"
|
||||
"cmd/internal/objabi"
|
||||
"cmd/internal/src"
|
||||
)
|
||||
@@ -119,6 +120,13 @@ func ComputeAddrtaken(top []ir.Node) {
|
||||
}
|
||||
}
|
||||
|
||||
// LinksymAddr returns a new expression that evaluates to the address
|
||||
// of lsym. typ specifies the type of the addressed memory.
|
||||
func LinksymAddr(pos src.XPos, lsym *obj.LSym, typ *types.Type) *ir.AddrExpr {
|
||||
n := ir.NewLinksymExpr(pos, lsym, typ)
|
||||
return Expr(NodAddrAt(pos, n)).(*ir.AddrExpr)
|
||||
}
|
||||
|
||||
func NodNil() ir.Node {
|
||||
n := ir.NewNilExpr(base.Pos)
|
||||
n.SetType(types.Types[types.TNIL])
|
||||
@@ -293,24 +301,14 @@ func assignconvfn(n ir.Node, t *types.Type, context func() string) ir.Node {
|
||||
|
||||
n = convlit1(n, t, false, context)
|
||||
if n.Type() == nil {
|
||||
return n
|
||||
base.Fatalf("cannot assign %v to %v", n, t)
|
||||
}
|
||||
if n.Type().IsUntyped() {
|
||||
base.Fatalf("%L has untyped type", n)
|
||||
}
|
||||
if t.Kind() == types.TBLANK {
|
||||
return n
|
||||
}
|
||||
|
||||
// Convert ideal bool from comparison to plain bool
|
||||
// if the next step is non-bool (like interface{}).
|
||||
if n.Type() == types.UntypedBool && !t.IsBoolean() {
|
||||
if n.Op() == ir.ONAME || n.Op() == ir.OLITERAL {
|
||||
r := ir.NewConvExpr(base.Pos, ir.OCONVNOP, nil, n)
|
||||
r.SetType(types.Types[types.TBOOL])
|
||||
r.SetTypecheck(1)
|
||||
r.SetImplicit(true)
|
||||
n = r
|
||||
}
|
||||
}
|
||||
|
||||
if types.Identical(n.Type(), t) {
|
||||
return n
|
||||
}
|
||||
|
||||
@@ -16,9 +16,6 @@ import (
|
||||
// pkgMap maps a package path to a package.
|
||||
var pkgMap = make(map[string]*Pkg)
|
||||
|
||||
// MaxPkgHeight is a height greater than any likely package height.
|
||||
const MaxPkgHeight = 1e9
|
||||
|
||||
type Pkg struct {
|
||||
Path string // string literal used in import statement, e.g. "runtime/internal/sys"
|
||||
Name string // package name, e.g. "sys"
|
||||
@@ -26,12 +23,6 @@ type Pkg struct {
|
||||
Syms map[string]*Sym
|
||||
Pathsym *obj.LSym
|
||||
|
||||
// Height is the package's height in the import graph. Leaf
|
||||
// packages (i.e., packages with no imports) have height 0,
|
||||
// and all other packages have height 1 plus the maximum
|
||||
// height of their imported packages.
|
||||
Height int
|
||||
|
||||
Direct bool // imported directly
|
||||
}
|
||||
|
||||
|
||||
@@ -97,14 +97,7 @@ func (sym *Sym) LinksymABI(abi obj.ABI) *obj.LSym {
|
||||
// Less reports whether symbol a is ordered before symbol b.
|
||||
//
|
||||
// Symbols are ordered exported before non-exported, then by name, and
|
||||
// finally (for non-exported symbols) by package height and path.
|
||||
//
|
||||
// Ordering by package height is necessary to establish a consistent
|
||||
// ordering for non-exported names with the same spelling but from
|
||||
// different packages. We don't necessarily know the path for the
|
||||
// package being compiled, but by definition it will have a height
|
||||
// greater than any other packages seen within the compilation unit.
|
||||
// For more background, see issue #24693.
|
||||
// finally (for non-exported symbols) by package path.
|
||||
func (a *Sym) Less(b *Sym) bool {
|
||||
if a == b {
|
||||
return false
|
||||
@@ -131,9 +124,6 @@ func (a *Sym) Less(b *Sym) bool {
|
||||
return a.Name < b.Name
|
||||
}
|
||||
if !ea {
|
||||
if a.Pkg.Height != b.Pkg.Height {
|
||||
return a.Pkg.Height < b.Pkg.Height
|
||||
}
|
||||
return a.Pkg.Path < b.Pkg.Path
|
||||
}
|
||||
return false
|
||||
|
||||
@@ -189,7 +189,7 @@ func (obj *object) sameId(pkg *Package, name string) bool {
|
||||
//
|
||||
// Objects are ordered nil before non-nil, exported before
|
||||
// non-exported, then by name, and finally (for non-exported
|
||||
// functions) by package height and path.
|
||||
// functions) by package path.
|
||||
func (a *object) less(b *object) bool {
|
||||
if a == b {
|
||||
return false
|
||||
@@ -215,9 +215,6 @@ func (a *object) less(b *object) bool {
|
||||
return a.name < b.name
|
||||
}
|
||||
if !ea {
|
||||
if a.pkg.height != b.pkg.height {
|
||||
return a.pkg.height < b.pkg.height
|
||||
}
|
||||
return a.pkg.path < b.pkg.path
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ type Package struct {
|
||||
name string
|
||||
scope *Scope
|
||||
imports []*Package
|
||||
height int
|
||||
complete bool
|
||||
fake bool // scope lookup errors are silently dropped if package is fake (internal use only)
|
||||
cgo bool // uses of this package will be rewritten into uses of declarations from _cgo_gotypes.go
|
||||
@@ -23,14 +22,8 @@ type Package struct {
|
||||
// NewPackage returns a new Package for the given package path and name.
|
||||
// The package is not complete and contains no explicit imports.
|
||||
func NewPackage(path, name string) *Package {
|
||||
return NewPackageHeight(path, name, 0)
|
||||
}
|
||||
|
||||
// NewPackageHeight is like NewPackage, but allows specifying the
|
||||
// package's height.
|
||||
func NewPackageHeight(path, name string, height int) *Package {
|
||||
scope := NewScope(Universe, nopos, nopos, fmt.Sprintf("package %q", path))
|
||||
return &Package{path: path, name: name, scope: scope, height: height}
|
||||
return &Package{path: path, name: name, scope: scope}
|
||||
}
|
||||
|
||||
// Path returns the package path.
|
||||
@@ -39,9 +32,6 @@ func (pkg *Package) Path() string { return pkg.path }
|
||||
// Name returns the package name.
|
||||
func (pkg *Package) Name() string { return pkg.name }
|
||||
|
||||
// Height returns the package height.
|
||||
func (pkg *Package) Height() int { return pkg.height }
|
||||
|
||||
// SetName sets the package name.
|
||||
func (pkg *Package) SetName(name string) { pkg.name = name }
|
||||
|
||||
|
||||
@@ -197,7 +197,6 @@ func (check *Checker) importPackage(pos syntax.Pos, path, dir string) *Package {
|
||||
// methods with receiver base type names.
|
||||
func (check *Checker) collectObjects() {
|
||||
pkg := check.pkg
|
||||
pkg.height = 0
|
||||
|
||||
// pkgImports is the set of packages already imported by any package file seen
|
||||
// so far. Used to avoid duplicate entries in pkg.imports. Allocate and populate
|
||||
@@ -255,15 +254,6 @@ func (check *Checker) collectObjects() {
|
||||
continue
|
||||
}
|
||||
|
||||
if imp == Unsafe {
|
||||
// typecheck ignores imports of package unsafe for
|
||||
// calculating height.
|
||||
// TODO(mdempsky): Revisit this. This seems fine, but I
|
||||
// don't remember explicitly considering this case.
|
||||
} else if h := imp.height + 1; h > pkg.height {
|
||||
pkg.height = h
|
||||
}
|
||||
|
||||
// local name overrides imported package name
|
||||
name := imp.name
|
||||
if s.LocalPkgName != nil {
|
||||
|
||||
@@ -47,7 +47,7 @@ func TestSizeof(t *testing.T) {
|
||||
|
||||
// Misc
|
||||
{Scope{}, 60, 104},
|
||||
{Package{}, 40, 80},
|
||||
{Package{}, 36, 72},
|
||||
{_TypeSet{}, 28, 56},
|
||||
}
|
||||
|
||||
|
||||
@@ -99,10 +99,11 @@ func walkAssign(init *ir.Nodes, n ir.Node) ir.Node {
|
||||
}
|
||||
as.Y = r
|
||||
if r.Op() == ir.OAPPEND {
|
||||
r := r.(*ir.CallExpr)
|
||||
// Left in place for back end.
|
||||
// Do not add a new write barrier.
|
||||
// Set up address of type for back end.
|
||||
r.(*ir.CallExpr).X = reflectdata.TypePtr(r.Type().Elem())
|
||||
r.X = reflectdata.AppendElemRType(base.Pos, r)
|
||||
return as
|
||||
}
|
||||
// Otherwise, lowered for race detector.
|
||||
@@ -169,11 +170,11 @@ func walkAssignMapRead(init *ir.Nodes, n *ir.AssignListStmt) ir.Node {
|
||||
var call *ir.CallExpr
|
||||
if w := t.Elem().Size(); w <= zeroValSize {
|
||||
fn := mapfn(mapaccess2[fast], t, false)
|
||||
call = mkcall1(fn, fn.Type().Results(), init, reflectdata.TypePtr(t), r.X, key)
|
||||
call = mkcall1(fn, fn.Type().Results(), init, reflectdata.IndexMapRType(base.Pos, r), r.X, key)
|
||||
} else {
|
||||
fn := mapfn("mapaccess2_fat", t, true)
|
||||
z := reflectdata.ZeroAddr(w)
|
||||
call = mkcall1(fn, fn.Type().Results(), init, reflectdata.TypePtr(t), r.X, key, z)
|
||||
call = mkcall1(fn, fn.Type().Results(), init, reflectdata.IndexMapRType(base.Pos, r), r.X, key, z)
|
||||
}
|
||||
|
||||
// mapaccess2* returns a typed bool, but due to spec changes,
|
||||
@@ -502,7 +503,7 @@ func appendSlice(n *ir.CallExpr, init *ir.Nodes) ir.Node {
|
||||
fn = typecheck.SubstArgTypes(fn, elemtype, elemtype)
|
||||
|
||||
// s = growslice(T, s, n)
|
||||
nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.TypePtr(elemtype), s, nn))}
|
||||
nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.AppendElemRType(base.Pos, n), s, nn))}
|
||||
nodes.Append(nif)
|
||||
|
||||
// s = s[:n]
|
||||
@@ -523,7 +524,7 @@ func appendSlice(n *ir.CallExpr, init *ir.Nodes) ir.Node {
|
||||
fn = typecheck.SubstArgTypes(fn, l1.Type().Elem(), l2.Type().Elem())
|
||||
ptr1, len1 := backingArrayPtrLen(cheapExpr(slice, &nodes))
|
||||
ptr2, len2 := backingArrayPtrLen(l2)
|
||||
ncopy = mkcall1(fn, types.Types[types.TINT], &nodes, reflectdata.TypePtr(elemtype), ptr1, len1, ptr2, len2)
|
||||
ncopy = mkcall1(fn, types.Types[types.TINT], &nodes, reflectdata.AppendElemRType(base.Pos, n), ptr1, len1, ptr2, len2)
|
||||
} else if base.Flag.Cfg.Instrumenting && !base.Flag.CompilingRuntime {
|
||||
// rely on runtime to instrument:
|
||||
// copy(s[len(l1):], l2)
|
||||
@@ -670,7 +671,7 @@ func extendSlice(n *ir.CallExpr, init *ir.Nodes) ir.Node {
|
||||
fn = typecheck.SubstArgTypes(fn, elemtype, elemtype)
|
||||
|
||||
// s = growslice(T, s, n)
|
||||
nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.TypePtr(elemtype), s, nn))}
|
||||
nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, s, mkcall1(fn, s.Type(), nif.PtrInit(), reflectdata.AppendElemRType(base.Pos, n), s, nn))}
|
||||
nodes = append(nodes, nif)
|
||||
|
||||
// s = s[:n]
|
||||
|
||||
@@ -87,7 +87,7 @@ func walkAppend(n *ir.CallExpr, init *ir.Nodes, dst ir.Node) ir.Node {
|
||||
fn := typecheck.LookupRuntime("growslice") // growslice(<type>, old []T, mincap int) (ret []T)
|
||||
fn = typecheck.SubstArgTypes(fn, ns.Type().Elem(), ns.Type().Elem())
|
||||
|
||||
nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, ns, mkcall1(fn, ns.Type(), nif.PtrInit(), reflectdata.TypePtr(ns.Type().Elem()), ns,
|
||||
nif.Body = []ir.Node{ir.NewAssignStmt(base.Pos, ns, mkcall1(fn, ns.Type(), nif.PtrInit(), reflectdata.AppendElemRType(base.Pos, n), ns,
|
||||
ir.NewBinaryExpr(base.Pos, ir.OADD, ir.NewUnaryExpr(base.Pos, ir.OLEN, ns), na)))}
|
||||
|
||||
l = append(l, nif)
|
||||
@@ -141,7 +141,7 @@ func walkCopy(n *ir.BinaryExpr, init *ir.Nodes, runtimecall bool) ir.Node {
|
||||
ptrL, lenL := backingArrayPtrLen(n.X)
|
||||
n.Y = cheapExpr(n.Y, init)
|
||||
ptrR, lenR := backingArrayPtrLen(n.Y)
|
||||
return mkcall1(fn, n.Type(), init, reflectdata.TypePtr(n.X.Type().Elem()), ptrL, lenL, ptrR, lenR)
|
||||
return mkcall1(fn, n.Type(), init, reflectdata.CopyElemRType(base.Pos, n), ptrL, lenL, ptrR, lenR)
|
||||
}
|
||||
|
||||
if runtimecall {
|
||||
@@ -214,7 +214,7 @@ func walkDelete(init *ir.Nodes, n *ir.CallExpr) ir.Node {
|
||||
t := map_.Type()
|
||||
fast := mapfast(t)
|
||||
key = mapKeyArg(fast, n, key, false)
|
||||
return mkcall1(mapfndel(mapdelete[fast], t), nil, init, reflectdata.TypePtr(t), map_, key)
|
||||
return mkcall1(mapfndel(mapdelete[fast], t), nil, init, reflectdata.DeleteMapRType(base.Pos, n), map_, key)
|
||||
}
|
||||
|
||||
// walkLenCap walks an OLEN or OCAP node.
|
||||
@@ -258,7 +258,7 @@ func walkMakeChan(n *ir.MakeExpr, init *ir.Nodes) ir.Node {
|
||||
argtype = types.Types[types.TINT]
|
||||
}
|
||||
|
||||
return mkcall1(chanfn(fnname, 1, n.Type()), n.Type(), init, reflectdata.TypePtr(n.Type()), typecheck.Conv(size, argtype))
|
||||
return mkcall1(chanfn(fnname, 1, n.Type()), n.Type(), init, reflectdata.MakeChanRType(base.Pos, n), typecheck.Conv(size, argtype))
|
||||
}
|
||||
|
||||
// walkMakeMap walks an OMAKEMAP node.
|
||||
@@ -356,7 +356,7 @@ func walkMakeMap(n *ir.MakeExpr, init *ir.Nodes) ir.Node {
|
||||
|
||||
fn := typecheck.LookupRuntime(fnname)
|
||||
fn = typecheck.SubstArgTypes(fn, hmapType, t.Key(), t.Elem())
|
||||
return mkcall1(fn, n.Type(), init, reflectdata.TypePtr(n.Type()), typecheck.Conv(hint, argtype), h)
|
||||
return mkcall1(fn, n.Type(), init, reflectdata.MakeMapRType(base.Pos, n), typecheck.Conv(hint, argtype), h)
|
||||
}
|
||||
|
||||
// walkMakeSlice walks an OMAKESLICE node.
|
||||
@@ -421,7 +421,7 @@ func walkMakeSlice(n *ir.MakeExpr, init *ir.Nodes) ir.Node {
|
||||
argtype = types.Types[types.TINT]
|
||||
}
|
||||
fn := typecheck.LookupRuntime(fnname)
|
||||
ptr := mkcall1(fn, types.Types[types.TUNSAFEPTR], init, reflectdata.TypePtr(t.Elem()), typecheck.Conv(len, argtype), typecheck.Conv(cap, argtype))
|
||||
ptr := mkcall1(fn, types.Types[types.TUNSAFEPTR], init, reflectdata.MakeSliceElemRType(base.Pos, n), typecheck.Conv(len, argtype), typecheck.Conv(cap, argtype))
|
||||
ptr.MarkNonNil()
|
||||
len = typecheck.Conv(len, types.Types[types.TINT])
|
||||
cap = typecheck.Conv(cap, types.Types[types.TINT])
|
||||
@@ -475,7 +475,7 @@ func walkMakeSliceCopy(n *ir.MakeExpr, init *ir.Nodes) ir.Node {
|
||||
// Replace make+copy with runtime.makeslicecopy.
|
||||
// instantiate makeslicecopy(typ *byte, tolen int, fromlen int, from unsafe.Pointer) unsafe.Pointer
|
||||
fn := typecheck.LookupRuntime("makeslicecopy")
|
||||
ptr := mkcall1(fn, types.Types[types.TUNSAFEPTR], init, reflectdata.TypePtr(t.Elem()), length, copylen, typecheck.Conv(copyptr, types.Types[types.TUNSAFEPTR]))
|
||||
ptr := mkcall1(fn, types.Types[types.TUNSAFEPTR], init, reflectdata.MakeSliceElemRType(base.Pos, n), length, copylen, typecheck.Conv(copyptr, types.Types[types.TUNSAFEPTR]))
|
||||
ptr.MarkNonNil()
|
||||
sh := ir.NewSliceHeaderExpr(base.Pos, t, ptr, length, length)
|
||||
return walkExpr(typecheck.Expr(sh), init)
|
||||
@@ -658,7 +658,7 @@ func walkUnsafeSlice(n *ir.BinaryExpr, init *ir.Nodes) ir.Node {
|
||||
if ir.ShouldCheckPtr(ir.CurFunc, 1) {
|
||||
fnname := "unsafeslicecheckptr"
|
||||
fn := typecheck.LookupRuntime(fnname)
|
||||
init.Append(mkcall1(fn, nil, init, reflectdata.TypePtr(sliceType.Elem()), unsafePtr, typecheck.Conv(len, lenType)))
|
||||
init.Append(mkcall1(fn, nil, init, reflectdata.UnsafeSliceElemRType(base.Pos, n), unsafePtr, typecheck.Conv(len, lenType)))
|
||||
} else {
|
||||
// Otherwise, open code unsafe.Slice to prevent runtime call overhead.
|
||||
// Keep this code in sync with runtime.unsafeslice{,64}
|
||||
|
||||
@@ -54,6 +54,10 @@ func walkCompare(n *ir.BinaryExpr, init *ir.Nodes) ir.Node {
|
||||
// Given mixed interface/concrete comparison,
|
||||
// rewrite into types-equal && data-equal.
|
||||
// This is efficient, avoids allocations, and avoids runtime calls.
|
||||
//
|
||||
// TODO(mdempsky): It would be more general and probably overall
|
||||
// simpler to just extend walkCompareInterface to optimize when one
|
||||
// operand is an OCONVIFACE.
|
||||
if n.X.Type().IsInterface() != n.Y.Type().IsInterface() {
|
||||
// Preserve side-effects in case of short-circuiting; see #32187.
|
||||
l := cheapExpr(n.X, init)
|
||||
@@ -74,9 +78,12 @@ func walkCompare(n *ir.BinaryExpr, init *ir.Nodes) ir.Node {
|
||||
// l.tab == type(r)
|
||||
// For non-empty interface, this is:
|
||||
// l.tab != nil && l.tab._type == type(r)
|
||||
//
|
||||
// TODO(mdempsky): For non-empty interface comparisons, just
|
||||
// compare against the itab address directly?
|
||||
var eqtype ir.Node
|
||||
tab := ir.NewUnaryExpr(base.Pos, ir.OITAB, l)
|
||||
rtyp := reflectdata.TypePtr(r.Type())
|
||||
rtyp := reflectdata.CompareRType(base.Pos, n)
|
||||
if l.Type().IsEmptyInterface() {
|
||||
tab.SetType(types.NewPtr(types.Types[types.TUINT8]))
|
||||
tab.SetTypecheck(1)
|
||||
|
||||
@@ -414,9 +414,10 @@ func slicelit(ctxt initContext, n *ir.CompLitExpr, var_ ir.Node, init *ir.Nodes)
|
||||
|
||||
func maplit(n *ir.CompLitExpr, m ir.Node, init *ir.Nodes) {
|
||||
// make the map var
|
||||
a := ir.NewCallExpr(base.Pos, ir.OMAKE, nil, nil)
|
||||
args := []ir.Node{ir.TypeNode(n.Type()), ir.NewInt(n.Len + int64(len(n.List)))}
|
||||
a := typecheck.Expr(ir.NewCallExpr(base.Pos, ir.OMAKE, nil, args)).(*ir.MakeExpr)
|
||||
a.RType = n.RType
|
||||
a.SetEsc(n.Esc())
|
||||
a.Args = []ir.Node{ir.TypeNode(n.Type()), ir.NewInt(n.Len + int64(len(n.List)))}
|
||||
appendWalkStmt(init, ir.NewAssignStmt(base.Pos, m, a))
|
||||
|
||||
entries := n.List
|
||||
@@ -467,14 +468,18 @@ func maplit(n *ir.CompLitExpr, m ir.Node, init *ir.Nodes) {
|
||||
|
||||
kidx := ir.NewIndexExpr(base.Pos, vstatk, i)
|
||||
kidx.SetBounded(true)
|
||||
lhs := ir.NewIndexExpr(base.Pos, m, kidx)
|
||||
|
||||
// typechecker rewrites OINDEX to OINDEXMAP
|
||||
lhs := typecheck.AssignExpr(ir.NewIndexExpr(base.Pos, m, kidx)).(*ir.IndexExpr)
|
||||
base.AssertfAt(lhs.Op() == ir.OINDEXMAP, lhs.Pos(), "want OINDEXMAP, have %+v", lhs)
|
||||
lhs.RType = n.RType
|
||||
|
||||
zero := ir.NewAssignStmt(base.Pos, i, ir.NewInt(0))
|
||||
cond := ir.NewBinaryExpr(base.Pos, ir.OLT, i, ir.NewInt(tk.NumElem()))
|
||||
incr := ir.NewAssignStmt(base.Pos, i, ir.NewBinaryExpr(base.Pos, ir.OADD, i, ir.NewInt(1)))
|
||||
|
||||
var body ir.Node = ir.NewAssignStmt(base.Pos, lhs, rhs)
|
||||
body = typecheck.Stmt(body) // typechecker rewrites OINDEX to OINDEXMAP
|
||||
body = typecheck.Stmt(body)
|
||||
body = orderStmtInPlace(body, map[string][]*ir.Name{})
|
||||
|
||||
loop := ir.NewForStmt(base.Pos, nil, cond, incr, nil)
|
||||
@@ -503,8 +508,14 @@ func maplit(n *ir.CompLitExpr, m ir.Node, init *ir.Nodes) {
|
||||
appendWalkStmt(init, ir.NewAssignStmt(base.Pos, tmpelem, elem))
|
||||
|
||||
ir.SetPos(tmpelem)
|
||||
var a ir.Node = ir.NewAssignStmt(base.Pos, ir.NewIndexExpr(base.Pos, m, tmpkey), tmpelem)
|
||||
a = typecheck.Stmt(a) // typechecker rewrites OINDEX to OINDEXMAP
|
||||
|
||||
// typechecker rewrites OINDEX to OINDEXMAP
|
||||
lhs := typecheck.AssignExpr(ir.NewIndexExpr(base.Pos, m, tmpkey)).(*ir.IndexExpr)
|
||||
base.AssertfAt(lhs.Op() == ir.OINDEXMAP, lhs.Pos(), "want OINDEXMAP, have %+v", lhs)
|
||||
lhs.RType = n.RType
|
||||
|
||||
var a ir.Node = ir.NewAssignStmt(base.Pos, lhs, tmpelem)
|
||||
a = typecheck.Stmt(a)
|
||||
a = orderStmtInPlace(a, map[string][]*ir.Name{})
|
||||
appendWalkStmt(init, a)
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ import (
|
||||
"cmd/compile/internal/ssagen"
|
||||
"cmd/compile/internal/typecheck"
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/internal/src"
|
||||
"cmd/internal/sys"
|
||||
)
|
||||
|
||||
@@ -50,13 +49,8 @@ func walkConvInterface(n *ir.ConvExpr, init *ir.Nodes) ir.Node {
|
||||
}
|
||||
|
||||
if !fromType.IsInterface() {
|
||||
var typeWord ir.Node
|
||||
if toType.IsEmptyInterface() {
|
||||
typeWord = reflectdata.TypePtr(fromType)
|
||||
} else {
|
||||
typeWord = reflectdata.ITabAddr(fromType, toType)
|
||||
}
|
||||
l := ir.NewBinaryExpr(base.Pos, ir.OEFACE, typeWord, dataWord(n.Pos(), n.X, init, n.Esc() != ir.EscNone))
|
||||
typeWord := reflectdata.ConvIfaceTypeWord(base.Pos, n)
|
||||
l := ir.NewBinaryExpr(base.Pos, ir.OEFACE, typeWord, dataWord(n, init))
|
||||
l.SetType(toType)
|
||||
l.SetTypecheck(n.Typecheck())
|
||||
return l
|
||||
@@ -95,7 +89,7 @@ func walkConvInterface(n *ir.ConvExpr, init *ir.Nodes) ir.Node {
|
||||
fn := typecheck.LookupRuntime("convI2I")
|
||||
types.CalcSize(fn.Type())
|
||||
call := ir.NewCallExpr(base.Pos, ir.OCALL, fn, nil)
|
||||
call.Args = []ir.Node{reflectdata.TypePtr(toType), itab}
|
||||
call.Args = []ir.Node{reflectdata.ConvIfaceTypeWord(base.Pos, n), itab}
|
||||
typeWord = walkExpr(typecheck.Expr(call), init)
|
||||
}
|
||||
|
||||
@@ -107,10 +101,10 @@ func walkConvInterface(n *ir.ConvExpr, init *ir.Nodes) ir.Node {
|
||||
return e
|
||||
}
|
||||
|
||||
// Returns the data word (the second word) used to represent n in an interface.
|
||||
// n must not be of interface type.
|
||||
// esc describes whether the result escapes.
|
||||
func dataWord(pos src.XPos, n ir.Node, init *ir.Nodes, escapes bool) ir.Node {
|
||||
// Returns the data word (the second word) used to represent conv.X in
|
||||
// an interface.
|
||||
func dataWord(conv *ir.ConvExpr, init *ir.Nodes) ir.Node {
|
||||
pos, n := conv.Pos(), conv.X
|
||||
fromType := n.Type()
|
||||
|
||||
// If it's a pointer, it is its own representation.
|
||||
@@ -150,7 +144,7 @@ func dataWord(pos src.XPos, n ir.Node, init *ir.Nodes, escapes bool) ir.Node {
|
||||
case n.Op() == ir.ONAME && n.(*ir.Name).Class == ir.PEXTERN && n.(*ir.Name).Readonly():
|
||||
// n is a readonly global; use it directly.
|
||||
value = n
|
||||
case !escapes && fromType.Size() <= 1024:
|
||||
case conv.Esc() == ir.EscNone && fromType.Size() <= 1024:
|
||||
// n does not escape. Use a stack temporary initialized to n.
|
||||
value = typecheck.Temp(fromType)
|
||||
init.Append(typecheck.Stmt(ir.NewAssignStmt(base.Pos, value, n)))
|
||||
@@ -176,7 +170,7 @@ func dataWord(pos src.XPos, n ir.Node, init *ir.Nodes, escapes bool) ir.Node {
|
||||
n = copyExpr(n, fromType, init)
|
||||
}
|
||||
fn = typecheck.SubstArgTypes(fn, fromType)
|
||||
args = []ir.Node{reflectdata.TypePtr(fromType), typecheck.NodAddr(n)}
|
||||
args = []ir.Node{reflectdata.ConvIfaceSrcRType(base.Pos, conv), typecheck.NodAddr(n)}
|
||||
} else {
|
||||
// Use a specialized conversion routine that takes the type being
|
||||
// converted by value, not by pointer.
|
||||
@@ -211,7 +205,7 @@ func dataWord(pos src.XPos, n ir.Node, init *ir.Nodes, escapes bool) ir.Node {
|
||||
// walkConvIData walks an OCONVIDATA node.
|
||||
func walkConvIData(n *ir.ConvExpr, init *ir.Nodes) ir.Node {
|
||||
n.X = walkExpr(n.X, init)
|
||||
return dataWord(n.Pos(), n.X, init, n.Esc() != ir.EscNone)
|
||||
return dataWord(n, init)
|
||||
}
|
||||
|
||||
// walkBytesRunesToString walks an OBYTES2STR or ORUNES2STR node.
|
||||
|
||||
@@ -782,7 +782,7 @@ func walkIndexMap(n *ir.IndexExpr, init *ir.Nodes) ir.Node {
|
||||
t := map_.Type()
|
||||
fast := mapfast(t)
|
||||
key := mapKeyArg(fast, n, n.Index, n.Assigned)
|
||||
args := []ir.Node{reflectdata.TypePtr(t), map_, key}
|
||||
args := []ir.Node{reflectdata.IndexMapRType(base.Pos, n), map_, key}
|
||||
|
||||
var mapFn ir.Node
|
||||
switch {
|
||||
|
||||
@@ -993,7 +993,7 @@ func (o *orderState) stmt(n ir.Node) {
|
||||
do(0, recv.X.Type().Elem())
|
||||
do(1, types.Types[types.TBOOL])
|
||||
if len(init) != 0 {
|
||||
ir.DumpList("ninit", r.Init())
|
||||
ir.DumpList("ninit", init)
|
||||
base.Fatalf("ninit on select recv")
|
||||
}
|
||||
orderBlock(ncas.PtrInit(), o.free)
|
||||
@@ -1456,8 +1456,12 @@ func (o *orderState) expr1(n, lhs ir.Node) ir.Node {
|
||||
|
||||
// Emit eval+insert of dynamic entries, one at a time.
|
||||
for _, r := range dynamics {
|
||||
as := ir.NewAssignStmt(base.Pos, ir.NewIndexExpr(base.Pos, m, r.Key), r.Value)
|
||||
typecheck.Stmt(as) // Note: this converts the OINDEX to an OINDEXMAP
|
||||
lhs := typecheck.AssignExpr(ir.NewIndexExpr(base.Pos, m, r.Key)).(*ir.IndexExpr)
|
||||
base.AssertfAt(lhs.Op() == ir.OINDEXMAP, lhs.Pos(), "want OINDEXMAP, have %+v", lhs)
|
||||
lhs.RType = n.RType
|
||||
|
||||
as := ir.NewAssignStmt(base.Pos, lhs, r.Value)
|
||||
typecheck.Stmt(as)
|
||||
o.stmt(as)
|
||||
}
|
||||
|
||||
|
||||
@@ -38,11 +38,7 @@ func cheapComputableIndex(width int64) bool {
|
||||
// the returned node.
|
||||
func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
if isMapClear(nrange) {
|
||||
m := nrange.X
|
||||
lno := ir.SetPos(m)
|
||||
n := mapClear(m)
|
||||
base.Pos = lno
|
||||
return n
|
||||
return mapClear(nrange)
|
||||
}
|
||||
|
||||
nfor := ir.NewForStmt(nrange.Pos(), nil, nil, nil, nil)
|
||||
@@ -107,7 +103,7 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
|
||||
// for v1 := range ha { body }
|
||||
if v2 == nil {
|
||||
body = []ir.Node{ir.NewAssignStmt(base.Pos, v1, hv1)}
|
||||
body = []ir.Node{rangeAssign(nrange, hv1)}
|
||||
break
|
||||
}
|
||||
|
||||
@@ -116,10 +112,7 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
// v1, v2 = hv1, ha[hv1]
|
||||
tmp := ir.NewIndexExpr(base.Pos, ha, hv1)
|
||||
tmp.SetBounded(true)
|
||||
// Use OAS2 to correctly handle assignments
|
||||
// of the form "v1, a[v1] := range".
|
||||
a := ir.NewAssignListStmt(base.Pos, ir.OAS2, []ir.Node{v1, v2}, []ir.Node{hv1, tmp})
|
||||
body = []ir.Node{a}
|
||||
body = []ir.Node{rangeAssign2(nrange, hv1, tmp)}
|
||||
break
|
||||
}
|
||||
|
||||
@@ -144,9 +137,7 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
tmp.SetBounded(true)
|
||||
init = append(init, ir.NewAssignStmt(base.Pos, hp, typecheck.NodAddr(tmp)))
|
||||
|
||||
// Use OAS2 to correctly handle assignments
|
||||
// of the form "v1, a[v1] := range".
|
||||
a := ir.NewAssignListStmt(base.Pos, ir.OAS2, []ir.Node{v1, v2}, []ir.Node{hv1, ir.NewStarExpr(base.Pos, hp)})
|
||||
a := rangeAssign2(nrange, hv1, ir.NewStarExpr(base.Pos, hp))
|
||||
body = append(body, a)
|
||||
|
||||
// Advance pointer as part of the late increment.
|
||||
@@ -172,7 +163,7 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
fn := typecheck.LookupRuntime("mapiterinit")
|
||||
|
||||
fn = typecheck.SubstArgTypes(fn, t.Key(), t.Elem(), th)
|
||||
init = append(init, mkcallstmt1(fn, reflectdata.TypePtr(t), ha, typecheck.NodAddr(hit)))
|
||||
init = append(init, mkcallstmt1(fn, reflectdata.RangeMapRType(base.Pos, nrange), ha, typecheck.NodAddr(hit)))
|
||||
nfor.Cond = ir.NewBinaryExpr(base.Pos, ir.ONE, ir.NewSelectorExpr(base.Pos, ir.ODOT, hit, keysym), typecheck.NodNil())
|
||||
|
||||
fn = typecheck.LookupRuntime("mapiternext")
|
||||
@@ -183,11 +174,10 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
if v1 == nil {
|
||||
body = nil
|
||||
} else if v2 == nil {
|
||||
body = []ir.Node{ir.NewAssignStmt(base.Pos, v1, key)}
|
||||
body = []ir.Node{rangeAssign(nrange, key)}
|
||||
} else {
|
||||
elem := ir.NewStarExpr(base.Pos, ir.NewSelectorExpr(base.Pos, ir.ODOT, hit, elemsym))
|
||||
a := ir.NewAssignListStmt(base.Pos, ir.OAS2, []ir.Node{v1, v2}, []ir.Node{key, elem})
|
||||
body = []ir.Node{a}
|
||||
body = []ir.Node{rangeAssign2(nrange, key, elem)}
|
||||
}
|
||||
|
||||
case types.TCHAN:
|
||||
@@ -210,7 +200,7 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
if v1 == nil {
|
||||
body = nil
|
||||
} else {
|
||||
body = []ir.Node{ir.NewAssignStmt(base.Pos, v1, hv1)}
|
||||
body = []ir.Node{rangeAssign(nrange, hv1)}
|
||||
}
|
||||
// Zero hv1. This prevents hv1 from being the sole, inaccessible
|
||||
// reference to an otherwise GC-able value during the next channel receive.
|
||||
@@ -275,11 +265,10 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
if v1 != nil {
|
||||
if v2 != nil {
|
||||
// v1, v2 = hv1t, hv2
|
||||
a := ir.NewAssignListStmt(base.Pos, ir.OAS2, []ir.Node{v1, v2}, []ir.Node{hv1t, hv2})
|
||||
body = append(body, a)
|
||||
body = append(body, rangeAssign2(nrange, hv1t, hv2))
|
||||
} else {
|
||||
// v1 = hv1t
|
||||
body = append(body, ir.NewAssignStmt(base.Pos, v1, hv1t))
|
||||
body = append(body, rangeAssign(nrange, hv1t))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -314,6 +303,36 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
|
||||
return n
|
||||
}
|
||||
|
||||
// rangeAssign returns "n.Key = key".
|
||||
func rangeAssign(n *ir.RangeStmt, key ir.Node) ir.Node {
|
||||
key = rangeConvert(n, n.Key.Type(), key, n.KeyTypeWord, n.KeySrcRType)
|
||||
return ir.NewAssignStmt(n.Pos(), n.Key, key)
|
||||
}
|
||||
|
||||
// rangeAssign2 returns "n.Key, n.Value = key, value".
|
||||
func rangeAssign2(n *ir.RangeStmt, key, value ir.Node) ir.Node {
|
||||
// Use OAS2 to correctly handle assignments
|
||||
// of the form "v1, a[v1] = range".
|
||||
key = rangeConvert(n, n.Key.Type(), key, n.KeyTypeWord, n.KeySrcRType)
|
||||
value = rangeConvert(n, n.Value.Type(), value, n.ValueTypeWord, n.ValueSrcRType)
|
||||
return ir.NewAssignListStmt(n.Pos(), ir.OAS2, []ir.Node{n.Key, n.Value}, []ir.Node{key, value})
|
||||
}
|
||||
|
||||
// rangeConvert returns src, converted to dst if necessary. If a
|
||||
// conversion is necessary, then typeWord and srcRType are copied to
|
||||
// their respective ConvExpr fields.
|
||||
func rangeConvert(nrange *ir.RangeStmt, dst *types.Type, src, typeWord, srcRType ir.Node) ir.Node {
|
||||
src = typecheck.Expr(src)
|
||||
if dst.Kind() == types.TBLANK || types.Identical(dst, src.Type()) {
|
||||
return src
|
||||
}
|
||||
|
||||
n := ir.NewConvExpr(nrange.Pos(), ir.OCONV, dst, src)
|
||||
n.TypeWord = typeWord
|
||||
n.SrcRType = srcRType
|
||||
return typecheck.Expr(n)
|
||||
}
|
||||
|
||||
// isMapClear checks if n is of the form:
|
||||
//
|
||||
// for k := range m {
|
||||
@@ -360,13 +379,17 @@ func isMapClear(n *ir.RangeStmt) bool {
|
||||
}
|
||||
|
||||
// mapClear constructs a call to runtime.mapclear for the map m.
|
||||
func mapClear(m ir.Node) ir.Node {
|
||||
func mapClear(nrange *ir.RangeStmt) ir.Node {
|
||||
m := nrange.X
|
||||
origPos := ir.SetPos(m)
|
||||
defer func() { base.Pos = origPos }()
|
||||
|
||||
t := m.Type()
|
||||
|
||||
// instantiate mapclear(typ *type, hmap map[any]any)
|
||||
fn := typecheck.LookupRuntime("mapclear")
|
||||
fn = typecheck.SubstArgTypes(fn, t.Key(), t.Elem())
|
||||
n := mkcallstmt1(fn, reflectdata.TypePtr(t), m)
|
||||
n := mkcallstmt1(fn, reflectdata.RangeMapRType(base.Pos, nrange), m)
|
||||
return walkStmt(typecheck.Stmt(n))
|
||||
}
|
||||
|
||||
|
||||
@@ -85,8 +85,12 @@ func walkSwitchExpr(sw *ir.SwitchStmt) {
|
||||
defaultGoto = jmp
|
||||
}
|
||||
|
||||
for _, n1 := range ncase.List {
|
||||
s.Add(ncase.Pos(), n1, jmp)
|
||||
for i, n1 := range ncase.List {
|
||||
var rtype ir.Node
|
||||
if i < len(ncase.RTypes) {
|
||||
rtype = ncase.RTypes[i]
|
||||
}
|
||||
s.Add(ncase.Pos(), n1, rtype, jmp)
|
||||
}
|
||||
|
||||
// Process body.
|
||||
@@ -124,11 +128,12 @@ type exprSwitch struct {
|
||||
type exprClause struct {
|
||||
pos src.XPos
|
||||
lo, hi ir.Node
|
||||
rtype ir.Node // *runtime._type for OEQ node
|
||||
jmp ir.Node
|
||||
}
|
||||
|
||||
func (s *exprSwitch) Add(pos src.XPos, expr, jmp ir.Node) {
|
||||
c := exprClause{pos: pos, lo: expr, hi: expr, jmp: jmp}
|
||||
func (s *exprSwitch) Add(pos src.XPos, expr, rtype, jmp ir.Node) {
|
||||
c := exprClause{pos: pos, lo: expr, hi: expr, rtype: rtype, jmp: jmp}
|
||||
if types.IsOrdered[s.exprname.Type().Kind()] && expr.Op() == ir.OLITERAL {
|
||||
s.clauses = append(s.clauses, c)
|
||||
return
|
||||
@@ -233,7 +238,7 @@ func (s *exprSwitch) flush() {
|
||||
// Add length case to outer switch.
|
||||
cas := ir.NewBasicLit(pos, constant.MakeInt64(runLen(run)))
|
||||
jmp := ir.NewBranchStmt(pos, ir.OGOTO, label)
|
||||
outer.Add(pos, cas, jmp)
|
||||
outer.Add(pos, cas, nil, jmp)
|
||||
}
|
||||
s.done.Append(ir.NewLabelStmt(s.pos, outerLabel))
|
||||
outer.Emit(&s.done)
|
||||
@@ -342,7 +347,9 @@ func (c *exprClause) test(exprname ir.Node) ir.Node {
|
||||
}
|
||||
}
|
||||
|
||||
return ir.NewBinaryExpr(c.pos, ir.OEQ, exprname, c.lo)
|
||||
n := ir.NewBinaryExpr(c.pos, ir.OEQ, exprname, c.lo)
|
||||
n.RType = c.rtype
|
||||
return n
|
||||
}
|
||||
|
||||
func allCaseExprsAreSideEffectFree(sw *ir.SwitchStmt) bool {
|
||||
|
||||
22
src/cmd/dist/notgo117.go
vendored
Normal file
22
src/cmd/dist/notgo117.go
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
// Copyright 2022 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Go 1.20 and later requires Go 1.17 as the bootstrap toolchain.
|
||||
// If cmd/dist is built using an earlier Go version, this file will be
|
||||
// included in the build and cause an error like:
|
||||
//
|
||||
// % GOROOT_BOOTSTRAP=$HOME/sdk/go1.16 ./make.bash
|
||||
// Building Go cmd/dist using /Users/rsc/sdk/go1.16. (go1.16 darwin/amd64)
|
||||
// found packages main (build.go) and building_Go_requires_Go_1_17_or_later (notgo117.go) in /Users/rsc/go/src/cmd/dist
|
||||
// %
|
||||
//
|
||||
// which is the best we can do under the circumstances.
|
||||
//
|
||||
// See go.dev/issue/44505 for more background on
|
||||
// why Go moved on from Go 1.4 for bootstrap.
|
||||
|
||||
//go:build !go1.17
|
||||
// +build !go1.17
|
||||
|
||||
package building_Go_requires_Go_1_17_or_later
|
||||
@@ -1,18 +1,18 @@
|
||||
module cmd
|
||||
|
||||
go 1.19
|
||||
go 1.20
|
||||
|
||||
require (
|
||||
github.com/google/pprof v0.0.0-20220517023622-154dc81eb7b0
|
||||
golang.org/x/arch v0.0.0-20220412001346-fc48f9fe4c15
|
||||
golang.org/x/arch v0.0.0-20220722155209-00200b7164a7
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
|
||||
golang.org/x/sync v0.0.0-20220513210516-0976fa681c29
|
||||
golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098
|
||||
golang.org/x/term v0.0.0-20220411215600-e5f449aeb171
|
||||
golang.org/x/tools v0.1.11-0.20220516163903-1e55371df567
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4
|
||||
golang.org/x/sys v0.0.0-20220803195053-6e608f9ce704
|
||||
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035
|
||||
golang.org/x/tools v0.1.12-0.20220725193627-2a6393fe54b3
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2 // indirect
|
||||
golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8 // indirect
|
||||
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
|
||||
)
|
||||
|
||||
@@ -2,17 +2,17 @@ github.com/google/pprof v0.0.0-20220517023622-154dc81eb7b0 h1:XgEFTOJTsN3Li0Txfh
|
||||
github.com/google/pprof v0.0.0-20220517023622-154dc81eb7b0/go.mod h1:gSuNB+gJaOiQKLEZ+q+PK9Mq3SOzhRcw2GsGS/FhYDk=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2 h1:rcanfLhLDA8nozr/K289V1zcntHr3V+SHlXwzz1ZI2g=
|
||||
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
|
||||
golang.org/x/arch v0.0.0-20220412001346-fc48f9fe4c15 h1:GVfVkciLYxn5mY5EncwAe0SXUn9Rm81rRkZ0TTmn/cU=
|
||||
golang.org/x/arch v0.0.0-20220412001346-fc48f9fe4c15/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||
golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8 h1:y+mHpWoQJNAHt26Nhh6JP7hvM71IRZureyvZhoVALIs=
|
||||
golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/arch v0.0.0-20220722155209-00200b7164a7 h1:VBQqJMNMRfQsWSiCTLgz9XjAfWlgnJAPv8nsp1HF8Tw=
|
||||
golang.org/x/arch v0.0.0-20220722155209-00200b7164a7/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa h1:zuSxTR4o9y82ebqCUJYNGJbGPo6sKVl54f/TVDObg1c=
|
||||
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/sync v0.0.0-20220513210516-0976fa681c29 h1:w8s32wxx3sY+OjLlv9qltkLU5yvJzxjjgiHWLjdIcw4=
|
||||
golang.org/x/sync v0.0.0-20220513210516-0976fa681c29/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098 h1:PgOr27OhUx2IRqGJ2RxAWI4dJQ7bi9cSrB82uzFzfUA=
|
||||
golang.org/x/sys v0.0.0-20220614162138-6c1b26c55098/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8=
|
||||
golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/tools v0.1.11-0.20220516163903-1e55371df567 h1:MksUZ/zlU+pMbsq1Sw16gK6E1aWzD0rLE+eS2SxF24Y=
|
||||
golang.org/x/tools v0.1.11-0.20220516163903-1e55371df567/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20220803195053-6e608f9ce704 h1:Y7NOhdqIOU8kYI7BxsgL38d0ot0raxvcW+EMQU2QrT4=
|
||||
golang.org/x/sys v0.0.0-20220803195053-6e608f9ce704/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc=
|
||||
golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/tools v0.1.12-0.20220725193627-2a6393fe54b3 h1:w/Sued0p1rtooa9ACDVKK2YXKdoowvAcSAMCg0uxOe4=
|
||||
golang.org/x/tools v0.1.12-0.20220725193627-2a6393fe54b3/go.mod h1:LAN4g6CAevfxH/1ahTEeded+lrzLCK8eMwlRe2NVbGM=
|
||||
|
||||
3
src/cmd/vendor/golang.org/x/arch/AUTHORS
generated
vendored
3
src/cmd/vendor/golang.org/x/arch/AUTHORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code refers to The Go Authors for copyright purposes.
|
||||
# The master list of authors is in the main Go distribution,
|
||||
# visible at https://tip.golang.org/AUTHORS.
|
||||
3
src/cmd/vendor/golang.org/x/arch/CONTRIBUTORS
generated
vendored
3
src/cmd/vendor/golang.org/x/arch/CONTRIBUTORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code was written by the Go contributors.
|
||||
# The master list of contributors is in the main Go distribution,
|
||||
# visible at https://tip.golang.org/CONTRIBUTORS.
|
||||
3
src/cmd/vendor/golang.org/x/crypto/AUTHORS
generated
vendored
3
src/cmd/vendor/golang.org/x/crypto/AUTHORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code refers to The Go Authors for copyright purposes.
|
||||
# The master list of authors is in the main Go distribution,
|
||||
# visible at https://tip.golang.org/AUTHORS.
|
||||
3
src/cmd/vendor/golang.org/x/crypto/CONTRIBUTORS
generated
vendored
3
src/cmd/vendor/golang.org/x/crypto/CONTRIBUTORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code was written by the Go contributors.
|
||||
# The master list of contributors is in the main Go distribution,
|
||||
# visible at https://tip.golang.org/CONTRIBUTORS.
|
||||
3
src/cmd/vendor/golang.org/x/sync/AUTHORS
generated
vendored
3
src/cmd/vendor/golang.org/x/sync/AUTHORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code refers to The Go Authors for copyright purposes.
|
||||
# The master list of authors is in the main Go distribution,
|
||||
# visible at http://tip.golang.org/AUTHORS.
|
||||
3
src/cmd/vendor/golang.org/x/sync/CONTRIBUTORS
generated
vendored
3
src/cmd/vendor/golang.org/x/sync/CONTRIBUTORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code was written by the Go contributors.
|
||||
# The master list of contributors is in the main Go distribution,
|
||||
# visible at http://tip.golang.org/CONTRIBUTORS.
|
||||
3
src/cmd/vendor/golang.org/x/sys/AUTHORS
generated
vendored
3
src/cmd/vendor/golang.org/x/sys/AUTHORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code refers to The Go Authors for copyright purposes.
|
||||
# The master list of authors is in the main Go distribution,
|
||||
# visible at http://tip.golang.org/AUTHORS.
|
||||
3
src/cmd/vendor/golang.org/x/sys/CONTRIBUTORS
generated
vendored
3
src/cmd/vendor/golang.org/x/sys/CONTRIBUTORS
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# This source code was written by the Go contributors.
|
||||
# The master list of contributors is in the main Go distribution,
|
||||
# visible at http://tip.golang.org/CONTRIBUTORS.
|
||||
29
src/cmd/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s
generated
vendored
Normal file
29
src/cmd/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
// Copyright 2021 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build (darwin || freebsd || netbsd || openbsd) && gc
|
||||
// +build darwin freebsd netbsd openbsd
|
||||
// +build gc
|
||||
|
||||
#include "textflag.h"
|
||||
|
||||
// System call support for RISCV64 BSD
|
||||
|
||||
// Just jump to package syscall's implementation for all these functions.
|
||||
// The runtime may know about them.
|
||||
|
||||
TEXT ·Syscall(SB),NOSPLIT,$0-56
|
||||
JMP syscall·Syscall(SB)
|
||||
|
||||
TEXT ·Syscall6(SB),NOSPLIT,$0-80
|
||||
JMP syscall·Syscall6(SB)
|
||||
|
||||
TEXT ·Syscall9(SB),NOSPLIT,$0-104
|
||||
JMP syscall·Syscall9(SB)
|
||||
|
||||
TEXT ·RawSyscall(SB),NOSPLIT,$0-56
|
||||
JMP syscall·RawSyscall(SB)
|
||||
|
||||
TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
|
||||
JMP syscall·RawSyscall6(SB)
|
||||
233
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
generated
vendored
233
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
generated
vendored
@@ -1,233 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
|
||||
// them here for backwards compatibility.
|
||||
|
||||
package unix
|
||||
|
||||
const (
|
||||
DLT_HHDLC = 0x79
|
||||
IFF_SMART = 0x20
|
||||
IFT_1822 = 0x2
|
||||
IFT_A12MPPSWITCH = 0x82
|
||||
IFT_AAL2 = 0xbb
|
||||
IFT_AAL5 = 0x31
|
||||
IFT_ADSL = 0x5e
|
||||
IFT_AFLANE8023 = 0x3b
|
||||
IFT_AFLANE8025 = 0x3c
|
||||
IFT_ARAP = 0x58
|
||||
IFT_ARCNET = 0x23
|
||||
IFT_ARCNETPLUS = 0x24
|
||||
IFT_ASYNC = 0x54
|
||||
IFT_ATM = 0x25
|
||||
IFT_ATMDXI = 0x69
|
||||
IFT_ATMFUNI = 0x6a
|
||||
IFT_ATMIMA = 0x6b
|
||||
IFT_ATMLOGICAL = 0x50
|
||||
IFT_ATMRADIO = 0xbd
|
||||
IFT_ATMSUBINTERFACE = 0x86
|
||||
IFT_ATMVCIENDPT = 0xc2
|
||||
IFT_ATMVIRTUAL = 0x95
|
||||
IFT_BGPPOLICYACCOUNTING = 0xa2
|
||||
IFT_BSC = 0x53
|
||||
IFT_CCTEMUL = 0x3d
|
||||
IFT_CEPT = 0x13
|
||||
IFT_CES = 0x85
|
||||
IFT_CHANNEL = 0x46
|
||||
IFT_CNR = 0x55
|
||||
IFT_COFFEE = 0x84
|
||||
IFT_COMPOSITELINK = 0x9b
|
||||
IFT_DCN = 0x8d
|
||||
IFT_DIGITALPOWERLINE = 0x8a
|
||||
IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
|
||||
IFT_DLSW = 0x4a
|
||||
IFT_DOCSCABLEDOWNSTREAM = 0x80
|
||||
IFT_DOCSCABLEMACLAYER = 0x7f
|
||||
IFT_DOCSCABLEUPSTREAM = 0x81
|
||||
IFT_DS0 = 0x51
|
||||
IFT_DS0BUNDLE = 0x52
|
||||
IFT_DS1FDL = 0xaa
|
||||
IFT_DS3 = 0x1e
|
||||
IFT_DTM = 0x8c
|
||||
IFT_DVBASILN = 0xac
|
||||
IFT_DVBASIOUT = 0xad
|
||||
IFT_DVBRCCDOWNSTREAM = 0x93
|
||||
IFT_DVBRCCMACLAYER = 0x92
|
||||
IFT_DVBRCCUPSTREAM = 0x94
|
||||
IFT_ENC = 0xf4
|
||||
IFT_EON = 0x19
|
||||
IFT_EPLRS = 0x57
|
||||
IFT_ESCON = 0x49
|
||||
IFT_ETHER = 0x6
|
||||
IFT_FAITH = 0xf2
|
||||
IFT_FAST = 0x7d
|
||||
IFT_FASTETHER = 0x3e
|
||||
IFT_FASTETHERFX = 0x45
|
||||
IFT_FDDI = 0xf
|
||||
IFT_FIBRECHANNEL = 0x38
|
||||
IFT_FRAMERELAYINTERCONNECT = 0x3a
|
||||
IFT_FRAMERELAYMPI = 0x5c
|
||||
IFT_FRDLCIENDPT = 0xc1
|
||||
IFT_FRELAY = 0x20
|
||||
IFT_FRELAYDCE = 0x2c
|
||||
IFT_FRF16MFRBUNDLE = 0xa3
|
||||
IFT_FRFORWARD = 0x9e
|
||||
IFT_G703AT2MB = 0x43
|
||||
IFT_G703AT64K = 0x42
|
||||
IFT_GIF = 0xf0
|
||||
IFT_GIGABITETHERNET = 0x75
|
||||
IFT_GR303IDT = 0xb2
|
||||
IFT_GR303RDT = 0xb1
|
||||
IFT_H323GATEKEEPER = 0xa4
|
||||
IFT_H323PROXY = 0xa5
|
||||
IFT_HDH1822 = 0x3
|
||||
IFT_HDLC = 0x76
|
||||
IFT_HDSL2 = 0xa8
|
||||
IFT_HIPERLAN2 = 0xb7
|
||||
IFT_HIPPI = 0x2f
|
||||
IFT_HIPPIINTERFACE = 0x39
|
||||
IFT_HOSTPAD = 0x5a
|
||||
IFT_HSSI = 0x2e
|
||||
IFT_HY = 0xe
|
||||
IFT_IBM370PARCHAN = 0x48
|
||||
IFT_IDSL = 0x9a
|
||||
IFT_IEEE80211 = 0x47
|
||||
IFT_IEEE80212 = 0x37
|
||||
IFT_IEEE8023ADLAG = 0xa1
|
||||
IFT_IFGSN = 0x91
|
||||
IFT_IMT = 0xbe
|
||||
IFT_INTERLEAVE = 0x7c
|
||||
IFT_IP = 0x7e
|
||||
IFT_IPFORWARD = 0x8e
|
||||
IFT_IPOVERATM = 0x72
|
||||
IFT_IPOVERCDLC = 0x6d
|
||||
IFT_IPOVERCLAW = 0x6e
|
||||
IFT_IPSWITCH = 0x4e
|
||||
IFT_IPXIP = 0xf9
|
||||
IFT_ISDN = 0x3f
|
||||
IFT_ISDNBASIC = 0x14
|
||||
IFT_ISDNPRIMARY = 0x15
|
||||
IFT_ISDNS = 0x4b
|
||||
IFT_ISDNU = 0x4c
|
||||
IFT_ISO88022LLC = 0x29
|
||||
IFT_ISO88023 = 0x7
|
||||
IFT_ISO88024 = 0x8
|
||||
IFT_ISO88025 = 0x9
|
||||
IFT_ISO88025CRFPINT = 0x62
|
||||
IFT_ISO88025DTR = 0x56
|
||||
IFT_ISO88025FIBER = 0x73
|
||||
IFT_ISO88026 = 0xa
|
||||
IFT_ISUP = 0xb3
|
||||
IFT_L3IPXVLAN = 0x89
|
||||
IFT_LAPB = 0x10
|
||||
IFT_LAPD = 0x4d
|
||||
IFT_LAPF = 0x77
|
||||
IFT_LOCALTALK = 0x2a
|
||||
IFT_LOOP = 0x18
|
||||
IFT_MEDIAMAILOVERIP = 0x8b
|
||||
IFT_MFSIGLINK = 0xa7
|
||||
IFT_MIOX25 = 0x26
|
||||
IFT_MODEM = 0x30
|
||||
IFT_MPC = 0x71
|
||||
IFT_MPLS = 0xa6
|
||||
IFT_MPLSTUNNEL = 0x96
|
||||
IFT_MSDSL = 0x8f
|
||||
IFT_MVL = 0xbf
|
||||
IFT_MYRINET = 0x63
|
||||
IFT_NFAS = 0xaf
|
||||
IFT_NSIP = 0x1b
|
||||
IFT_OPTICALCHANNEL = 0xc3
|
||||
IFT_OPTICALTRANSPORT = 0xc4
|
||||
IFT_OTHER = 0x1
|
||||
IFT_P10 = 0xc
|
||||
IFT_P80 = 0xd
|
||||
IFT_PARA = 0x22
|
||||
IFT_PFLOG = 0xf6
|
||||
IFT_PFSYNC = 0xf7
|
||||
IFT_PLC = 0xae
|
||||
IFT_POS = 0xab
|
||||
IFT_PPPMULTILINKBUNDLE = 0x6c
|
||||
IFT_PROPBWAP2MP = 0xb8
|
||||
IFT_PROPCNLS = 0x59
|
||||
IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
|
||||
IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
|
||||
IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
|
||||
IFT_PROPMUX = 0x36
|
||||
IFT_PROPWIRELESSP2P = 0x9d
|
||||
IFT_PTPSERIAL = 0x16
|
||||
IFT_PVC = 0xf1
|
||||
IFT_QLLC = 0x44
|
||||
IFT_RADIOMAC = 0xbc
|
||||
IFT_RADSL = 0x5f
|
||||
IFT_REACHDSL = 0xc0
|
||||
IFT_RFC1483 = 0x9f
|
||||
IFT_RS232 = 0x21
|
||||
IFT_RSRB = 0x4f
|
||||
IFT_SDLC = 0x11
|
||||
IFT_SDSL = 0x60
|
||||
IFT_SHDSL = 0xa9
|
||||
IFT_SIP = 0x1f
|
||||
IFT_SLIP = 0x1c
|
||||
IFT_SMDSDXI = 0x2b
|
||||
IFT_SMDSICIP = 0x34
|
||||
IFT_SONET = 0x27
|
||||
IFT_SONETOVERHEADCHANNEL = 0xb9
|
||||
IFT_SONETPATH = 0x32
|
||||
IFT_SONETVT = 0x33
|
||||
IFT_SRP = 0x97
|
||||
IFT_SS7SIGLINK = 0x9c
|
||||
IFT_STACKTOSTACK = 0x6f
|
||||
IFT_STARLAN = 0xb
|
||||
IFT_STF = 0xd7
|
||||
IFT_T1 = 0x12
|
||||
IFT_TDLC = 0x74
|
||||
IFT_TERMPAD = 0x5b
|
||||
IFT_TR008 = 0xb0
|
||||
IFT_TRANSPHDLC = 0x7b
|
||||
IFT_TUNNEL = 0x83
|
||||
IFT_ULTRA = 0x1d
|
||||
IFT_USB = 0xa0
|
||||
IFT_V11 = 0x40
|
||||
IFT_V35 = 0x2d
|
||||
IFT_V36 = 0x41
|
||||
IFT_V37 = 0x78
|
||||
IFT_VDSL = 0x61
|
||||
IFT_VIRTUALIPADDRESS = 0x70
|
||||
IFT_VOICEEM = 0x64
|
||||
IFT_VOICEENCAP = 0x67
|
||||
IFT_VOICEFXO = 0x65
|
||||
IFT_VOICEFXS = 0x66
|
||||
IFT_VOICEOVERATM = 0x98
|
||||
IFT_VOICEOVERFRAMERELAY = 0x99
|
||||
IFT_VOICEOVERIP = 0x68
|
||||
IFT_X213 = 0x5d
|
||||
IFT_X25 = 0x5
|
||||
IFT_X25DDN = 0x4
|
||||
IFT_X25HUNTGROUP = 0x7a
|
||||
IFT_X25MLP = 0x79
|
||||
IFT_X25PLE = 0x28
|
||||
IFT_XETHER = 0x1a
|
||||
IPPROTO_MAXID = 0x34
|
||||
IPV6_FAITH = 0x1d
|
||||
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||
IP_FAITH = 0x16
|
||||
IP_MAX_SOURCE_FILTER = 0x400
|
||||
IP_MIN_MEMBERSHIPS = 0x1f
|
||||
MAP_NORESERVE = 0x40
|
||||
MAP_RENAME = 0x20
|
||||
NET_RT_MAXID = 0x6
|
||||
RTF_PRCLONING = 0x10000
|
||||
RTM_OLDADD = 0x9
|
||||
RTM_OLDDEL = 0xa
|
||||
RT_CACHING_CONTEXT = 0x1
|
||||
RT_NORTREF = 0x2
|
||||
SIOCADDRT = 0x8030720a
|
||||
SIOCALIFADDR = 0x8118691b
|
||||
SIOCDELRT = 0x8030720b
|
||||
SIOCDLIFADDR = 0x8118691d
|
||||
SIOCGLIFADDR = 0xc118691c
|
||||
SIOCGLIFPHYADDR = 0xc118694b
|
||||
SIOCSLIFPHYADDR = 0x8118694a
|
||||
)
|
||||
233
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
generated
vendored
233
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
generated
vendored
@@ -1,233 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
|
||||
// them here for backwards compatibility.
|
||||
|
||||
package unix
|
||||
|
||||
const (
|
||||
DLT_HHDLC = 0x79
|
||||
IFF_SMART = 0x20
|
||||
IFT_1822 = 0x2
|
||||
IFT_A12MPPSWITCH = 0x82
|
||||
IFT_AAL2 = 0xbb
|
||||
IFT_AAL5 = 0x31
|
||||
IFT_ADSL = 0x5e
|
||||
IFT_AFLANE8023 = 0x3b
|
||||
IFT_AFLANE8025 = 0x3c
|
||||
IFT_ARAP = 0x58
|
||||
IFT_ARCNET = 0x23
|
||||
IFT_ARCNETPLUS = 0x24
|
||||
IFT_ASYNC = 0x54
|
||||
IFT_ATM = 0x25
|
||||
IFT_ATMDXI = 0x69
|
||||
IFT_ATMFUNI = 0x6a
|
||||
IFT_ATMIMA = 0x6b
|
||||
IFT_ATMLOGICAL = 0x50
|
||||
IFT_ATMRADIO = 0xbd
|
||||
IFT_ATMSUBINTERFACE = 0x86
|
||||
IFT_ATMVCIENDPT = 0xc2
|
||||
IFT_ATMVIRTUAL = 0x95
|
||||
IFT_BGPPOLICYACCOUNTING = 0xa2
|
||||
IFT_BSC = 0x53
|
||||
IFT_CCTEMUL = 0x3d
|
||||
IFT_CEPT = 0x13
|
||||
IFT_CES = 0x85
|
||||
IFT_CHANNEL = 0x46
|
||||
IFT_CNR = 0x55
|
||||
IFT_COFFEE = 0x84
|
||||
IFT_COMPOSITELINK = 0x9b
|
||||
IFT_DCN = 0x8d
|
||||
IFT_DIGITALPOWERLINE = 0x8a
|
||||
IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
|
||||
IFT_DLSW = 0x4a
|
||||
IFT_DOCSCABLEDOWNSTREAM = 0x80
|
||||
IFT_DOCSCABLEMACLAYER = 0x7f
|
||||
IFT_DOCSCABLEUPSTREAM = 0x81
|
||||
IFT_DS0 = 0x51
|
||||
IFT_DS0BUNDLE = 0x52
|
||||
IFT_DS1FDL = 0xaa
|
||||
IFT_DS3 = 0x1e
|
||||
IFT_DTM = 0x8c
|
||||
IFT_DVBASILN = 0xac
|
||||
IFT_DVBASIOUT = 0xad
|
||||
IFT_DVBRCCDOWNSTREAM = 0x93
|
||||
IFT_DVBRCCMACLAYER = 0x92
|
||||
IFT_DVBRCCUPSTREAM = 0x94
|
||||
IFT_ENC = 0xf4
|
||||
IFT_EON = 0x19
|
||||
IFT_EPLRS = 0x57
|
||||
IFT_ESCON = 0x49
|
||||
IFT_ETHER = 0x6
|
||||
IFT_FAITH = 0xf2
|
||||
IFT_FAST = 0x7d
|
||||
IFT_FASTETHER = 0x3e
|
||||
IFT_FASTETHERFX = 0x45
|
||||
IFT_FDDI = 0xf
|
||||
IFT_FIBRECHANNEL = 0x38
|
||||
IFT_FRAMERELAYINTERCONNECT = 0x3a
|
||||
IFT_FRAMERELAYMPI = 0x5c
|
||||
IFT_FRDLCIENDPT = 0xc1
|
||||
IFT_FRELAY = 0x20
|
||||
IFT_FRELAYDCE = 0x2c
|
||||
IFT_FRF16MFRBUNDLE = 0xa3
|
||||
IFT_FRFORWARD = 0x9e
|
||||
IFT_G703AT2MB = 0x43
|
||||
IFT_G703AT64K = 0x42
|
||||
IFT_GIF = 0xf0
|
||||
IFT_GIGABITETHERNET = 0x75
|
||||
IFT_GR303IDT = 0xb2
|
||||
IFT_GR303RDT = 0xb1
|
||||
IFT_H323GATEKEEPER = 0xa4
|
||||
IFT_H323PROXY = 0xa5
|
||||
IFT_HDH1822 = 0x3
|
||||
IFT_HDLC = 0x76
|
||||
IFT_HDSL2 = 0xa8
|
||||
IFT_HIPERLAN2 = 0xb7
|
||||
IFT_HIPPI = 0x2f
|
||||
IFT_HIPPIINTERFACE = 0x39
|
||||
IFT_HOSTPAD = 0x5a
|
||||
IFT_HSSI = 0x2e
|
||||
IFT_HY = 0xe
|
||||
IFT_IBM370PARCHAN = 0x48
|
||||
IFT_IDSL = 0x9a
|
||||
IFT_IEEE80211 = 0x47
|
||||
IFT_IEEE80212 = 0x37
|
||||
IFT_IEEE8023ADLAG = 0xa1
|
||||
IFT_IFGSN = 0x91
|
||||
IFT_IMT = 0xbe
|
||||
IFT_INTERLEAVE = 0x7c
|
||||
IFT_IP = 0x7e
|
||||
IFT_IPFORWARD = 0x8e
|
||||
IFT_IPOVERATM = 0x72
|
||||
IFT_IPOVERCDLC = 0x6d
|
||||
IFT_IPOVERCLAW = 0x6e
|
||||
IFT_IPSWITCH = 0x4e
|
||||
IFT_IPXIP = 0xf9
|
||||
IFT_ISDN = 0x3f
|
||||
IFT_ISDNBASIC = 0x14
|
||||
IFT_ISDNPRIMARY = 0x15
|
||||
IFT_ISDNS = 0x4b
|
||||
IFT_ISDNU = 0x4c
|
||||
IFT_ISO88022LLC = 0x29
|
||||
IFT_ISO88023 = 0x7
|
||||
IFT_ISO88024 = 0x8
|
||||
IFT_ISO88025 = 0x9
|
||||
IFT_ISO88025CRFPINT = 0x62
|
||||
IFT_ISO88025DTR = 0x56
|
||||
IFT_ISO88025FIBER = 0x73
|
||||
IFT_ISO88026 = 0xa
|
||||
IFT_ISUP = 0xb3
|
||||
IFT_L3IPXVLAN = 0x89
|
||||
IFT_LAPB = 0x10
|
||||
IFT_LAPD = 0x4d
|
||||
IFT_LAPF = 0x77
|
||||
IFT_LOCALTALK = 0x2a
|
||||
IFT_LOOP = 0x18
|
||||
IFT_MEDIAMAILOVERIP = 0x8b
|
||||
IFT_MFSIGLINK = 0xa7
|
||||
IFT_MIOX25 = 0x26
|
||||
IFT_MODEM = 0x30
|
||||
IFT_MPC = 0x71
|
||||
IFT_MPLS = 0xa6
|
||||
IFT_MPLSTUNNEL = 0x96
|
||||
IFT_MSDSL = 0x8f
|
||||
IFT_MVL = 0xbf
|
||||
IFT_MYRINET = 0x63
|
||||
IFT_NFAS = 0xaf
|
||||
IFT_NSIP = 0x1b
|
||||
IFT_OPTICALCHANNEL = 0xc3
|
||||
IFT_OPTICALTRANSPORT = 0xc4
|
||||
IFT_OTHER = 0x1
|
||||
IFT_P10 = 0xc
|
||||
IFT_P80 = 0xd
|
||||
IFT_PARA = 0x22
|
||||
IFT_PFLOG = 0xf6
|
||||
IFT_PFSYNC = 0xf7
|
||||
IFT_PLC = 0xae
|
||||
IFT_POS = 0xab
|
||||
IFT_PPPMULTILINKBUNDLE = 0x6c
|
||||
IFT_PROPBWAP2MP = 0xb8
|
||||
IFT_PROPCNLS = 0x59
|
||||
IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
|
||||
IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
|
||||
IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
|
||||
IFT_PROPMUX = 0x36
|
||||
IFT_PROPWIRELESSP2P = 0x9d
|
||||
IFT_PTPSERIAL = 0x16
|
||||
IFT_PVC = 0xf1
|
||||
IFT_QLLC = 0x44
|
||||
IFT_RADIOMAC = 0xbc
|
||||
IFT_RADSL = 0x5f
|
||||
IFT_REACHDSL = 0xc0
|
||||
IFT_RFC1483 = 0x9f
|
||||
IFT_RS232 = 0x21
|
||||
IFT_RSRB = 0x4f
|
||||
IFT_SDLC = 0x11
|
||||
IFT_SDSL = 0x60
|
||||
IFT_SHDSL = 0xa9
|
||||
IFT_SIP = 0x1f
|
||||
IFT_SLIP = 0x1c
|
||||
IFT_SMDSDXI = 0x2b
|
||||
IFT_SMDSICIP = 0x34
|
||||
IFT_SONET = 0x27
|
||||
IFT_SONETOVERHEADCHANNEL = 0xb9
|
||||
IFT_SONETPATH = 0x32
|
||||
IFT_SONETVT = 0x33
|
||||
IFT_SRP = 0x97
|
||||
IFT_SS7SIGLINK = 0x9c
|
||||
IFT_STACKTOSTACK = 0x6f
|
||||
IFT_STARLAN = 0xb
|
||||
IFT_STF = 0xd7
|
||||
IFT_T1 = 0x12
|
||||
IFT_TDLC = 0x74
|
||||
IFT_TERMPAD = 0x5b
|
||||
IFT_TR008 = 0xb0
|
||||
IFT_TRANSPHDLC = 0x7b
|
||||
IFT_TUNNEL = 0x83
|
||||
IFT_ULTRA = 0x1d
|
||||
IFT_USB = 0xa0
|
||||
IFT_V11 = 0x40
|
||||
IFT_V35 = 0x2d
|
||||
IFT_V36 = 0x41
|
||||
IFT_V37 = 0x78
|
||||
IFT_VDSL = 0x61
|
||||
IFT_VIRTUALIPADDRESS = 0x70
|
||||
IFT_VOICEEM = 0x64
|
||||
IFT_VOICEENCAP = 0x67
|
||||
IFT_VOICEFXO = 0x65
|
||||
IFT_VOICEFXS = 0x66
|
||||
IFT_VOICEOVERATM = 0x98
|
||||
IFT_VOICEOVERFRAMERELAY = 0x99
|
||||
IFT_VOICEOVERIP = 0x68
|
||||
IFT_X213 = 0x5d
|
||||
IFT_X25 = 0x5
|
||||
IFT_X25DDN = 0x4
|
||||
IFT_X25HUNTGROUP = 0x7a
|
||||
IFT_X25MLP = 0x79
|
||||
IFT_X25PLE = 0x28
|
||||
IFT_XETHER = 0x1a
|
||||
IPPROTO_MAXID = 0x34
|
||||
IPV6_FAITH = 0x1d
|
||||
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||
IP_FAITH = 0x16
|
||||
IP_MAX_SOURCE_FILTER = 0x400
|
||||
IP_MIN_MEMBERSHIPS = 0x1f
|
||||
MAP_NORESERVE = 0x40
|
||||
MAP_RENAME = 0x20
|
||||
NET_RT_MAXID = 0x6
|
||||
RTF_PRCLONING = 0x10000
|
||||
RTM_OLDADD = 0x9
|
||||
RTM_OLDDEL = 0xa
|
||||
RT_CACHING_CONTEXT = 0x1
|
||||
RT_NORTREF = 0x2
|
||||
SIOCADDRT = 0x8040720a
|
||||
SIOCALIFADDR = 0x8118691b
|
||||
SIOCDELRT = 0x8040720b
|
||||
SIOCDLIFADDR = 0x8118691d
|
||||
SIOCGLIFADDR = 0xc118691c
|
||||
SIOCGLIFPHYADDR = 0xc118694b
|
||||
SIOCSLIFPHYADDR = 0x8118694a
|
||||
)
|
||||
226
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go
generated
vendored
226
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go
generated
vendored
@@ -1,226 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package unix
|
||||
|
||||
const (
|
||||
IFT_1822 = 0x2
|
||||
IFT_A12MPPSWITCH = 0x82
|
||||
IFT_AAL2 = 0xbb
|
||||
IFT_AAL5 = 0x31
|
||||
IFT_ADSL = 0x5e
|
||||
IFT_AFLANE8023 = 0x3b
|
||||
IFT_AFLANE8025 = 0x3c
|
||||
IFT_ARAP = 0x58
|
||||
IFT_ARCNET = 0x23
|
||||
IFT_ARCNETPLUS = 0x24
|
||||
IFT_ASYNC = 0x54
|
||||
IFT_ATM = 0x25
|
||||
IFT_ATMDXI = 0x69
|
||||
IFT_ATMFUNI = 0x6a
|
||||
IFT_ATMIMA = 0x6b
|
||||
IFT_ATMLOGICAL = 0x50
|
||||
IFT_ATMRADIO = 0xbd
|
||||
IFT_ATMSUBINTERFACE = 0x86
|
||||
IFT_ATMVCIENDPT = 0xc2
|
||||
IFT_ATMVIRTUAL = 0x95
|
||||
IFT_BGPPOLICYACCOUNTING = 0xa2
|
||||
IFT_BSC = 0x53
|
||||
IFT_CCTEMUL = 0x3d
|
||||
IFT_CEPT = 0x13
|
||||
IFT_CES = 0x85
|
||||
IFT_CHANNEL = 0x46
|
||||
IFT_CNR = 0x55
|
||||
IFT_COFFEE = 0x84
|
||||
IFT_COMPOSITELINK = 0x9b
|
||||
IFT_DCN = 0x8d
|
||||
IFT_DIGITALPOWERLINE = 0x8a
|
||||
IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
|
||||
IFT_DLSW = 0x4a
|
||||
IFT_DOCSCABLEDOWNSTREAM = 0x80
|
||||
IFT_DOCSCABLEMACLAYER = 0x7f
|
||||
IFT_DOCSCABLEUPSTREAM = 0x81
|
||||
IFT_DS0 = 0x51
|
||||
IFT_DS0BUNDLE = 0x52
|
||||
IFT_DS1FDL = 0xaa
|
||||
IFT_DS3 = 0x1e
|
||||
IFT_DTM = 0x8c
|
||||
IFT_DVBASILN = 0xac
|
||||
IFT_DVBASIOUT = 0xad
|
||||
IFT_DVBRCCDOWNSTREAM = 0x93
|
||||
IFT_DVBRCCMACLAYER = 0x92
|
||||
IFT_DVBRCCUPSTREAM = 0x94
|
||||
IFT_ENC = 0xf4
|
||||
IFT_EON = 0x19
|
||||
IFT_EPLRS = 0x57
|
||||
IFT_ESCON = 0x49
|
||||
IFT_ETHER = 0x6
|
||||
IFT_FAST = 0x7d
|
||||
IFT_FASTETHER = 0x3e
|
||||
IFT_FASTETHERFX = 0x45
|
||||
IFT_FDDI = 0xf
|
||||
IFT_FIBRECHANNEL = 0x38
|
||||
IFT_FRAMERELAYINTERCONNECT = 0x3a
|
||||
IFT_FRAMERELAYMPI = 0x5c
|
||||
IFT_FRDLCIENDPT = 0xc1
|
||||
IFT_FRELAY = 0x20
|
||||
IFT_FRELAYDCE = 0x2c
|
||||
IFT_FRF16MFRBUNDLE = 0xa3
|
||||
IFT_FRFORWARD = 0x9e
|
||||
IFT_G703AT2MB = 0x43
|
||||
IFT_G703AT64K = 0x42
|
||||
IFT_GIF = 0xf0
|
||||
IFT_GIGABITETHERNET = 0x75
|
||||
IFT_GR303IDT = 0xb2
|
||||
IFT_GR303RDT = 0xb1
|
||||
IFT_H323GATEKEEPER = 0xa4
|
||||
IFT_H323PROXY = 0xa5
|
||||
IFT_HDH1822 = 0x3
|
||||
IFT_HDLC = 0x76
|
||||
IFT_HDSL2 = 0xa8
|
||||
IFT_HIPERLAN2 = 0xb7
|
||||
IFT_HIPPI = 0x2f
|
||||
IFT_HIPPIINTERFACE = 0x39
|
||||
IFT_HOSTPAD = 0x5a
|
||||
IFT_HSSI = 0x2e
|
||||
IFT_HY = 0xe
|
||||
IFT_IBM370PARCHAN = 0x48
|
||||
IFT_IDSL = 0x9a
|
||||
IFT_IEEE80211 = 0x47
|
||||
IFT_IEEE80212 = 0x37
|
||||
IFT_IEEE8023ADLAG = 0xa1
|
||||
IFT_IFGSN = 0x91
|
||||
IFT_IMT = 0xbe
|
||||
IFT_INTERLEAVE = 0x7c
|
||||
IFT_IP = 0x7e
|
||||
IFT_IPFORWARD = 0x8e
|
||||
IFT_IPOVERATM = 0x72
|
||||
IFT_IPOVERCDLC = 0x6d
|
||||
IFT_IPOVERCLAW = 0x6e
|
||||
IFT_IPSWITCH = 0x4e
|
||||
IFT_ISDN = 0x3f
|
||||
IFT_ISDNBASIC = 0x14
|
||||
IFT_ISDNPRIMARY = 0x15
|
||||
IFT_ISDNS = 0x4b
|
||||
IFT_ISDNU = 0x4c
|
||||
IFT_ISO88022LLC = 0x29
|
||||
IFT_ISO88023 = 0x7
|
||||
IFT_ISO88024 = 0x8
|
||||
IFT_ISO88025 = 0x9
|
||||
IFT_ISO88025CRFPINT = 0x62
|
||||
IFT_ISO88025DTR = 0x56
|
||||
IFT_ISO88025FIBER = 0x73
|
||||
IFT_ISO88026 = 0xa
|
||||
IFT_ISUP = 0xb3
|
||||
IFT_L3IPXVLAN = 0x89
|
||||
IFT_LAPB = 0x10
|
||||
IFT_LAPD = 0x4d
|
||||
IFT_LAPF = 0x77
|
||||
IFT_LOCALTALK = 0x2a
|
||||
IFT_LOOP = 0x18
|
||||
IFT_MEDIAMAILOVERIP = 0x8b
|
||||
IFT_MFSIGLINK = 0xa7
|
||||
IFT_MIOX25 = 0x26
|
||||
IFT_MODEM = 0x30
|
||||
IFT_MPC = 0x71
|
||||
IFT_MPLS = 0xa6
|
||||
IFT_MPLSTUNNEL = 0x96
|
||||
IFT_MSDSL = 0x8f
|
||||
IFT_MVL = 0xbf
|
||||
IFT_MYRINET = 0x63
|
||||
IFT_NFAS = 0xaf
|
||||
IFT_NSIP = 0x1b
|
||||
IFT_OPTICALCHANNEL = 0xc3
|
||||
IFT_OPTICALTRANSPORT = 0xc4
|
||||
IFT_OTHER = 0x1
|
||||
IFT_P10 = 0xc
|
||||
IFT_P80 = 0xd
|
||||
IFT_PARA = 0x22
|
||||
IFT_PFLOG = 0xf6
|
||||
IFT_PFSYNC = 0xf7
|
||||
IFT_PLC = 0xae
|
||||
IFT_POS = 0xab
|
||||
IFT_PPPMULTILINKBUNDLE = 0x6c
|
||||
IFT_PROPBWAP2MP = 0xb8
|
||||
IFT_PROPCNLS = 0x59
|
||||
IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
|
||||
IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
|
||||
IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
|
||||
IFT_PROPMUX = 0x36
|
||||
IFT_PROPWIRELESSP2P = 0x9d
|
||||
IFT_PTPSERIAL = 0x16
|
||||
IFT_PVC = 0xf1
|
||||
IFT_QLLC = 0x44
|
||||
IFT_RADIOMAC = 0xbc
|
||||
IFT_RADSL = 0x5f
|
||||
IFT_REACHDSL = 0xc0
|
||||
IFT_RFC1483 = 0x9f
|
||||
IFT_RS232 = 0x21
|
||||
IFT_RSRB = 0x4f
|
||||
IFT_SDLC = 0x11
|
||||
IFT_SDSL = 0x60
|
||||
IFT_SHDSL = 0xa9
|
||||
IFT_SIP = 0x1f
|
||||
IFT_SLIP = 0x1c
|
||||
IFT_SMDSDXI = 0x2b
|
||||
IFT_SMDSICIP = 0x34
|
||||
IFT_SONET = 0x27
|
||||
IFT_SONETOVERHEADCHANNEL = 0xb9
|
||||
IFT_SONETPATH = 0x32
|
||||
IFT_SONETVT = 0x33
|
||||
IFT_SRP = 0x97
|
||||
IFT_SS7SIGLINK = 0x9c
|
||||
IFT_STACKTOSTACK = 0x6f
|
||||
IFT_STARLAN = 0xb
|
||||
IFT_STF = 0xd7
|
||||
IFT_T1 = 0x12
|
||||
IFT_TDLC = 0x74
|
||||
IFT_TERMPAD = 0x5b
|
||||
IFT_TR008 = 0xb0
|
||||
IFT_TRANSPHDLC = 0x7b
|
||||
IFT_TUNNEL = 0x83
|
||||
IFT_ULTRA = 0x1d
|
||||
IFT_USB = 0xa0
|
||||
IFT_V11 = 0x40
|
||||
IFT_V35 = 0x2d
|
||||
IFT_V36 = 0x41
|
||||
IFT_V37 = 0x78
|
||||
IFT_VDSL = 0x61
|
||||
IFT_VIRTUALIPADDRESS = 0x70
|
||||
IFT_VOICEEM = 0x64
|
||||
IFT_VOICEENCAP = 0x67
|
||||
IFT_VOICEFXO = 0x65
|
||||
IFT_VOICEFXS = 0x66
|
||||
IFT_VOICEOVERATM = 0x98
|
||||
IFT_VOICEOVERFRAMERELAY = 0x99
|
||||
IFT_VOICEOVERIP = 0x68
|
||||
IFT_X213 = 0x5d
|
||||
IFT_X25 = 0x5
|
||||
IFT_X25DDN = 0x4
|
||||
IFT_X25HUNTGROUP = 0x7a
|
||||
IFT_X25MLP = 0x79
|
||||
IFT_X25PLE = 0x28
|
||||
IFT_XETHER = 0x1a
|
||||
|
||||
// missing constants on FreeBSD-11.1-RELEASE, copied from old values in ztypes_freebsd_arm.go
|
||||
IFF_SMART = 0x20
|
||||
IFT_FAITH = 0xf2
|
||||
IFT_IPXIP = 0xf9
|
||||
IPPROTO_MAXID = 0x34
|
||||
IPV6_FAITH = 0x1d
|
||||
IP_FAITH = 0x16
|
||||
MAP_NORESERVE = 0x40
|
||||
MAP_RENAME = 0x20
|
||||
NET_RT_MAXID = 0x6
|
||||
RTF_PRCLONING = 0x10000
|
||||
RTM_OLDADD = 0x9
|
||||
RTM_OLDDEL = 0xa
|
||||
SIOCADDRT = 0x8030720a
|
||||
SIOCALIFADDR = 0x8118691b
|
||||
SIOCDELRT = 0x8030720b
|
||||
SIOCDLIFADDR = 0x8118691d
|
||||
SIOCGLIFADDR = 0xc118691c
|
||||
SIOCGLIFPHYADDR = 0xc118694b
|
||||
SIOCSLIFPHYADDR = 0x8118694a
|
||||
)
|
||||
17
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
generated
vendored
17
src/cmd/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
generated
vendored
@@ -1,17 +0,0 @@
|
||||
// Copyright 2020 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
|
||||
// them here for backwards compatibility.
|
||||
|
||||
package unix
|
||||
|
||||
const (
|
||||
DLT_HHDLC = 0x79
|
||||
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||
IP_MAX_SOURCE_FILTER = 0x400
|
||||
IP_MIN_MEMBERSHIPS = 0x1f
|
||||
RT_CACHING_CONTEXT = 0x1
|
||||
RT_NORTREF = 0x2
|
||||
)
|
||||
13
src/cmd/vendor/golang.org/x/sys/unix/mkall.sh
generated
vendored
13
src/cmd/vendor/golang.org/x/sys/unix/mkall.sh
generated
vendored
@@ -89,25 +89,30 @@ dragonfly_amd64)
|
||||
freebsd_386)
|
||||
mkerrors="$mkerrors -m32"
|
||||
mksyscall="go run mksyscall.go -l32"
|
||||
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
||||
mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'"
|
||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
||||
;;
|
||||
freebsd_amd64)
|
||||
mkerrors="$mkerrors -m64"
|
||||
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
||||
mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'"
|
||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
||||
;;
|
||||
freebsd_arm)
|
||||
mkerrors="$mkerrors"
|
||||
mksyscall="go run mksyscall.go -l32 -arm"
|
||||
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
||||
mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'"
|
||||
# Let the type of C char be signed for making the bare syscall
|
||||
# API consistent across platforms.
|
||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
|
||||
;;
|
||||
freebsd_arm64)
|
||||
mkerrors="$mkerrors -m64"
|
||||
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
||||
mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'"
|
||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
|
||||
;;
|
||||
freebsd_riscv64)
|
||||
mkerrors="$mkerrors -m64"
|
||||
mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'"
|
||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
|
||||
;;
|
||||
netbsd_386)
|
||||
|
||||
10
src/cmd/vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
10
src/cmd/vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
@@ -128,6 +128,7 @@ includes_FreeBSD='
|
||||
#include <sys/mount.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <net/bpf.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_types.h>
|
||||
@@ -202,6 +203,7 @@ struct ltchars {
|
||||
#include <sys/timerfd.h>
|
||||
#include <sys/uio.h>
|
||||
#include <sys/xattr.h>
|
||||
#include <linux/audit.h>
|
||||
#include <linux/bpf.h>
|
||||
#include <linux/can.h>
|
||||
#include <linux/can/error.h>
|
||||
@@ -295,6 +297,10 @@ struct ltchars {
|
||||
#define SOL_NETLINK 270
|
||||
#endif
|
||||
|
||||
#ifndef SOL_SMC
|
||||
#define SOL_SMC 286
|
||||
#endif
|
||||
|
||||
#ifdef SOL_BLUETOOTH
|
||||
// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h
|
||||
// but it is already in bluetooth_linux.go
|
||||
@@ -529,7 +535,7 @@ ccflags="$@"
|
||||
$2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ ||
|
||||
$2 ~ /^NS_GET_/ ||
|
||||
$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||
|
||||
$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|TFD)_/ ||
|
||||
$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ ||
|
||||
$2 ~ /^KEXEC_/ ||
|
||||
$2 ~ /^LINUX_REBOOT_CMD_/ ||
|
||||
$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||
|
||||
@@ -553,6 +559,7 @@ ccflags="$@"
|
||||
$2 ~ /^CLONE_[A-Z_]+/ ||
|
||||
$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ &&
|
||||
$2 ~ /^(BPF|DLT)_/ ||
|
||||
$2 ~ /^AUDIT_/ ||
|
||||
$2 ~ /^(CLOCK|TIMER)_/ ||
|
||||
$2 ~ /^CAN_/ ||
|
||||
$2 ~ /^CAP_/ ||
|
||||
@@ -575,7 +582,6 @@ ccflags="$@"
|
||||
$2 ~ /^SEEK_/ ||
|
||||
$2 ~ /^SPLICE_/ ||
|
||||
$2 ~ /^SYNC_FILE_RANGE_/ ||
|
||||
$2 !~ /^AUDIT_RECORD_MAGIC/ &&
|
||||
$2 !~ /IOC_MAGIC/ &&
|
||||
$2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ ||
|
||||
$2 ~ /^(VM|VMADDR)_/ ||
|
||||
|
||||
61
src/cmd/vendor/golang.org/x/sys/unix/syscall_aix.go
generated
vendored
61
src/cmd/vendor/golang.org/x/sys/unix/syscall_aix.go
generated
vendored
@@ -217,14 +217,63 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
// Recvmsg not implemented on AIX
|
||||
return -1, -1, -1, ENOSYS
|
||||
func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(unsafe.Pointer(rsa))
|
||||
msg.Namelen = uint32(SizeofSockaddrAny)
|
||||
var dummy byte
|
||||
if len(oob) > 0 {
|
||||
// receive at least one normal byte
|
||||
if emptyIovecs(iov) {
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
iov = iova[:]
|
||||
}
|
||||
msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
|
||||
msg.SetControllen(len(oob))
|
||||
}
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = recvmsg(fd, &msg, flags); n == -1 {
|
||||
return
|
||||
}
|
||||
oobn = int(msg.Controllen)
|
||||
recvflags = int(msg.Flags)
|
||||
return
|
||||
}
|
||||
|
||||
func sendmsgN(fd int, p, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
// SendmsgN not implemented on AIX
|
||||
return -1, ENOSYS
|
||||
func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(unsafe.Pointer(ptr))
|
||||
msg.Namelen = uint32(salen)
|
||||
var dummy byte
|
||||
var empty bool
|
||||
if len(oob) > 0 {
|
||||
// send at least one normal byte
|
||||
empty = emptyIovecs(iov)
|
||||
if empty {
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
iov = iova[:]
|
||||
}
|
||||
msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
|
||||
msg.SetControllen(len(oob))
|
||||
}
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = sendmsg(fd, &msg, flags); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if len(oob) > 0 && empty {
|
||||
n = 0
|
||||
}
|
||||
return n, nil
|
||||
}
|
||||
|
||||
func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
|
||||
|
||||
46
src/cmd/vendor/golang.org/x/sys/unix/syscall_bsd.go
generated
vendored
46
src/cmd/vendor/golang.org/x/sys/unix/syscall_bsd.go
generated
vendored
@@ -325,27 +325,26 @@ func GetsockoptString(fd, level, opt int) (string, error) {
|
||||
//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
|
||||
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
||||
|
||||
func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(unsafe.Pointer(rsa))
|
||||
msg.Namelen = uint32(SizeofSockaddrAny)
|
||||
var iov Iovec
|
||||
if len(p) > 0 {
|
||||
iov.Base = (*byte)(unsafe.Pointer(&p[0]))
|
||||
iov.SetLen(len(p))
|
||||
}
|
||||
var dummy byte
|
||||
if len(oob) > 0 {
|
||||
// receive at least one normal byte
|
||||
if len(p) == 0 {
|
||||
iov.Base = &dummy
|
||||
iov.SetLen(1)
|
||||
if emptyIovecs(iov) {
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
iov = iova[:]
|
||||
}
|
||||
msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
|
||||
msg.SetControllen(len(oob))
|
||||
}
|
||||
msg.Iov = &iov
|
||||
msg.Iovlen = 1
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = recvmsg(fd, &msg, flags); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -356,31 +355,32 @@ func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn
|
||||
|
||||
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
||||
|
||||
func sendmsgN(fd int, p, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(unsafe.Pointer(ptr))
|
||||
msg.Namelen = uint32(salen)
|
||||
var iov Iovec
|
||||
if len(p) > 0 {
|
||||
iov.Base = (*byte)(unsafe.Pointer(&p[0]))
|
||||
iov.SetLen(len(p))
|
||||
}
|
||||
var dummy byte
|
||||
var empty bool
|
||||
if len(oob) > 0 {
|
||||
// send at least one normal byte
|
||||
if len(p) == 0 {
|
||||
iov.Base = &dummy
|
||||
iov.SetLen(1)
|
||||
empty = emptyIovecs(iov)
|
||||
if empty {
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
iov = iova[:]
|
||||
}
|
||||
msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
|
||||
msg.SetControllen(len(oob))
|
||||
}
|
||||
msg.Iov = &iov
|
||||
msg.Iovlen = 1
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = sendmsg(fd, &msg, flags); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if len(oob) > 0 && len(p) == 0 {
|
||||
if len(oob) > 0 && empty {
|
||||
n = 0
|
||||
}
|
||||
return n, nil
|
||||
|
||||
7
src/cmd/vendor/golang.org/x/sys/unix/syscall_darwin.go
generated
vendored
7
src/cmd/vendor/golang.org/x/sys/unix/syscall_darwin.go
generated
vendored
@@ -393,6 +393,13 @@ func GetsockoptXucred(fd, level, opt int) (*Xucred, error) {
|
||||
return x, err
|
||||
}
|
||||
|
||||
func GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) {
|
||||
var value TCPConnectionInfo
|
||||
vallen := _Socklen(SizeofTCPConnectionInfo)
|
||||
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
||||
return &value, err
|
||||
}
|
||||
|
||||
func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) {
|
||||
mib, err := sysctlmib(name, args...)
|
||||
if err != nil {
|
||||
|
||||
325
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
325
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
@@ -17,25 +17,12 @@ import (
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
const (
|
||||
SYS_FSTAT_FREEBSD12 = 551 // { int fstat(int fd, _Out_ struct stat *sb); }
|
||||
SYS_FSTATAT_FREEBSD12 = 552 // { int fstatat(int fd, _In_z_ char *path, \
|
||||
SYS_GETDIRENTRIES_FREEBSD12 = 554 // { ssize_t getdirentries(int fd, \
|
||||
SYS_STATFS_FREEBSD12 = 555 // { int statfs(_In_z_ char *path, \
|
||||
SYS_FSTATFS_FREEBSD12 = 556 // { int fstatfs(int fd, \
|
||||
SYS_GETFSSTAT_FREEBSD12 = 557 // { int getfsstat( \
|
||||
SYS_MKNODAT_FREEBSD12 = 559 // { int mknodat(int fd, _In_z_ char *path, \
|
||||
)
|
||||
|
||||
// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.
|
||||
var (
|
||||
osreldateOnce sync.Once
|
||||
osreldate uint32
|
||||
)
|
||||
|
||||
// INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h
|
||||
const _ino64First = 1200031
|
||||
|
||||
func supportsABI(ver uint32) bool {
|
||||
osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") })
|
||||
return osreldate >= ver
|
||||
@@ -159,38 +146,18 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
|
||||
|
||||
func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
||||
var (
|
||||
_p0 unsafe.Pointer
|
||||
bufsize uintptr
|
||||
oldBuf []statfs_freebsd11_t
|
||||
needsConvert bool
|
||||
_p0 unsafe.Pointer
|
||||
bufsize uintptr
|
||||
)
|
||||
|
||||
if len(buf) > 0 {
|
||||
if supportsABI(_ino64First) {
|
||||
_p0 = unsafe.Pointer(&buf[0])
|
||||
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
|
||||
} else {
|
||||
n := len(buf)
|
||||
oldBuf = make([]statfs_freebsd11_t, n)
|
||||
_p0 = unsafe.Pointer(&oldBuf[0])
|
||||
bufsize = unsafe.Sizeof(statfs_freebsd11_t{}) * uintptr(n)
|
||||
needsConvert = true
|
||||
}
|
||||
_p0 = unsafe.Pointer(&buf[0])
|
||||
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
|
||||
}
|
||||
var sysno uintptr = SYS_GETFSSTAT
|
||||
if supportsABI(_ino64First) {
|
||||
sysno = SYS_GETFSSTAT_FREEBSD12
|
||||
}
|
||||
r0, _, e1 := Syscall(sysno, uintptr(_p0), bufsize, uintptr(flags))
|
||||
r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
|
||||
n = int(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
if e1 == 0 && needsConvert {
|
||||
for i := range oldBuf {
|
||||
buf[i].convertFrom(&oldBuf[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -245,87 +212,11 @@ func Uname(uname *Utsname) error {
|
||||
}
|
||||
|
||||
func Stat(path string, st *Stat_t) (err error) {
|
||||
var oldStat stat_freebsd11_t
|
||||
if supportsABI(_ino64First) {
|
||||
return fstatat_freebsd12(AT_FDCWD, path, st, 0)
|
||||
}
|
||||
err = stat(path, &oldStat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
st.convertFrom(&oldStat)
|
||||
return nil
|
||||
return Fstatat(AT_FDCWD, path, st, 0)
|
||||
}
|
||||
|
||||
func Lstat(path string, st *Stat_t) (err error) {
|
||||
var oldStat stat_freebsd11_t
|
||||
if supportsABI(_ino64First) {
|
||||
return fstatat_freebsd12(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)
|
||||
}
|
||||
err = lstat(path, &oldStat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
st.convertFrom(&oldStat)
|
||||
return nil
|
||||
}
|
||||
|
||||
func Fstat(fd int, st *Stat_t) (err error) {
|
||||
var oldStat stat_freebsd11_t
|
||||
if supportsABI(_ino64First) {
|
||||
return fstat_freebsd12(fd, st)
|
||||
}
|
||||
err = fstat(fd, &oldStat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
st.convertFrom(&oldStat)
|
||||
return nil
|
||||
}
|
||||
|
||||
func Fstatat(fd int, path string, st *Stat_t, flags int) (err error) {
|
||||
var oldStat stat_freebsd11_t
|
||||
if supportsABI(_ino64First) {
|
||||
return fstatat_freebsd12(fd, path, st, flags)
|
||||
}
|
||||
err = fstatat(fd, path, &oldStat, flags)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
st.convertFrom(&oldStat)
|
||||
return nil
|
||||
}
|
||||
|
||||
func Statfs(path string, st *Statfs_t) (err error) {
|
||||
var oldStatfs statfs_freebsd11_t
|
||||
if supportsABI(_ino64First) {
|
||||
return statfs_freebsd12(path, st)
|
||||
}
|
||||
err = statfs(path, &oldStatfs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
st.convertFrom(&oldStatfs)
|
||||
return nil
|
||||
}
|
||||
|
||||
func Fstatfs(fd int, st *Statfs_t) (err error) {
|
||||
var oldStatfs statfs_freebsd11_t
|
||||
if supportsABI(_ino64First) {
|
||||
return fstatfs_freebsd12(fd, st)
|
||||
}
|
||||
err = fstatfs(fd, &oldStatfs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
st.convertFrom(&oldStatfs)
|
||||
return nil
|
||||
return Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)
|
||||
}
|
||||
|
||||
func Getdents(fd int, buf []byte) (n int, err error) {
|
||||
@@ -333,162 +224,25 @@ func Getdents(fd int, buf []byte) (n int, err error) {
|
||||
}
|
||||
|
||||
func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
|
||||
if supportsABI(_ino64First) {
|
||||
if basep == nil || unsafe.Sizeof(*basep) == 8 {
|
||||
return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep)))
|
||||
}
|
||||
// The freebsd12 syscall needs a 64-bit base. On 32-bit machines
|
||||
// we can't just use the basep passed in. See #32498.
|
||||
var base uint64 = uint64(*basep)
|
||||
n, err = getdirentries_freebsd12(fd, buf, &base)
|
||||
*basep = uintptr(base)
|
||||
if base>>32 != 0 {
|
||||
// We can't stuff the base back into a uintptr, so any
|
||||
// future calls would be suspect. Generate an error.
|
||||
// EIO is allowed by getdirentries.
|
||||
err = EIO
|
||||
}
|
||||
return
|
||||
if basep == nil || unsafe.Sizeof(*basep) == 8 {
|
||||
return getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep)))
|
||||
}
|
||||
|
||||
// The old syscall entries are smaller than the new. Use 1/4 of the original
|
||||
// buffer size rounded up to DIRBLKSIZ (see /usr/src/lib/libc/sys/getdirentries.c).
|
||||
oldBufLen := roundup(len(buf)/4, _dirblksiz)
|
||||
oldBuf := make([]byte, oldBufLen)
|
||||
n, err = getdirentries(fd, oldBuf, basep)
|
||||
if err == nil && n > 0 {
|
||||
n = convertFromDirents11(buf, oldBuf[:n])
|
||||
// The syscall needs a 64-bit base. On 32-bit machines
|
||||
// we can't just use the basep passed in. See #32498.
|
||||
var base uint64 = uint64(*basep)
|
||||
n, err = getdirentries(fd, buf, &base)
|
||||
*basep = uintptr(base)
|
||||
if base>>32 != 0 {
|
||||
// We can't stuff the base back into a uintptr, so any
|
||||
// future calls would be suspect. Generate an error.
|
||||
// EIO is allowed by getdirentries.
|
||||
err = EIO
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func Mknod(path string, mode uint32, dev uint64) (err error) {
|
||||
var oldDev int
|
||||
if supportsABI(_ino64First) {
|
||||
return mknodat_freebsd12(AT_FDCWD, path, mode, dev)
|
||||
}
|
||||
oldDev = int(dev)
|
||||
return mknod(path, mode, oldDev)
|
||||
}
|
||||
|
||||
func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {
|
||||
var oldDev int
|
||||
if supportsABI(_ino64First) {
|
||||
return mknodat_freebsd12(fd, path, mode, dev)
|
||||
}
|
||||
oldDev = int(dev)
|
||||
return mknodat(fd, path, mode, oldDev)
|
||||
}
|
||||
|
||||
// round x to the nearest multiple of y, larger or equal to x.
|
||||
//
|
||||
// from /usr/include/sys/param.h Macros for counting and rounding.
|
||||
// #define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
|
||||
func roundup(x, y int) int {
|
||||
return ((x + y - 1) / y) * y
|
||||
}
|
||||
|
||||
func (s *Stat_t) convertFrom(old *stat_freebsd11_t) {
|
||||
*s = Stat_t{
|
||||
Dev: uint64(old.Dev),
|
||||
Ino: uint64(old.Ino),
|
||||
Nlink: uint64(old.Nlink),
|
||||
Mode: old.Mode,
|
||||
Uid: old.Uid,
|
||||
Gid: old.Gid,
|
||||
Rdev: uint64(old.Rdev),
|
||||
Atim: old.Atim,
|
||||
Mtim: old.Mtim,
|
||||
Ctim: old.Ctim,
|
||||
Btim: old.Btim,
|
||||
Size: old.Size,
|
||||
Blocks: old.Blocks,
|
||||
Blksize: old.Blksize,
|
||||
Flags: old.Flags,
|
||||
Gen: uint64(old.Gen),
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Statfs_t) convertFrom(old *statfs_freebsd11_t) {
|
||||
*s = Statfs_t{
|
||||
Version: _statfsVersion,
|
||||
Type: old.Type,
|
||||
Flags: old.Flags,
|
||||
Bsize: old.Bsize,
|
||||
Iosize: old.Iosize,
|
||||
Blocks: old.Blocks,
|
||||
Bfree: old.Bfree,
|
||||
Bavail: old.Bavail,
|
||||
Files: old.Files,
|
||||
Ffree: old.Ffree,
|
||||
Syncwrites: old.Syncwrites,
|
||||
Asyncwrites: old.Asyncwrites,
|
||||
Syncreads: old.Syncreads,
|
||||
Asyncreads: old.Asyncreads,
|
||||
// Spare
|
||||
Namemax: old.Namemax,
|
||||
Owner: old.Owner,
|
||||
Fsid: old.Fsid,
|
||||
// Charspare
|
||||
// Fstypename
|
||||
// Mntfromname
|
||||
// Mntonname
|
||||
}
|
||||
|
||||
sl := old.Fstypename[:]
|
||||
n := clen(*(*[]byte)(unsafe.Pointer(&sl)))
|
||||
copy(s.Fstypename[:], old.Fstypename[:n])
|
||||
|
||||
sl = old.Mntfromname[:]
|
||||
n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
|
||||
copy(s.Mntfromname[:], old.Mntfromname[:n])
|
||||
|
||||
sl = old.Mntonname[:]
|
||||
n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
|
||||
copy(s.Mntonname[:], old.Mntonname[:n])
|
||||
}
|
||||
|
||||
func convertFromDirents11(buf []byte, old []byte) int {
|
||||
const (
|
||||
fixedSize = int(unsafe.Offsetof(Dirent{}.Name))
|
||||
oldFixedSize = int(unsafe.Offsetof(dirent_freebsd11{}.Name))
|
||||
)
|
||||
|
||||
dstPos := 0
|
||||
srcPos := 0
|
||||
for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) {
|
||||
var dstDirent Dirent
|
||||
var srcDirent dirent_freebsd11
|
||||
|
||||
// If multiple direntries are written, sometimes when we reach the final one,
|
||||
// we may have cap of old less than size of dirent_freebsd11.
|
||||
copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:])
|
||||
|
||||
reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8)
|
||||
if dstPos+reclen > len(buf) {
|
||||
break
|
||||
}
|
||||
|
||||
dstDirent.Fileno = uint64(srcDirent.Fileno)
|
||||
dstDirent.Off = 0
|
||||
dstDirent.Reclen = uint16(reclen)
|
||||
dstDirent.Type = srcDirent.Type
|
||||
dstDirent.Pad0 = 0
|
||||
dstDirent.Namlen = uint16(srcDirent.Namlen)
|
||||
dstDirent.Pad1 = 0
|
||||
|
||||
copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen])
|
||||
copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:])
|
||||
padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen]
|
||||
for i := range padding {
|
||||
padding[i] = 0
|
||||
}
|
||||
|
||||
dstPos += int(dstDirent.Reclen)
|
||||
srcPos += int(srcDirent.Reclen)
|
||||
}
|
||||
|
||||
return dstPos
|
||||
return Mknodat(AT_FDCWD, path, mode, dev)
|
||||
}
|
||||
|
||||
func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
|
||||
@@ -501,31 +255,31 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
||||
//sys ptrace(request int, pid int, addr uintptr, data int) (err error)
|
||||
|
||||
func PtraceAttach(pid int) (err error) {
|
||||
return ptrace(PTRACE_ATTACH, pid, 0, 0)
|
||||
return ptrace(PT_ATTACH, pid, 0, 0)
|
||||
}
|
||||
|
||||
func PtraceCont(pid int, signal int) (err error) {
|
||||
return ptrace(PTRACE_CONT, pid, 1, signal)
|
||||
return ptrace(PT_CONTINUE, pid, 1, signal)
|
||||
}
|
||||
|
||||
func PtraceDetach(pid int) (err error) {
|
||||
return ptrace(PTRACE_DETACH, pid, 1, 0)
|
||||
return ptrace(PT_DETACH, pid, 1, 0)
|
||||
}
|
||||
|
||||
func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
|
||||
return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
|
||||
return ptrace(PT_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
|
||||
}
|
||||
|
||||
func PtraceGetRegs(pid int, regsout *Reg) (err error) {
|
||||
return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
|
||||
return ptrace(PT_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
|
||||
}
|
||||
|
||||
func PtraceLwpEvents(pid int, enable int) (err error) {
|
||||
return ptrace(PTRACE_LWPEVENTS, pid, 0, enable)
|
||||
return ptrace(PT_LWP_EVENTS, pid, 0, enable)
|
||||
}
|
||||
|
||||
func PtraceLwpInfo(pid int, info uintptr) (err error) {
|
||||
return ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{})))
|
||||
return ptrace(PT_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{})))
|
||||
}
|
||||
|
||||
func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {
|
||||
@@ -545,11 +299,11 @@ func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {
|
||||
}
|
||||
|
||||
func PtraceSetRegs(pid int, regs *Reg) (err error) {
|
||||
return ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0)
|
||||
return ptrace(PT_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0)
|
||||
}
|
||||
|
||||
func PtraceSingleStep(pid int) (err error) {
|
||||
return ptrace(PTRACE_SINGLESTEP, pid, 1, 0)
|
||||
return ptrace(PT_STEP, pid, 1, 0)
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -591,16 +345,12 @@ func PtraceSingleStep(pid int) (err error) {
|
||||
//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
|
||||
//sys Flock(fd int, how int) (err error)
|
||||
//sys Fpathconf(fd int, name int) (val int, err error)
|
||||
//sys fstat(fd int, stat *stat_freebsd11_t) (err error)
|
||||
//sys fstat_freebsd12(fd int, stat *Stat_t) (err error)
|
||||
//sys fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error)
|
||||
//sys fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error)
|
||||
//sys fstatfs(fd int, stat *statfs_freebsd11_t) (err error)
|
||||
//sys fstatfs_freebsd12(fd int, stat *Statfs_t) (err error)
|
||||
//sys Fstat(fd int, stat *Stat_t) (err error)
|
||||
//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
|
||||
//sys Fstatfs(fd int, stat *Statfs_t) (err error)
|
||||
//sys Fsync(fd int) (err error)
|
||||
//sys Ftruncate(fd int, length int64) (err error)
|
||||
//sys getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
|
||||
//sys getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error)
|
||||
//sys getdirentries(fd int, buf []byte, basep *uint64) (n int, err error)
|
||||
//sys Getdtablesize() (size int)
|
||||
//sysnb Getegid() (egid int)
|
||||
//sysnb Geteuid() (uid int)
|
||||
@@ -622,13 +372,10 @@ func PtraceSingleStep(pid int) (err error) {
|
||||
//sys Link(path string, link string) (err error)
|
||||
//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
|
||||
//sys Listen(s int, backlog int) (err error)
|
||||
//sys lstat(path string, stat *stat_freebsd11_t) (err error)
|
||||
//sys Mkdir(path string, mode uint32) (err error)
|
||||
//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
|
||||
//sys Mkfifo(path string, mode uint32) (err error)
|
||||
//sys mknod(path string, mode uint32, dev int) (err error)
|
||||
//sys mknodat(fd int, path string, mode uint32, dev int) (err error)
|
||||
//sys mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error)
|
||||
//sys Mknodat(fd int, path string, mode uint32, dev uint64) (err error)
|
||||
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
|
||||
//sys Open(path string, mode int, perm uint32) (fd int, err error)
|
||||
//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error)
|
||||
@@ -658,9 +405,7 @@ func PtraceSingleStep(pid int) (err error) {
|
||||
//sysnb Setsid() (pid int, err error)
|
||||
//sysnb Settimeofday(tp *Timeval) (err error)
|
||||
//sysnb Setuid(uid int) (err error)
|
||||
//sys stat(path string, stat *stat_freebsd11_t) (err error)
|
||||
//sys statfs(path string, stat *statfs_freebsd11_t) (err error)
|
||||
//sys statfs_freebsd12(path string, stat *Statfs_t) (err error)
|
||||
//sys Statfs(path string, stat *Statfs_t) (err error)
|
||||
//sys Symlink(path string, link string) (err error)
|
||||
//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
|
||||
//sys Sync() (err error)
|
||||
|
||||
4
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
generated
vendored
4
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
generated
vendored
@@ -57,11 +57,11 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
||||
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
||||
|
||||
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
||||
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||
return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||
}
|
||||
|
||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
|
||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
return int(ioDesc.Len), err
|
||||
}
|
||||
|
||||
4
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
generated
vendored
4
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
generated
vendored
@@ -57,11 +57,11 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
||||
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
||||
|
||||
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
||||
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||
return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||
}
|
||||
|
||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
|
||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
return int(ioDesc.Len), err
|
||||
}
|
||||
|
||||
2
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
generated
vendored
2
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
generated
vendored
@@ -58,6 +58,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
|
||||
|
||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
|
||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
return int(ioDesc.Len), err
|
||||
}
|
||||
|
||||
2
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
generated
vendored
2
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
generated
vendored
@@ -58,6 +58,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
|
||||
|
||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
|
||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
return int(ioDesc.Len), err
|
||||
}
|
||||
|
||||
63
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go
generated
vendored
Normal file
63
src/cmd/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
// Copyright 2022 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build riscv64 && freebsd
|
||||
// +build riscv64,freebsd
|
||||
|
||||
package unix
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
func setTimespec(sec, nsec int64) Timespec {
|
||||
return Timespec{Sec: sec, Nsec: nsec}
|
||||
}
|
||||
|
||||
func setTimeval(sec, usec int64) Timeval {
|
||||
return Timeval{Sec: sec, Usec: usec}
|
||||
}
|
||||
|
||||
func SetKevent(k *Kevent_t, fd, mode, flags int) {
|
||||
k.Ident = uint64(fd)
|
||||
k.Filter = int16(mode)
|
||||
k.Flags = uint16(flags)
|
||||
}
|
||||
|
||||
func (iov *Iovec) SetLen(length int) {
|
||||
iov.Len = uint64(length)
|
||||
}
|
||||
|
||||
func (msghdr *Msghdr) SetControllen(length int) {
|
||||
msghdr.Controllen = uint32(length)
|
||||
}
|
||||
|
||||
func (msghdr *Msghdr) SetIovlen(length int) {
|
||||
msghdr.Iovlen = int32(length)
|
||||
}
|
||||
|
||||
func (cmsg *Cmsghdr) SetLen(length int) {
|
||||
cmsg.Len = uint32(length)
|
||||
}
|
||||
|
||||
func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
|
||||
var writtenOut uint64 = 0
|
||||
_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)
|
||||
|
||||
written = int(writtenOut)
|
||||
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
||||
|
||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
|
||||
err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||
return int(ioDesc.Len), err
|
||||
}
|
||||
5
src/cmd/vendor/golang.org/x/sys/unix/syscall_illumos.go
generated
vendored
5
src/cmd/vendor/golang.org/x/sys/unix/syscall_illumos.go
generated
vendored
@@ -20,10 +20,9 @@ func bytes2iovec(bs [][]byte) []Iovec {
|
||||
for i, b := range bs {
|
||||
iovecs[i].SetLen(len(b))
|
||||
if len(b) > 0 {
|
||||
// somehow Iovec.Base on illumos is (*int8), not (*byte)
|
||||
iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0]))
|
||||
iovecs[i].Base = &b[0]
|
||||
} else {
|
||||
iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero))
|
||||
iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero))
|
||||
}
|
||||
}
|
||||
return iovecs
|
||||
|
||||
45
src/cmd/vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
45
src/cmd/vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
@@ -1499,18 +1499,13 @@ func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error
|
||||
//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL
|
||||
//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL
|
||||
|
||||
func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(unsafe.Pointer(rsa))
|
||||
msg.Namelen = uint32(SizeofSockaddrAny)
|
||||
var iov Iovec
|
||||
if len(p) > 0 {
|
||||
iov.Base = &p[0]
|
||||
iov.SetLen(len(p))
|
||||
}
|
||||
var dummy byte
|
||||
if len(oob) > 0 {
|
||||
if len(p) == 0 {
|
||||
if emptyIovecs(iov) {
|
||||
var sockType int
|
||||
sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
|
||||
if err != nil {
|
||||
@@ -1518,15 +1513,19 @@ func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn
|
||||
}
|
||||
// receive at least one normal byte
|
||||
if sockType != SOCK_DGRAM {
|
||||
iov.Base = &dummy
|
||||
iov.SetLen(1)
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
iov = iova[:]
|
||||
}
|
||||
}
|
||||
msg.Control = &oob[0]
|
||||
msg.SetControllen(len(oob))
|
||||
}
|
||||
msg.Iov = &iov
|
||||
msg.Iovlen = 1
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = recvmsg(fd, &msg, flags); err != nil {
|
||||
return
|
||||
}
|
||||
@@ -1535,18 +1534,15 @@ func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn
|
||||
return
|
||||
}
|
||||
|
||||
func sendmsgN(fd int, p, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(ptr)
|
||||
msg.Namelen = uint32(salen)
|
||||
var iov Iovec
|
||||
if len(p) > 0 {
|
||||
iov.Base = &p[0]
|
||||
iov.SetLen(len(p))
|
||||
}
|
||||
var dummy byte
|
||||
var empty bool
|
||||
if len(oob) > 0 {
|
||||
if len(p) == 0 {
|
||||
empty = emptyIovecs(iov)
|
||||
if empty {
|
||||
var sockType int
|
||||
sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
|
||||
if err != nil {
|
||||
@@ -1554,19 +1550,22 @@ func sendmsgN(fd int, p, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags i
|
||||
}
|
||||
// send at least one normal byte
|
||||
if sockType != SOCK_DGRAM {
|
||||
iov.Base = &dummy
|
||||
iov.SetLen(1)
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
}
|
||||
}
|
||||
msg.Control = &oob[0]
|
||||
msg.SetControllen(len(oob))
|
||||
}
|
||||
msg.Iov = &iov
|
||||
msg.Iovlen = 1
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = sendmsg(fd, &msg, flags); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if len(oob) > 0 && len(p) == 0 {
|
||||
if len(oob) > 0 && empty {
|
||||
n = 0
|
||||
}
|
||||
return n, nil
|
||||
|
||||
39
src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go
generated
vendored
39
src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go
generated
vendored
@@ -12,8 +12,6 @@ import "unsafe"
|
||||
//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
|
||||
//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
|
||||
//sys Fchown(fd int, uid int, gid int) (err error)
|
||||
//sys Fstat(fd int, stat *Stat_t) (err error)
|
||||
//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
|
||||
//sys Fstatfs(fd int, buf *Statfs_t) (err error)
|
||||
//sys Ftruncate(fd int, length int64) (err error)
|
||||
//sysnb Getegid() (egid int)
|
||||
@@ -43,6 +41,43 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
|
||||
//sys Shutdown(fd int, how int) (err error)
|
||||
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
|
||||
|
||||
func timespecFromStatxTimestamp(x StatxTimestamp) Timespec {
|
||||
return Timespec{
|
||||
Sec: x.Sec,
|
||||
Nsec: int64(x.Nsec),
|
||||
}
|
||||
}
|
||||
|
||||
func Fstatat(fd int, path string, stat *Stat_t, flags int) error {
|
||||
var r Statx_t
|
||||
// Do it the glibc way, add AT_NO_AUTOMOUNT.
|
||||
if err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
stat.Dev = Mkdev(r.Dev_major, r.Dev_minor)
|
||||
stat.Ino = r.Ino
|
||||
stat.Mode = uint32(r.Mode)
|
||||
stat.Nlink = r.Nlink
|
||||
stat.Uid = r.Uid
|
||||
stat.Gid = r.Gid
|
||||
stat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor)
|
||||
// hope we don't get to process files so large to overflow these size
|
||||
// fields...
|
||||
stat.Size = int64(r.Size)
|
||||
stat.Blksize = int32(r.Blksize)
|
||||
stat.Blocks = int64(r.Blocks)
|
||||
stat.Atim = timespecFromStatxTimestamp(r.Atime)
|
||||
stat.Mtim = timespecFromStatxTimestamp(r.Mtime)
|
||||
stat.Ctim = timespecFromStatxTimestamp(r.Ctime)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func Fstat(fd int, stat *Stat_t) (err error) {
|
||||
return Fstatat(fd, "", stat, AT_EMPTY_PATH)
|
||||
}
|
||||
|
||||
func Stat(path string, stat *Stat_t) (err error) {
|
||||
return Fstatat(AT_FDCWD, path, stat, 0)
|
||||
}
|
||||
|
||||
1
src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
generated
vendored
1
src/cmd/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
generated
vendored
@@ -22,6 +22,7 @@ import "unsafe"
|
||||
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
|
||||
//sysnb Getuid() (uid int)
|
||||
//sys Listen(s int, n int) (err error)
|
||||
//sys MemfdSecret(flags int) (fd int, err error)
|
||||
//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
|
||||
//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
|
||||
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
|
||||
|
||||
4
src/cmd/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go
generated
vendored
4
src/cmd/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go
generated
vendored
@@ -26,6 +26,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
|
||||
msghdr.Controllen = uint32(length)
|
||||
}
|
||||
|
||||
func (msghdr *Msghdr) SetIovlen(length int) {
|
||||
msghdr.Iovlen = uint32(length)
|
||||
}
|
||||
|
||||
func (cmsg *Cmsghdr) SetLen(length int) {
|
||||
cmsg.Len = uint32(length)
|
||||
}
|
||||
|
||||
50
src/cmd/vendor/golang.org/x/sys/unix/syscall_solaris.go
generated
vendored
50
src/cmd/vendor/golang.org/x/sys/unix/syscall_solaris.go
generated
vendored
@@ -451,26 +451,25 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
|
||||
|
||||
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg
|
||||
|
||||
func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(unsafe.Pointer(rsa))
|
||||
msg.Namelen = uint32(SizeofSockaddrAny)
|
||||
var iov Iovec
|
||||
if len(p) > 0 {
|
||||
iov.Base = (*int8)(unsafe.Pointer(&p[0]))
|
||||
iov.SetLen(len(p))
|
||||
}
|
||||
var dummy int8
|
||||
var dummy byte
|
||||
if len(oob) > 0 {
|
||||
// receive at least one normal byte
|
||||
if len(p) == 0 {
|
||||
iov.Base = &dummy
|
||||
iov.SetLen(1)
|
||||
if emptyIovecs(iov) {
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
iov = iova[:]
|
||||
}
|
||||
msg.Accrightslen = int32(len(oob))
|
||||
}
|
||||
msg.Iov = &iov
|
||||
msg.Iovlen = 1
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = recvmsg(fd, &msg, flags); n == -1 {
|
||||
return
|
||||
}
|
||||
@@ -480,30 +479,31 @@ func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn
|
||||
|
||||
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg
|
||||
|
||||
func sendmsgN(fd int, p, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||
var msg Msghdr
|
||||
msg.Name = (*byte)(unsafe.Pointer(ptr))
|
||||
msg.Namelen = uint32(salen)
|
||||
var iov Iovec
|
||||
if len(p) > 0 {
|
||||
iov.Base = (*int8)(unsafe.Pointer(&p[0]))
|
||||
iov.SetLen(len(p))
|
||||
}
|
||||
var dummy int8
|
||||
var dummy byte
|
||||
var empty bool
|
||||
if len(oob) > 0 {
|
||||
// send at least one normal byte
|
||||
if len(p) == 0 {
|
||||
iov.Base = &dummy
|
||||
iov.SetLen(1)
|
||||
empty = emptyIovecs(iov)
|
||||
if empty {
|
||||
var iova [1]Iovec
|
||||
iova[0].Base = &dummy
|
||||
iova[0].SetLen(1)
|
||||
iov = iova[:]
|
||||
}
|
||||
msg.Accrightslen = int32(len(oob))
|
||||
}
|
||||
msg.Iov = &iov
|
||||
msg.Iovlen = 1
|
||||
if len(iov) > 0 {
|
||||
msg.Iov = &iov[0]
|
||||
msg.SetIovlen(len(iov))
|
||||
}
|
||||
if n, err = sendmsg(fd, &msg, flags); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if len(oob) > 0 && len(p) == 0 {
|
||||
if len(oob) > 0 && empty {
|
||||
n = 0
|
||||
}
|
||||
return n, nil
|
||||
|
||||
74
src/cmd/vendor/golang.org/x/sys/unix/syscall_unix.go
generated
vendored
74
src/cmd/vendor/golang.org/x/sys/unix/syscall_unix.go
generated
vendored
@@ -338,8 +338,13 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
|
||||
}
|
||||
|
||||
func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
|
||||
var iov [1]Iovec
|
||||
if len(p) > 0 {
|
||||
iov[0].Base = &p[0]
|
||||
iov[0].SetLen(len(p))
|
||||
}
|
||||
var rsa RawSockaddrAny
|
||||
n, oobn, recvflags, err = recvmsgRaw(fd, p, oob, flags, &rsa)
|
||||
n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa)
|
||||
// source address is only specified if the socket is unconnected
|
||||
if rsa.Addr.Family != AF_UNSPEC {
|
||||
from, err = anyToSockaddr(fd, &rsa)
|
||||
@@ -347,12 +352,42 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
|
||||
return
|
||||
}
|
||||
|
||||
// RecvmsgBuffers receives a message from a socket using the recvmsg
|
||||
// system call. The flags are passed to recvmsg. Any non-control data
|
||||
// read is scattered into the buffers slices. The results are:
|
||||
// - n is the number of non-control data read into bufs
|
||||
// - oobn is the number of control data read into oob; this may be interpreted using [ParseSocketControlMessage]
|
||||
// - recvflags is flags returned by recvmsg
|
||||
// - from is the address of the sender
|
||||
func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
|
||||
iov := make([]Iovec, len(buffers))
|
||||
for i := range buffers {
|
||||
if len(buffers[i]) > 0 {
|
||||
iov[i].Base = &buffers[i][0]
|
||||
iov[i].SetLen(len(buffers[i]))
|
||||
} else {
|
||||
iov[i].Base = (*byte)(unsafe.Pointer(&_zero))
|
||||
}
|
||||
}
|
||||
var rsa RawSockaddrAny
|
||||
n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa)
|
||||
if err == nil && rsa.Addr.Family != AF_UNSPEC {
|
||||
from, err = anyToSockaddr(fd, &rsa)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {
|
||||
_, err = SendmsgN(fd, p, oob, to, flags)
|
||||
return
|
||||
}
|
||||
|
||||
func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {
|
||||
var iov [1]Iovec
|
||||
if len(p) > 0 {
|
||||
iov[0].Base = &p[0]
|
||||
iov[0].SetLen(len(p))
|
||||
}
|
||||
var ptr unsafe.Pointer
|
||||
var salen _Socklen
|
||||
if to != nil {
|
||||
@@ -361,7 +396,32 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error)
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
return sendmsgN(fd, p, oob, ptr, salen, flags)
|
||||
return sendmsgN(fd, iov[:], oob, ptr, salen, flags)
|
||||
}
|
||||
|
||||
// SendmsgBuffers sends a message on a socket to an address using the sendmsg
|
||||
// system call. The flags are passed to sendmsg. Any non-control data written
|
||||
// is gathered from buffers. The function returns the number of bytes written
|
||||
// to the socket.
|
||||
func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) {
|
||||
iov := make([]Iovec, len(buffers))
|
||||
for i := range buffers {
|
||||
if len(buffers[i]) > 0 {
|
||||
iov[i].Base = &buffers[i][0]
|
||||
iov[i].SetLen(len(buffers[i]))
|
||||
} else {
|
||||
iov[i].Base = (*byte)(unsafe.Pointer(&_zero))
|
||||
}
|
||||
}
|
||||
var ptr unsafe.Pointer
|
||||
var salen _Socklen
|
||||
if to != nil {
|
||||
ptr, salen, err = to.sockaddr()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
return sendmsgN(fd, iov, oob, ptr, salen, flags)
|
||||
}
|
||||
|
||||
func Send(s int, buf []byte, flags int) (err error) {
|
||||
@@ -484,3 +544,13 @@ func Lutimes(path string, tv []Timeval) error {
|
||||
}
|
||||
return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)
|
||||
}
|
||||
|
||||
// emptyIovec reports whether there are no bytes in the slice of Iovec.
|
||||
func emptyIovecs(iov []Iovec) bool {
|
||||
for i := range iov {
|
||||
if iov[i].Len > 0 {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
109
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
generated
vendored
109
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
generated
vendored
@@ -151,6 +151,7 @@ const (
|
||||
BIOCSETF = 0x80084267
|
||||
BIOCSETFNR = 0x80084282
|
||||
BIOCSETIF = 0x8020426c
|
||||
BIOCSETVLANPCP = 0x80044285
|
||||
BIOCSETWF = 0x8008427b
|
||||
BIOCSETZBUF = 0x800c4281
|
||||
BIOCSHDRCMPLT = 0x80044275
|
||||
@@ -447,7 +448,7 @@ const (
|
||||
DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1
|
||||
DLT_INFINIBAND = 0xf7
|
||||
DLT_IPFILTER = 0x74
|
||||
DLT_IPMB = 0xc7
|
||||
DLT_IPMB_KONTRON = 0xc7
|
||||
DLT_IPMB_LINUX = 0xd1
|
||||
DLT_IPMI_HPM_2 = 0x104
|
||||
DLT_IPNET = 0xe2
|
||||
@@ -487,10 +488,11 @@ const (
|
||||
DLT_LINUX_LAPD = 0xb1
|
||||
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
||||
DLT_LINUX_SLL = 0x71
|
||||
DLT_LINUX_SLL2 = 0x114
|
||||
DLT_LOOP = 0x6c
|
||||
DLT_LORATAP = 0x10e
|
||||
DLT_LTALK = 0x72
|
||||
DLT_MATCHING_MAX = 0x113
|
||||
DLT_MATCHING_MAX = 0x114
|
||||
DLT_MATCHING_MIN = 0x68
|
||||
DLT_MFR = 0xb6
|
||||
DLT_MOST = 0xd3
|
||||
@@ -734,6 +736,7 @@ const (
|
||||
IPPROTO_CMTP = 0x26
|
||||
IPPROTO_CPHB = 0x49
|
||||
IPPROTO_CPNX = 0x48
|
||||
IPPROTO_DCCP = 0x21
|
||||
IPPROTO_DDP = 0x25
|
||||
IPPROTO_DGP = 0x56
|
||||
IPPROTO_DIVERT = 0x102
|
||||
@@ -814,7 +817,6 @@ const (
|
||||
IPPROTO_SCTP = 0x84
|
||||
IPPROTO_SDRP = 0x2a
|
||||
IPPROTO_SEND = 0x103
|
||||
IPPROTO_SEP = 0x21
|
||||
IPPROTO_SHIM6 = 0x8c
|
||||
IPPROTO_SKIP = 0x39
|
||||
IPPROTO_SPACER = 0x7fff
|
||||
@@ -911,6 +913,7 @@ const (
|
||||
IPV6_V6ONLY = 0x1b
|
||||
IPV6_VERSION = 0x60
|
||||
IPV6_VERSION_MASK = 0xf0
|
||||
IPV6_VLAN_PCP = 0x4b
|
||||
IP_ADD_MEMBERSHIP = 0xc
|
||||
IP_ADD_SOURCE_MEMBERSHIP = 0x46
|
||||
IP_BINDANY = 0x18
|
||||
@@ -989,8 +992,12 @@ const (
|
||||
IP_TOS = 0x3
|
||||
IP_TTL = 0x4
|
||||
IP_UNBLOCK_SOURCE = 0x49
|
||||
IP_VLAN_PCP = 0x4b
|
||||
ISIG = 0x80
|
||||
ISTRIP = 0x20
|
||||
ITIMER_PROF = 0x2
|
||||
ITIMER_REAL = 0x0
|
||||
ITIMER_VIRTUAL = 0x1
|
||||
IXANY = 0x800
|
||||
IXOFF = 0x400
|
||||
IXON = 0x200
|
||||
@@ -1000,7 +1007,6 @@ const (
|
||||
KERN_VERSION = 0x4
|
||||
LOCAL_CONNWAIT = 0x4
|
||||
LOCAL_CREDS = 0x2
|
||||
LOCAL_CREDS_PERSISTENT = 0x3
|
||||
LOCAL_PEERCRED = 0x1
|
||||
LOCAL_VENDOR = 0x80000000
|
||||
LOCK_EX = 0x2
|
||||
@@ -1179,6 +1185,8 @@ const (
|
||||
O_NONBLOCK = 0x4
|
||||
O_RDONLY = 0x0
|
||||
O_RDWR = 0x2
|
||||
O_RESOLVE_BENEATH = 0x800000
|
||||
O_SEARCH = 0x40000
|
||||
O_SHLOCK = 0x10
|
||||
O_SYNC = 0x80
|
||||
O_TRUNC = 0x400
|
||||
@@ -1189,6 +1197,10 @@ const (
|
||||
PARMRK = 0x8
|
||||
PARODD = 0x2000
|
||||
PENDIN = 0x20000000
|
||||
PIOD_READ_D = 0x1
|
||||
PIOD_READ_I = 0x3
|
||||
PIOD_WRITE_D = 0x2
|
||||
PIOD_WRITE_I = 0x4
|
||||
PRIO_PGRP = 0x1
|
||||
PRIO_PROCESS = 0x0
|
||||
PRIO_USER = 0x2
|
||||
@@ -1196,6 +1208,60 @@ const (
|
||||
PROT_NONE = 0x0
|
||||
PROT_READ = 0x1
|
||||
PROT_WRITE = 0x2
|
||||
PTRACE_DEFAULT = 0x1
|
||||
PTRACE_EXEC = 0x1
|
||||
PTRACE_FORK = 0x8
|
||||
PTRACE_LWP = 0x10
|
||||
PTRACE_SCE = 0x2
|
||||
PTRACE_SCX = 0x4
|
||||
PTRACE_SYSCALL = 0x6
|
||||
PTRACE_VFORK = 0x20
|
||||
PT_ATTACH = 0xa
|
||||
PT_CLEARSTEP = 0x10
|
||||
PT_CONTINUE = 0x7
|
||||
PT_DETACH = 0xb
|
||||
PT_FIRSTMACH = 0x40
|
||||
PT_FOLLOW_FORK = 0x17
|
||||
PT_GETDBREGS = 0x25
|
||||
PT_GETFPREGS = 0x23
|
||||
PT_GETFSBASE = 0x47
|
||||
PT_GETGSBASE = 0x49
|
||||
PT_GETLWPLIST = 0xf
|
||||
PT_GETNUMLWPS = 0xe
|
||||
PT_GETREGS = 0x21
|
||||
PT_GETXMMREGS = 0x40
|
||||
PT_GETXSTATE = 0x45
|
||||
PT_GETXSTATE_INFO = 0x44
|
||||
PT_GET_EVENT_MASK = 0x19
|
||||
PT_GET_SC_ARGS = 0x1b
|
||||
PT_GET_SC_RET = 0x1c
|
||||
PT_IO = 0xc
|
||||
PT_KILL = 0x8
|
||||
PT_LWPINFO = 0xd
|
||||
PT_LWP_EVENTS = 0x18
|
||||
PT_READ_D = 0x2
|
||||
PT_READ_I = 0x1
|
||||
PT_RESUME = 0x13
|
||||
PT_SETDBREGS = 0x26
|
||||
PT_SETFPREGS = 0x24
|
||||
PT_SETFSBASE = 0x48
|
||||
PT_SETGSBASE = 0x4a
|
||||
PT_SETREGS = 0x22
|
||||
PT_SETSTEP = 0x11
|
||||
PT_SETXMMREGS = 0x41
|
||||
PT_SETXSTATE = 0x46
|
||||
PT_SET_EVENT_MASK = 0x1a
|
||||
PT_STEP = 0x9
|
||||
PT_SUSPEND = 0x12
|
||||
PT_SYSCALL = 0x16
|
||||
PT_TO_SCE = 0x14
|
||||
PT_TO_SCX = 0x15
|
||||
PT_TRACE_ME = 0x0
|
||||
PT_VM_ENTRY = 0x29
|
||||
PT_VM_TIMESTAMP = 0x28
|
||||
PT_WRITE_D = 0x5
|
||||
PT_WRITE_I = 0x4
|
||||
P_ZONEID = 0xc
|
||||
RLIMIT_AS = 0xa
|
||||
RLIMIT_CORE = 0x4
|
||||
RLIMIT_CPU = 0x0
|
||||
@@ -1320,10 +1386,12 @@ const (
|
||||
SIOCGHWADDR = 0xc020693e
|
||||
SIOCGI2C = 0xc020693d
|
||||
SIOCGIFADDR = 0xc0206921
|
||||
SIOCGIFALIAS = 0xc044692d
|
||||
SIOCGIFBRDADDR = 0xc0206923
|
||||
SIOCGIFCAP = 0xc020691f
|
||||
SIOCGIFCONF = 0xc0086924
|
||||
SIOCGIFDESCR = 0xc020692a
|
||||
SIOCGIFDOWNREASON = 0xc058699a
|
||||
SIOCGIFDSTADDR = 0xc0206922
|
||||
SIOCGIFFIB = 0xc020695c
|
||||
SIOCGIFFLAGS = 0xc0206911
|
||||
@@ -1414,6 +1482,7 @@ const (
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RERROR = 0x20000
|
||||
SO_REUSEADDR = 0x4
|
||||
SO_REUSEPORT = 0x200
|
||||
SO_REUSEPORT_LB = 0x10000
|
||||
@@ -1472,22 +1541,40 @@ const (
|
||||
TCOFLUSH = 0x2
|
||||
TCOOFF = 0x1
|
||||
TCOON = 0x2
|
||||
TCPOPT_EOL = 0x0
|
||||
TCPOPT_FAST_OPEN = 0x22
|
||||
TCPOPT_MAXSEG = 0x2
|
||||
TCPOPT_NOP = 0x1
|
||||
TCPOPT_PAD = 0x0
|
||||
TCPOPT_SACK = 0x5
|
||||
TCPOPT_SACK_PERMITTED = 0x4
|
||||
TCPOPT_SIGNATURE = 0x13
|
||||
TCPOPT_TIMESTAMP = 0x8
|
||||
TCPOPT_WINDOW = 0x3
|
||||
TCP_BBR_ACK_COMP_ALG = 0x448
|
||||
TCP_BBR_ALGORITHM = 0x43b
|
||||
TCP_BBR_DRAIN_INC_EXTRA = 0x43c
|
||||
TCP_BBR_DRAIN_PG = 0x42e
|
||||
TCP_BBR_EXTRA_GAIN = 0x449
|
||||
TCP_BBR_EXTRA_STATE = 0x453
|
||||
TCP_BBR_FLOOR_MIN_TSO = 0x454
|
||||
TCP_BBR_HDWR_PACE = 0x451
|
||||
TCP_BBR_HOLD_TARGET = 0x436
|
||||
TCP_BBR_IWINTSO = 0x42b
|
||||
TCP_BBR_LOWGAIN_FD = 0x436
|
||||
TCP_BBR_LOWGAIN_HALF = 0x435
|
||||
TCP_BBR_LOWGAIN_THRESH = 0x434
|
||||
TCP_BBR_MAX_RTO = 0x439
|
||||
TCP_BBR_MIN_RTO = 0x438
|
||||
TCP_BBR_MIN_TOPACEOUT = 0x455
|
||||
TCP_BBR_ONE_RETRAN = 0x431
|
||||
TCP_BBR_PACE_CROSS = 0x442
|
||||
TCP_BBR_PACE_DEL_TAR = 0x43f
|
||||
TCP_BBR_PACE_OH = 0x435
|
||||
TCP_BBR_PACE_PER_SEC = 0x43e
|
||||
TCP_BBR_PACE_SEG_MAX = 0x440
|
||||
TCP_BBR_PACE_SEG_MIN = 0x441
|
||||
TCP_BBR_POLICER_DETECT = 0x457
|
||||
TCP_BBR_PROBE_RTT_GAIN = 0x44d
|
||||
TCP_BBR_PROBE_RTT_INT = 0x430
|
||||
TCP_BBR_PROBE_RTT_LEN = 0x44e
|
||||
@@ -1496,12 +1583,18 @@ const (
|
||||
TCP_BBR_REC_OVER_HPTS = 0x43a
|
||||
TCP_BBR_RETRAN_WTSO = 0x44b
|
||||
TCP_BBR_RWND_IS_APP = 0x42f
|
||||
TCP_BBR_SEND_IWND_IN_TSO = 0x44f
|
||||
TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
|
||||
TCP_BBR_STARTUP_LOSS_EXIT = 0x432
|
||||
TCP_BBR_STARTUP_PG = 0x42d
|
||||
TCP_BBR_TMR_PACE_OH = 0x448
|
||||
TCP_BBR_TSLIMITS = 0x434
|
||||
TCP_BBR_TSTMP_RAISES = 0x456
|
||||
TCP_BBR_UNLIMITED = 0x43b
|
||||
TCP_BBR_USEDEL_RATE = 0x437
|
||||
TCP_BBR_USE_LOWGAIN = 0x433
|
||||
TCP_BBR_USE_RACK_CHEAT = 0x450
|
||||
TCP_BBR_UTTER_MAX_TSO = 0x452
|
||||
TCP_CA_NAME_MAX = 0x10
|
||||
TCP_CCALGOOPT = 0x41
|
||||
TCP_CONGESTION = 0x40
|
||||
@@ -1541,6 +1634,7 @@ const (
|
||||
TCP_PCAP_OUT = 0x800
|
||||
TCP_RACK_EARLY_RECOV = 0x423
|
||||
TCP_RACK_EARLY_SEG = 0x424
|
||||
TCP_RACK_GP_INCREASE = 0x446
|
||||
TCP_RACK_IDLE_REDUCE_HIGH = 0x444
|
||||
TCP_RACK_MIN_PACE = 0x445
|
||||
TCP_RACK_MIN_PACE_SEG = 0x446
|
||||
@@ -1554,7 +1648,6 @@ const (
|
||||
TCP_RACK_PRR_SENDALOT = 0x421
|
||||
TCP_RACK_REORD_FADE = 0x426
|
||||
TCP_RACK_REORD_THRESH = 0x425
|
||||
TCP_RACK_SESS_CWV = 0x42a
|
||||
TCP_RACK_TLP_INC_VAR = 0x429
|
||||
TCP_RACK_TLP_REDUCE = 0x41c
|
||||
TCP_RACK_TLP_THRESH = 0x427
|
||||
@@ -1694,12 +1787,13 @@ const (
|
||||
EIDRM = syscall.Errno(0x52)
|
||||
EILSEQ = syscall.Errno(0x56)
|
||||
EINPROGRESS = syscall.Errno(0x24)
|
||||
EINTEGRITY = syscall.Errno(0x61)
|
||||
EINTR = syscall.Errno(0x4)
|
||||
EINVAL = syscall.Errno(0x16)
|
||||
EIO = syscall.Errno(0x5)
|
||||
EISCONN = syscall.Errno(0x38)
|
||||
EISDIR = syscall.Errno(0x15)
|
||||
ELAST = syscall.Errno(0x60)
|
||||
ELAST = syscall.Errno(0x61)
|
||||
ELOOP = syscall.Errno(0x3e)
|
||||
EMFILE = syscall.Errno(0x18)
|
||||
EMLINK = syscall.Errno(0x1f)
|
||||
@@ -1842,7 +1936,7 @@ var errorList = [...]struct {
|
||||
{32, "EPIPE", "broken pipe"},
|
||||
{33, "EDOM", "numerical argument out of domain"},
|
||||
{34, "ERANGE", "result too large"},
|
||||
{35, "EAGAIN", "resource temporarily unavailable"},
|
||||
{35, "EWOULDBLOCK", "resource temporarily unavailable"},
|
||||
{36, "EINPROGRESS", "operation now in progress"},
|
||||
{37, "EALREADY", "operation already in progress"},
|
||||
{38, "ENOTSOCK", "socket operation on non-socket"},
|
||||
@@ -1904,6 +1998,7 @@ var errorList = [...]struct {
|
||||
{94, "ECAPMODE", "not permitted in capability mode"},
|
||||
{95, "ENOTRECOVERABLE", "state not recoverable"},
|
||||
{96, "EOWNERDEAD", "previous owner died"},
|
||||
{97, "EINTEGRITY", "integrity check failed"},
|
||||
}
|
||||
|
||||
// Signal table
|
||||
|
||||
107
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
generated
vendored
107
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
generated
vendored
@@ -151,6 +151,7 @@ const (
|
||||
BIOCSETF = 0x80104267
|
||||
BIOCSETFNR = 0x80104282
|
||||
BIOCSETIF = 0x8020426c
|
||||
BIOCSETVLANPCP = 0x80044285
|
||||
BIOCSETWF = 0x8010427b
|
||||
BIOCSETZBUF = 0x80184281
|
||||
BIOCSHDRCMPLT = 0x80044275
|
||||
@@ -447,7 +448,7 @@ const (
|
||||
DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1
|
||||
DLT_INFINIBAND = 0xf7
|
||||
DLT_IPFILTER = 0x74
|
||||
DLT_IPMB = 0xc7
|
||||
DLT_IPMB_KONTRON = 0xc7
|
||||
DLT_IPMB_LINUX = 0xd1
|
||||
DLT_IPMI_HPM_2 = 0x104
|
||||
DLT_IPNET = 0xe2
|
||||
@@ -487,10 +488,11 @@ const (
|
||||
DLT_LINUX_LAPD = 0xb1
|
||||
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
||||
DLT_LINUX_SLL = 0x71
|
||||
DLT_LINUX_SLL2 = 0x114
|
||||
DLT_LOOP = 0x6c
|
||||
DLT_LORATAP = 0x10e
|
||||
DLT_LTALK = 0x72
|
||||
DLT_MATCHING_MAX = 0x113
|
||||
DLT_MATCHING_MAX = 0x114
|
||||
DLT_MATCHING_MIN = 0x68
|
||||
DLT_MFR = 0xb6
|
||||
DLT_MOST = 0xd3
|
||||
@@ -734,6 +736,7 @@ const (
|
||||
IPPROTO_CMTP = 0x26
|
||||
IPPROTO_CPHB = 0x49
|
||||
IPPROTO_CPNX = 0x48
|
||||
IPPROTO_DCCP = 0x21
|
||||
IPPROTO_DDP = 0x25
|
||||
IPPROTO_DGP = 0x56
|
||||
IPPROTO_DIVERT = 0x102
|
||||
@@ -814,7 +817,6 @@ const (
|
||||
IPPROTO_SCTP = 0x84
|
||||
IPPROTO_SDRP = 0x2a
|
||||
IPPROTO_SEND = 0x103
|
||||
IPPROTO_SEP = 0x21
|
||||
IPPROTO_SHIM6 = 0x8c
|
||||
IPPROTO_SKIP = 0x39
|
||||
IPPROTO_SPACER = 0x7fff
|
||||
@@ -911,6 +913,7 @@ const (
|
||||
IPV6_V6ONLY = 0x1b
|
||||
IPV6_VERSION = 0x60
|
||||
IPV6_VERSION_MASK = 0xf0
|
||||
IPV6_VLAN_PCP = 0x4b
|
||||
IP_ADD_MEMBERSHIP = 0xc
|
||||
IP_ADD_SOURCE_MEMBERSHIP = 0x46
|
||||
IP_BINDANY = 0x18
|
||||
@@ -989,8 +992,12 @@ const (
|
||||
IP_TOS = 0x3
|
||||
IP_TTL = 0x4
|
||||
IP_UNBLOCK_SOURCE = 0x49
|
||||
IP_VLAN_PCP = 0x4b
|
||||
ISIG = 0x80
|
||||
ISTRIP = 0x20
|
||||
ITIMER_PROF = 0x2
|
||||
ITIMER_REAL = 0x0
|
||||
ITIMER_VIRTUAL = 0x1
|
||||
IXANY = 0x800
|
||||
IXOFF = 0x400
|
||||
IXON = 0x200
|
||||
@@ -1000,7 +1007,6 @@ const (
|
||||
KERN_VERSION = 0x4
|
||||
LOCAL_CONNWAIT = 0x4
|
||||
LOCAL_CREDS = 0x2
|
||||
LOCAL_CREDS_PERSISTENT = 0x3
|
||||
LOCAL_PEERCRED = 0x1
|
||||
LOCAL_VENDOR = 0x80000000
|
||||
LOCK_EX = 0x2
|
||||
@@ -1180,6 +1186,8 @@ const (
|
||||
O_NONBLOCK = 0x4
|
||||
O_RDONLY = 0x0
|
||||
O_RDWR = 0x2
|
||||
O_RESOLVE_BENEATH = 0x800000
|
||||
O_SEARCH = 0x40000
|
||||
O_SHLOCK = 0x10
|
||||
O_SYNC = 0x80
|
||||
O_TRUNC = 0x400
|
||||
@@ -1190,6 +1198,10 @@ const (
|
||||
PARMRK = 0x8
|
||||
PARODD = 0x2000
|
||||
PENDIN = 0x20000000
|
||||
PIOD_READ_D = 0x1
|
||||
PIOD_READ_I = 0x3
|
||||
PIOD_WRITE_D = 0x2
|
||||
PIOD_WRITE_I = 0x4
|
||||
PRIO_PGRP = 0x1
|
||||
PRIO_PROCESS = 0x0
|
||||
PRIO_USER = 0x2
|
||||
@@ -1197,6 +1209,58 @@ const (
|
||||
PROT_NONE = 0x0
|
||||
PROT_READ = 0x1
|
||||
PROT_WRITE = 0x2
|
||||
PTRACE_DEFAULT = 0x1
|
||||
PTRACE_EXEC = 0x1
|
||||
PTRACE_FORK = 0x8
|
||||
PTRACE_LWP = 0x10
|
||||
PTRACE_SCE = 0x2
|
||||
PTRACE_SCX = 0x4
|
||||
PTRACE_SYSCALL = 0x6
|
||||
PTRACE_VFORK = 0x20
|
||||
PT_ATTACH = 0xa
|
||||
PT_CLEARSTEP = 0x10
|
||||
PT_CONTINUE = 0x7
|
||||
PT_DETACH = 0xb
|
||||
PT_FIRSTMACH = 0x40
|
||||
PT_FOLLOW_FORK = 0x17
|
||||
PT_GETDBREGS = 0x25
|
||||
PT_GETFPREGS = 0x23
|
||||
PT_GETFSBASE = 0x47
|
||||
PT_GETGSBASE = 0x49
|
||||
PT_GETLWPLIST = 0xf
|
||||
PT_GETNUMLWPS = 0xe
|
||||
PT_GETREGS = 0x21
|
||||
PT_GETXSTATE = 0x45
|
||||
PT_GETXSTATE_INFO = 0x44
|
||||
PT_GET_EVENT_MASK = 0x19
|
||||
PT_GET_SC_ARGS = 0x1b
|
||||
PT_GET_SC_RET = 0x1c
|
||||
PT_IO = 0xc
|
||||
PT_KILL = 0x8
|
||||
PT_LWPINFO = 0xd
|
||||
PT_LWP_EVENTS = 0x18
|
||||
PT_READ_D = 0x2
|
||||
PT_READ_I = 0x1
|
||||
PT_RESUME = 0x13
|
||||
PT_SETDBREGS = 0x26
|
||||
PT_SETFPREGS = 0x24
|
||||
PT_SETFSBASE = 0x48
|
||||
PT_SETGSBASE = 0x4a
|
||||
PT_SETREGS = 0x22
|
||||
PT_SETSTEP = 0x11
|
||||
PT_SETXSTATE = 0x46
|
||||
PT_SET_EVENT_MASK = 0x1a
|
||||
PT_STEP = 0x9
|
||||
PT_SUSPEND = 0x12
|
||||
PT_SYSCALL = 0x16
|
||||
PT_TO_SCE = 0x14
|
||||
PT_TO_SCX = 0x15
|
||||
PT_TRACE_ME = 0x0
|
||||
PT_VM_ENTRY = 0x29
|
||||
PT_VM_TIMESTAMP = 0x28
|
||||
PT_WRITE_D = 0x5
|
||||
PT_WRITE_I = 0x4
|
||||
P_ZONEID = 0xc
|
||||
RLIMIT_AS = 0xa
|
||||
RLIMIT_CORE = 0x4
|
||||
RLIMIT_CPU = 0x0
|
||||
@@ -1321,10 +1385,12 @@ const (
|
||||
SIOCGHWADDR = 0xc020693e
|
||||
SIOCGI2C = 0xc020693d
|
||||
SIOCGIFADDR = 0xc0206921
|
||||
SIOCGIFALIAS = 0xc044692d
|
||||
SIOCGIFBRDADDR = 0xc0206923
|
||||
SIOCGIFCAP = 0xc020691f
|
||||
SIOCGIFCONF = 0xc0106924
|
||||
SIOCGIFDESCR = 0xc020692a
|
||||
SIOCGIFDOWNREASON = 0xc058699a
|
||||
SIOCGIFDSTADDR = 0xc0206922
|
||||
SIOCGIFFIB = 0xc020695c
|
||||
SIOCGIFFLAGS = 0xc0206911
|
||||
@@ -1415,6 +1481,7 @@ const (
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RERROR = 0x20000
|
||||
SO_REUSEADDR = 0x4
|
||||
SO_REUSEPORT = 0x200
|
||||
SO_REUSEPORT_LB = 0x10000
|
||||
@@ -1473,22 +1540,40 @@ const (
|
||||
TCOFLUSH = 0x2
|
||||
TCOOFF = 0x1
|
||||
TCOON = 0x2
|
||||
TCPOPT_EOL = 0x0
|
||||
TCPOPT_FAST_OPEN = 0x22
|
||||
TCPOPT_MAXSEG = 0x2
|
||||
TCPOPT_NOP = 0x1
|
||||
TCPOPT_PAD = 0x0
|
||||
TCPOPT_SACK = 0x5
|
||||
TCPOPT_SACK_PERMITTED = 0x4
|
||||
TCPOPT_SIGNATURE = 0x13
|
||||
TCPOPT_TIMESTAMP = 0x8
|
||||
TCPOPT_WINDOW = 0x3
|
||||
TCP_BBR_ACK_COMP_ALG = 0x448
|
||||
TCP_BBR_ALGORITHM = 0x43b
|
||||
TCP_BBR_DRAIN_INC_EXTRA = 0x43c
|
||||
TCP_BBR_DRAIN_PG = 0x42e
|
||||
TCP_BBR_EXTRA_GAIN = 0x449
|
||||
TCP_BBR_EXTRA_STATE = 0x453
|
||||
TCP_BBR_FLOOR_MIN_TSO = 0x454
|
||||
TCP_BBR_HDWR_PACE = 0x451
|
||||
TCP_BBR_HOLD_TARGET = 0x436
|
||||
TCP_BBR_IWINTSO = 0x42b
|
||||
TCP_BBR_LOWGAIN_FD = 0x436
|
||||
TCP_BBR_LOWGAIN_HALF = 0x435
|
||||
TCP_BBR_LOWGAIN_THRESH = 0x434
|
||||
TCP_BBR_MAX_RTO = 0x439
|
||||
TCP_BBR_MIN_RTO = 0x438
|
||||
TCP_BBR_MIN_TOPACEOUT = 0x455
|
||||
TCP_BBR_ONE_RETRAN = 0x431
|
||||
TCP_BBR_PACE_CROSS = 0x442
|
||||
TCP_BBR_PACE_DEL_TAR = 0x43f
|
||||
TCP_BBR_PACE_OH = 0x435
|
||||
TCP_BBR_PACE_PER_SEC = 0x43e
|
||||
TCP_BBR_PACE_SEG_MAX = 0x440
|
||||
TCP_BBR_PACE_SEG_MIN = 0x441
|
||||
TCP_BBR_POLICER_DETECT = 0x457
|
||||
TCP_BBR_PROBE_RTT_GAIN = 0x44d
|
||||
TCP_BBR_PROBE_RTT_INT = 0x430
|
||||
TCP_BBR_PROBE_RTT_LEN = 0x44e
|
||||
@@ -1497,12 +1582,18 @@ const (
|
||||
TCP_BBR_REC_OVER_HPTS = 0x43a
|
||||
TCP_BBR_RETRAN_WTSO = 0x44b
|
||||
TCP_BBR_RWND_IS_APP = 0x42f
|
||||
TCP_BBR_SEND_IWND_IN_TSO = 0x44f
|
||||
TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
|
||||
TCP_BBR_STARTUP_LOSS_EXIT = 0x432
|
||||
TCP_BBR_STARTUP_PG = 0x42d
|
||||
TCP_BBR_TMR_PACE_OH = 0x448
|
||||
TCP_BBR_TSLIMITS = 0x434
|
||||
TCP_BBR_TSTMP_RAISES = 0x456
|
||||
TCP_BBR_UNLIMITED = 0x43b
|
||||
TCP_BBR_USEDEL_RATE = 0x437
|
||||
TCP_BBR_USE_LOWGAIN = 0x433
|
||||
TCP_BBR_USE_RACK_CHEAT = 0x450
|
||||
TCP_BBR_UTTER_MAX_TSO = 0x452
|
||||
TCP_CA_NAME_MAX = 0x10
|
||||
TCP_CCALGOOPT = 0x41
|
||||
TCP_CONGESTION = 0x40
|
||||
@@ -1542,6 +1633,7 @@ const (
|
||||
TCP_PCAP_OUT = 0x800
|
||||
TCP_RACK_EARLY_RECOV = 0x423
|
||||
TCP_RACK_EARLY_SEG = 0x424
|
||||
TCP_RACK_GP_INCREASE = 0x446
|
||||
TCP_RACK_IDLE_REDUCE_HIGH = 0x444
|
||||
TCP_RACK_MIN_PACE = 0x445
|
||||
TCP_RACK_MIN_PACE_SEG = 0x446
|
||||
@@ -1555,7 +1647,6 @@ const (
|
||||
TCP_RACK_PRR_SENDALOT = 0x421
|
||||
TCP_RACK_REORD_FADE = 0x426
|
||||
TCP_RACK_REORD_THRESH = 0x425
|
||||
TCP_RACK_SESS_CWV = 0x42a
|
||||
TCP_RACK_TLP_INC_VAR = 0x429
|
||||
TCP_RACK_TLP_REDUCE = 0x41c
|
||||
TCP_RACK_TLP_THRESH = 0x427
|
||||
@@ -1693,12 +1784,13 @@ const (
|
||||
EIDRM = syscall.Errno(0x52)
|
||||
EILSEQ = syscall.Errno(0x56)
|
||||
EINPROGRESS = syscall.Errno(0x24)
|
||||
EINTEGRITY = syscall.Errno(0x61)
|
||||
EINTR = syscall.Errno(0x4)
|
||||
EINVAL = syscall.Errno(0x16)
|
||||
EIO = syscall.Errno(0x5)
|
||||
EISCONN = syscall.Errno(0x38)
|
||||
EISDIR = syscall.Errno(0x15)
|
||||
ELAST = syscall.Errno(0x60)
|
||||
ELAST = syscall.Errno(0x61)
|
||||
ELOOP = syscall.Errno(0x3e)
|
||||
EMFILE = syscall.Errno(0x18)
|
||||
EMLINK = syscall.Errno(0x1f)
|
||||
@@ -1841,7 +1933,7 @@ var errorList = [...]struct {
|
||||
{32, "EPIPE", "broken pipe"},
|
||||
{33, "EDOM", "numerical argument out of domain"},
|
||||
{34, "ERANGE", "result too large"},
|
||||
{35, "EAGAIN", "resource temporarily unavailable"},
|
||||
{35, "EWOULDBLOCK", "resource temporarily unavailable"},
|
||||
{36, "EINPROGRESS", "operation now in progress"},
|
||||
{37, "EALREADY", "operation already in progress"},
|
||||
{38, "ENOTSOCK", "socket operation on non-socket"},
|
||||
@@ -1903,6 +1995,7 @@ var errorList = [...]struct {
|
||||
{94, "ECAPMODE", "not permitted in capability mode"},
|
||||
{95, "ENOTRECOVERABLE", "state not recoverable"},
|
||||
{96, "EOWNERDEAD", "previous owner died"},
|
||||
{97, "EINTEGRITY", "integrity check failed"},
|
||||
}
|
||||
|
||||
// Signal table
|
||||
|
||||
220
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
generated
vendored
220
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
generated
vendored
@@ -151,6 +151,7 @@ const (
|
||||
BIOCSETF = 0x80084267
|
||||
BIOCSETFNR = 0x80084282
|
||||
BIOCSETIF = 0x8020426c
|
||||
BIOCSETVLANPCP = 0x80044285
|
||||
BIOCSETWF = 0x8008427b
|
||||
BIOCSETZBUF = 0x800c4281
|
||||
BIOCSHDRCMPLT = 0x80044275
|
||||
@@ -362,7 +363,7 @@ const (
|
||||
CTL_KERN = 0x1
|
||||
CTL_MAXNAME = 0x18
|
||||
CTL_NET = 0x4
|
||||
DIOCGATTR = 0xc144648e
|
||||
DIOCGATTR = 0xc148648e
|
||||
DIOCGDELETE = 0x80106488
|
||||
DIOCGFLUSH = 0x20006487
|
||||
DIOCGFRONTSTUFF = 0x40086486
|
||||
@@ -377,7 +378,7 @@ const (
|
||||
DIOCGSTRIPESIZE = 0x4008648b
|
||||
DIOCSKERNELDUMP = 0x804c6490
|
||||
DIOCSKERNELDUMP_FREEBSD11 = 0x80046485
|
||||
DIOCZONECMD = 0xc06c648f
|
||||
DIOCZONECMD = 0xc078648f
|
||||
DLT_A429 = 0xb8
|
||||
DLT_A653_ICM = 0xb9
|
||||
DLT_AIRONET_HEADER = 0x78
|
||||
@@ -407,7 +408,9 @@ const (
|
||||
DLT_C_HDLC_WITH_DIR = 0xcd
|
||||
DLT_DBUS = 0xe7
|
||||
DLT_DECT = 0xdd
|
||||
DLT_DISPLAYPORT_AUX = 0x113
|
||||
DLT_DOCSIS = 0x8f
|
||||
DLT_DOCSIS31_XRA31 = 0x111
|
||||
DLT_DVB_CI = 0xeb
|
||||
DLT_ECONET = 0x73
|
||||
DLT_EN10MB = 0x1
|
||||
@@ -417,6 +420,7 @@ const (
|
||||
DLT_ERF = 0xc5
|
||||
DLT_ERF_ETH = 0xaf
|
||||
DLT_ERF_POS = 0xb0
|
||||
DLT_ETHERNET_MPACKET = 0x112
|
||||
DLT_FC_2 = 0xe0
|
||||
DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
|
||||
DLT_FDDI = 0xa
|
||||
@@ -444,7 +448,7 @@ const (
|
||||
DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1
|
||||
DLT_INFINIBAND = 0xf7
|
||||
DLT_IPFILTER = 0x74
|
||||
DLT_IPMB = 0xc7
|
||||
DLT_IPMB_KONTRON = 0xc7
|
||||
DLT_IPMB_LINUX = 0xd1
|
||||
DLT_IPMI_HPM_2 = 0x104
|
||||
DLT_IPNET = 0xe2
|
||||
@@ -484,9 +488,11 @@ const (
|
||||
DLT_LINUX_LAPD = 0xb1
|
||||
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
||||
DLT_LINUX_SLL = 0x71
|
||||
DLT_LINUX_SLL2 = 0x114
|
||||
DLT_LOOP = 0x6c
|
||||
DLT_LORATAP = 0x10e
|
||||
DLT_LTALK = 0x72
|
||||
DLT_MATCHING_MAX = 0x109
|
||||
DLT_MATCHING_MAX = 0x114
|
||||
DLT_MATCHING_MIN = 0x68
|
||||
DLT_MFR = 0xb6
|
||||
DLT_MOST = 0xd3
|
||||
@@ -502,7 +508,9 @@ const (
|
||||
DLT_NFC_LLCP = 0xf5
|
||||
DLT_NFLOG = 0xef
|
||||
DLT_NG40 = 0xf4
|
||||
DLT_NORDIC_BLE = 0x110
|
||||
DLT_NULL = 0x0
|
||||
DLT_OPENFLOW = 0x10b
|
||||
DLT_PCI_EXP = 0x7d
|
||||
DLT_PFLOG = 0x75
|
||||
DLT_PFSYNC = 0x79
|
||||
@@ -526,15 +534,18 @@ const (
|
||||
DLT_RTAC_SERIAL = 0xfa
|
||||
DLT_SCCP = 0x8e
|
||||
DLT_SCTP = 0xf8
|
||||
DLT_SDLC = 0x10c
|
||||
DLT_SITA = 0xc4
|
||||
DLT_SLIP = 0x8
|
||||
DLT_SLIP_BSDOS = 0xd
|
||||
DLT_STANAG_5066_D_PDU = 0xed
|
||||
DLT_SUNATM = 0x7b
|
||||
DLT_SYMANTEC_FIREWALL = 0x63
|
||||
DLT_TI_LLN_SNIFFER = 0x10d
|
||||
DLT_TZSP = 0x80
|
||||
DLT_USB = 0xba
|
||||
DLT_USBPCAP = 0xf9
|
||||
DLT_USB_DARWIN = 0x10a
|
||||
DLT_USB_FREEBSD = 0xba
|
||||
DLT_USB_LINUX = 0xbd
|
||||
DLT_USB_LINUX_MMAPPED = 0xdc
|
||||
@@ -554,6 +565,7 @@ const (
|
||||
DLT_USER7 = 0x9a
|
||||
DLT_USER8 = 0x9b
|
||||
DLT_USER9 = 0x9c
|
||||
DLT_VSOCK = 0x10f
|
||||
DLT_WATTSTOPPER_DLM = 0x107
|
||||
DLT_WIHART = 0xdf
|
||||
DLT_WIRESHARK_UPPER_PDU = 0xfc
|
||||
@@ -578,6 +590,7 @@ const (
|
||||
ECHONL = 0x10
|
||||
ECHOPRT = 0x20
|
||||
EVFILT_AIO = -0x3
|
||||
EVFILT_EMPTY = -0xd
|
||||
EVFILT_FS = -0x9
|
||||
EVFILT_LIO = -0xa
|
||||
EVFILT_PROC = -0x5
|
||||
@@ -585,11 +598,12 @@ const (
|
||||
EVFILT_READ = -0x1
|
||||
EVFILT_SENDFILE = -0xc
|
||||
EVFILT_SIGNAL = -0x6
|
||||
EVFILT_SYSCOUNT = 0xc
|
||||
EVFILT_SYSCOUNT = 0xd
|
||||
EVFILT_TIMER = -0x7
|
||||
EVFILT_USER = -0xb
|
||||
EVFILT_VNODE = -0x4
|
||||
EVFILT_WRITE = -0x2
|
||||
EVNAMEMAP_NAME_SIZE = 0x40
|
||||
EV_ADD = 0x1
|
||||
EV_CLEAR = 0x20
|
||||
EV_DELETE = 0x2
|
||||
@@ -606,6 +620,7 @@ const (
|
||||
EV_RECEIPT = 0x40
|
||||
EV_SYSFLAGS = 0xf000
|
||||
EXTA = 0x4b00
|
||||
EXTATTR_MAXNAMELEN = 0xff
|
||||
EXTATTR_NAMESPACE_EMPTY = 0x0
|
||||
EXTATTR_NAMESPACE_SYSTEM = 0x2
|
||||
EXTATTR_NAMESPACE_USER = 0x1
|
||||
@@ -647,6 +662,7 @@ const (
|
||||
IEXTEN = 0x400
|
||||
IFAN_ARRIVAL = 0x0
|
||||
IFAN_DEPARTURE = 0x1
|
||||
IFCAP_WOL_MAGIC = 0x2000
|
||||
IFF_ALLMULTI = 0x200
|
||||
IFF_ALTPHYS = 0x4000
|
||||
IFF_BROADCAST = 0x2
|
||||
@@ -663,6 +679,7 @@ const (
|
||||
IFF_MONITOR = 0x40000
|
||||
IFF_MULTICAST = 0x8000
|
||||
IFF_NOARP = 0x80
|
||||
IFF_NOGROUP = 0x800000
|
||||
IFF_OACTIVE = 0x400
|
||||
IFF_POINTOPOINT = 0x10
|
||||
IFF_PPROMISC = 0x20000
|
||||
@@ -719,6 +736,7 @@ const (
|
||||
IPPROTO_CMTP = 0x26
|
||||
IPPROTO_CPHB = 0x49
|
||||
IPPROTO_CPNX = 0x48
|
||||
IPPROTO_DCCP = 0x21
|
||||
IPPROTO_DDP = 0x25
|
||||
IPPROTO_DGP = 0x56
|
||||
IPPROTO_DIVERT = 0x102
|
||||
@@ -799,7 +817,6 @@ const (
|
||||
IPPROTO_SCTP = 0x84
|
||||
IPPROTO_SDRP = 0x2a
|
||||
IPPROTO_SEND = 0x103
|
||||
IPPROTO_SEP = 0x21
|
||||
IPPROTO_SHIM6 = 0x8c
|
||||
IPPROTO_SKIP = 0x39
|
||||
IPPROTO_SPACER = 0x7fff
|
||||
@@ -837,6 +854,7 @@ const (
|
||||
IPV6_DSTOPTS = 0x32
|
||||
IPV6_FLOWID = 0x43
|
||||
IPV6_FLOWINFO_MASK = 0xffffff0f
|
||||
IPV6_FLOWLABEL_LEN = 0x14
|
||||
IPV6_FLOWLABEL_MASK = 0xffff0f00
|
||||
IPV6_FLOWTYPE = 0x44
|
||||
IPV6_FRAGTTL = 0x78
|
||||
@@ -857,13 +875,13 @@ const (
|
||||
IPV6_MAX_GROUP_SRC_FILTER = 0x200
|
||||
IPV6_MAX_MEMBERSHIPS = 0xfff
|
||||
IPV6_MAX_SOCK_SRC_FILTER = 0x80
|
||||
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||
IPV6_MMTU = 0x500
|
||||
IPV6_MSFILTER = 0x4a
|
||||
IPV6_MULTICAST_HOPS = 0xa
|
||||
IPV6_MULTICAST_IF = 0x9
|
||||
IPV6_MULTICAST_LOOP = 0xb
|
||||
IPV6_NEXTHOP = 0x30
|
||||
IPV6_ORIGDSTADDR = 0x48
|
||||
IPV6_PATHMTU = 0x2c
|
||||
IPV6_PKTINFO = 0x2e
|
||||
IPV6_PORTRANGE = 0xe
|
||||
@@ -875,6 +893,7 @@ const (
|
||||
IPV6_RECVFLOWID = 0x46
|
||||
IPV6_RECVHOPLIMIT = 0x25
|
||||
IPV6_RECVHOPOPTS = 0x27
|
||||
IPV6_RECVORIGDSTADDR = 0x48
|
||||
IPV6_RECVPATHMTU = 0x2b
|
||||
IPV6_RECVPKTINFO = 0x24
|
||||
IPV6_RECVRSSBUCKETID = 0x47
|
||||
@@ -894,6 +913,7 @@ const (
|
||||
IPV6_V6ONLY = 0x1b
|
||||
IPV6_VERSION = 0x60
|
||||
IPV6_VERSION_MASK = 0xf0
|
||||
IPV6_VLAN_PCP = 0x4b
|
||||
IP_ADD_MEMBERSHIP = 0xc
|
||||
IP_ADD_SOURCE_MEMBERSHIP = 0x46
|
||||
IP_BINDANY = 0x18
|
||||
@@ -935,10 +955,8 @@ const (
|
||||
IP_MAX_MEMBERSHIPS = 0xfff
|
||||
IP_MAX_SOCK_MUTE_FILTER = 0x80
|
||||
IP_MAX_SOCK_SRC_FILTER = 0x80
|
||||
IP_MAX_SOURCE_FILTER = 0x400
|
||||
IP_MF = 0x2000
|
||||
IP_MINTTL = 0x42
|
||||
IP_MIN_MEMBERSHIPS = 0x1f
|
||||
IP_MSFILTER = 0x4a
|
||||
IP_MSS = 0x240
|
||||
IP_MULTICAST_IF = 0x9
|
||||
@@ -948,6 +966,7 @@ const (
|
||||
IP_OFFMASK = 0x1fff
|
||||
IP_ONESBCAST = 0x17
|
||||
IP_OPTIONS = 0x1
|
||||
IP_ORIGDSTADDR = 0x1b
|
||||
IP_PORTRANGE = 0x13
|
||||
IP_PORTRANGE_DEFAULT = 0x0
|
||||
IP_PORTRANGE_HIGH = 0x1
|
||||
@@ -956,6 +975,7 @@ const (
|
||||
IP_RECVFLOWID = 0x5d
|
||||
IP_RECVIF = 0x14
|
||||
IP_RECVOPTS = 0x5
|
||||
IP_RECVORIGDSTADDR = 0x1b
|
||||
IP_RECVRETOPTS = 0x6
|
||||
IP_RECVRSSBUCKETID = 0x5e
|
||||
IP_RECVTOS = 0x44
|
||||
@@ -972,8 +992,12 @@ const (
|
||||
IP_TOS = 0x3
|
||||
IP_TTL = 0x4
|
||||
IP_UNBLOCK_SOURCE = 0x49
|
||||
IP_VLAN_PCP = 0x4b
|
||||
ISIG = 0x80
|
||||
ISTRIP = 0x20
|
||||
ITIMER_PROF = 0x2
|
||||
ITIMER_REAL = 0x0
|
||||
ITIMER_VIRTUAL = 0x1
|
||||
IXANY = 0x800
|
||||
IXOFF = 0x400
|
||||
IXON = 0x200
|
||||
@@ -983,7 +1007,6 @@ const (
|
||||
KERN_VERSION = 0x4
|
||||
LOCAL_CONNWAIT = 0x4
|
||||
LOCAL_CREDS = 0x2
|
||||
LOCAL_CREDS_PERSISTENT = 0x3
|
||||
LOCAL_PEERCRED = 0x1
|
||||
LOCAL_VENDOR = 0x80000000
|
||||
LOCK_EX = 0x2
|
||||
@@ -1071,10 +1094,12 @@ const (
|
||||
MNT_SUSPEND = 0x4
|
||||
MNT_SYNCHRONOUS = 0x2
|
||||
MNT_UNION = 0x20
|
||||
MNT_UNTRUSTED = 0x800000000
|
||||
MNT_UPDATE = 0x10000
|
||||
MNT_UPDATEMASK = 0x2d8d0807e
|
||||
MNT_UPDATEMASK = 0xad8d0807e
|
||||
MNT_USER = 0x8000
|
||||
MNT_VISFLAGMASK = 0x3fef0ffff
|
||||
MNT_VERIFIED = 0x400000000
|
||||
MNT_VISFLAGMASK = 0xffef0ffff
|
||||
MNT_WAIT = 0x1
|
||||
MSG_CMSG_CLOEXEC = 0x40000
|
||||
MSG_COMPAT = 0x8000
|
||||
@@ -1103,6 +1128,7 @@ const (
|
||||
NFDBITS = 0x20
|
||||
NOFLSH = 0x80000000
|
||||
NOKERNINFO = 0x2000000
|
||||
NOTE_ABSTIME = 0x10
|
||||
NOTE_ATTRIB = 0x8
|
||||
NOTE_CHILD = 0x4
|
||||
NOTE_CLOSE = 0x100
|
||||
@@ -1159,6 +1185,8 @@ const (
|
||||
O_NONBLOCK = 0x4
|
||||
O_RDONLY = 0x0
|
||||
O_RDWR = 0x2
|
||||
O_RESOLVE_BENEATH = 0x800000
|
||||
O_SEARCH = 0x40000
|
||||
O_SHLOCK = 0x10
|
||||
O_SYNC = 0x80
|
||||
O_TRUNC = 0x400
|
||||
@@ -1169,6 +1197,10 @@ const (
|
||||
PARMRK = 0x8
|
||||
PARODD = 0x2000
|
||||
PENDIN = 0x20000000
|
||||
PIOD_READ_D = 0x1
|
||||
PIOD_READ_I = 0x3
|
||||
PIOD_WRITE_D = 0x2
|
||||
PIOD_WRITE_I = 0x4
|
||||
PRIO_PGRP = 0x1
|
||||
PRIO_PROCESS = 0x0
|
||||
PRIO_USER = 0x2
|
||||
@@ -1176,6 +1208,53 @@ const (
|
||||
PROT_NONE = 0x0
|
||||
PROT_READ = 0x1
|
||||
PROT_WRITE = 0x2
|
||||
PTRACE_DEFAULT = 0x1
|
||||
PTRACE_EXEC = 0x1
|
||||
PTRACE_FORK = 0x8
|
||||
PTRACE_LWP = 0x10
|
||||
PTRACE_SCE = 0x2
|
||||
PTRACE_SCX = 0x4
|
||||
PTRACE_SYSCALL = 0x6
|
||||
PTRACE_VFORK = 0x20
|
||||
PT_ATTACH = 0xa
|
||||
PT_CLEARSTEP = 0x10
|
||||
PT_CONTINUE = 0x7
|
||||
PT_DETACH = 0xb
|
||||
PT_FIRSTMACH = 0x40
|
||||
PT_FOLLOW_FORK = 0x17
|
||||
PT_GETDBREGS = 0x25
|
||||
PT_GETFPREGS = 0x23
|
||||
PT_GETLWPLIST = 0xf
|
||||
PT_GETNUMLWPS = 0xe
|
||||
PT_GETREGS = 0x21
|
||||
PT_GETVFPREGS = 0x40
|
||||
PT_GET_EVENT_MASK = 0x19
|
||||
PT_GET_SC_ARGS = 0x1b
|
||||
PT_GET_SC_RET = 0x1c
|
||||
PT_IO = 0xc
|
||||
PT_KILL = 0x8
|
||||
PT_LWPINFO = 0xd
|
||||
PT_LWP_EVENTS = 0x18
|
||||
PT_READ_D = 0x2
|
||||
PT_READ_I = 0x1
|
||||
PT_RESUME = 0x13
|
||||
PT_SETDBREGS = 0x26
|
||||
PT_SETFPREGS = 0x24
|
||||
PT_SETREGS = 0x22
|
||||
PT_SETSTEP = 0x11
|
||||
PT_SETVFPREGS = 0x41
|
||||
PT_SET_EVENT_MASK = 0x1a
|
||||
PT_STEP = 0x9
|
||||
PT_SUSPEND = 0x12
|
||||
PT_SYSCALL = 0x16
|
||||
PT_TO_SCE = 0x14
|
||||
PT_TO_SCX = 0x15
|
||||
PT_TRACE_ME = 0x0
|
||||
PT_VM_ENTRY = 0x29
|
||||
PT_VM_TIMESTAMP = 0x28
|
||||
PT_WRITE_D = 0x5
|
||||
PT_WRITE_I = 0x4
|
||||
P_ZONEID = 0xc
|
||||
RLIMIT_AS = 0xa
|
||||
RLIMIT_CORE = 0x4
|
||||
RLIMIT_CPU = 0x0
|
||||
@@ -1257,7 +1336,6 @@ const (
|
||||
RTV_WEIGHT = 0x100
|
||||
RT_ALL_FIBS = -0x1
|
||||
RT_BLACKHOLE = 0x40
|
||||
RT_CACHING_CONTEXT = 0x1
|
||||
RT_DEFAULT_FIB = 0x0
|
||||
RT_HAS_GW = 0x80
|
||||
RT_HAS_HEADER = 0x10
|
||||
@@ -1267,15 +1345,17 @@ const (
|
||||
RT_LLE_CACHE = 0x100
|
||||
RT_MAY_LOOP = 0x8
|
||||
RT_MAY_LOOP_BIT = 0x3
|
||||
RT_NORTREF = 0x2
|
||||
RT_REJECT = 0x20
|
||||
RUSAGE_CHILDREN = -0x1
|
||||
RUSAGE_SELF = 0x0
|
||||
RUSAGE_THREAD = 0x1
|
||||
SCM_BINTIME = 0x4
|
||||
SCM_CREDS = 0x3
|
||||
SCM_MONOTONIC = 0x6
|
||||
SCM_REALTIME = 0x5
|
||||
SCM_RIGHTS = 0x1
|
||||
SCM_TIMESTAMP = 0x2
|
||||
SCM_TIME_INFO = 0x7
|
||||
SEEK_CUR = 0x1
|
||||
SEEK_DATA = 0x3
|
||||
SEEK_END = 0x2
|
||||
@@ -1299,10 +1379,12 @@ const (
|
||||
SIOCGHWADDR = 0xc020693e
|
||||
SIOCGI2C = 0xc020693d
|
||||
SIOCGIFADDR = 0xc0206921
|
||||
SIOCGIFALIAS = 0xc044692d
|
||||
SIOCGIFBRDADDR = 0xc0206923
|
||||
SIOCGIFCAP = 0xc020691f
|
||||
SIOCGIFCONF = 0xc0086924
|
||||
SIOCGIFDESCR = 0xc020692a
|
||||
SIOCGIFDOWNREASON = 0xc058699a
|
||||
SIOCGIFDSTADDR = 0xc0206922
|
||||
SIOCGIFFIB = 0xc020695c
|
||||
SIOCGIFFLAGS = 0xc0206911
|
||||
@@ -1318,8 +1400,11 @@ const (
|
||||
SIOCGIFPDSTADDR = 0xc0206948
|
||||
SIOCGIFPHYS = 0xc0206935
|
||||
SIOCGIFPSRCADDR = 0xc0206947
|
||||
SIOCGIFRSSHASH = 0xc0186997
|
||||
SIOCGIFRSSKEY = 0xc0946996
|
||||
SIOCGIFSTATUS = 0xc331693b
|
||||
SIOCGIFXMEDIA = 0xc028698b
|
||||
SIOCGLANPCP = 0xc0206998
|
||||
SIOCGLOWAT = 0x40047303
|
||||
SIOCGPGRP = 0x40047309
|
||||
SIOCGPRIVATE_0 = 0xc0206950
|
||||
@@ -1350,6 +1435,7 @@ const (
|
||||
SIOCSIFPHYS = 0x80206936
|
||||
SIOCSIFRVNET = 0xc020695b
|
||||
SIOCSIFVNET = 0xc020695a
|
||||
SIOCSLANPCP = 0x80206999
|
||||
SIOCSLOWAT = 0x80047302
|
||||
SIOCSPGRP = 0x80047308
|
||||
SIOCSTUNFIB = 0x8020695f
|
||||
@@ -1369,6 +1455,7 @@ const (
|
||||
SO_BINTIME = 0x2000
|
||||
SO_BROADCAST = 0x20
|
||||
SO_DEBUG = 0x1
|
||||
SO_DOMAIN = 0x1019
|
||||
SO_DONTROUTE = 0x10
|
||||
SO_ERROR = 0x1007
|
||||
SO_KEEPALIVE = 0x8
|
||||
@@ -1377,6 +1464,7 @@ const (
|
||||
SO_LISTENINCQLEN = 0x1013
|
||||
SO_LISTENQLEN = 0x1012
|
||||
SO_LISTENQLIMIT = 0x1011
|
||||
SO_MAX_PACING_RATE = 0x1018
|
||||
SO_NOSIGPIPE = 0x800
|
||||
SO_NO_DDP = 0x8000
|
||||
SO_NO_OFFLOAD = 0x4000
|
||||
@@ -1387,13 +1475,22 @@ const (
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RERROR = 0x20000
|
||||
SO_REUSEADDR = 0x4
|
||||
SO_REUSEPORT = 0x200
|
||||
SO_REUSEPORT_LB = 0x10000
|
||||
SO_SETFIB = 0x1014
|
||||
SO_SNDBUF = 0x1001
|
||||
SO_SNDLOWAT = 0x1003
|
||||
SO_SNDTIMEO = 0x1005
|
||||
SO_TIMESTAMP = 0x400
|
||||
SO_TS_BINTIME = 0x1
|
||||
SO_TS_CLOCK = 0x1017
|
||||
SO_TS_CLOCK_MAX = 0x3
|
||||
SO_TS_DEFAULT = 0x0
|
||||
SO_TS_MONOTONIC = 0x3
|
||||
SO_TS_REALTIME = 0x2
|
||||
SO_TS_REALTIME_MICRO = 0x0
|
||||
SO_TYPE = 0x1008
|
||||
SO_USELOOPBACK = 0x40
|
||||
SO_USER_COOKIE = 0x1015
|
||||
@@ -1437,10 +1534,69 @@ const (
|
||||
TCOFLUSH = 0x2
|
||||
TCOOFF = 0x1
|
||||
TCOON = 0x2
|
||||
TCPOPT_EOL = 0x0
|
||||
TCPOPT_FAST_OPEN = 0x22
|
||||
TCPOPT_MAXSEG = 0x2
|
||||
TCPOPT_NOP = 0x1
|
||||
TCPOPT_PAD = 0x0
|
||||
TCPOPT_SACK = 0x5
|
||||
TCPOPT_SACK_PERMITTED = 0x4
|
||||
TCPOPT_SIGNATURE = 0x13
|
||||
TCPOPT_TIMESTAMP = 0x8
|
||||
TCPOPT_WINDOW = 0x3
|
||||
TCP_BBR_ACK_COMP_ALG = 0x448
|
||||
TCP_BBR_ALGORITHM = 0x43b
|
||||
TCP_BBR_DRAIN_INC_EXTRA = 0x43c
|
||||
TCP_BBR_DRAIN_PG = 0x42e
|
||||
TCP_BBR_EXTRA_GAIN = 0x449
|
||||
TCP_BBR_EXTRA_STATE = 0x453
|
||||
TCP_BBR_FLOOR_MIN_TSO = 0x454
|
||||
TCP_BBR_HDWR_PACE = 0x451
|
||||
TCP_BBR_HOLD_TARGET = 0x436
|
||||
TCP_BBR_IWINTSO = 0x42b
|
||||
TCP_BBR_LOWGAIN_FD = 0x436
|
||||
TCP_BBR_LOWGAIN_HALF = 0x435
|
||||
TCP_BBR_LOWGAIN_THRESH = 0x434
|
||||
TCP_BBR_MAX_RTO = 0x439
|
||||
TCP_BBR_MIN_RTO = 0x438
|
||||
TCP_BBR_MIN_TOPACEOUT = 0x455
|
||||
TCP_BBR_ONE_RETRAN = 0x431
|
||||
TCP_BBR_PACE_CROSS = 0x442
|
||||
TCP_BBR_PACE_DEL_TAR = 0x43f
|
||||
TCP_BBR_PACE_OH = 0x435
|
||||
TCP_BBR_PACE_PER_SEC = 0x43e
|
||||
TCP_BBR_PACE_SEG_MAX = 0x440
|
||||
TCP_BBR_PACE_SEG_MIN = 0x441
|
||||
TCP_BBR_POLICER_DETECT = 0x457
|
||||
TCP_BBR_PROBE_RTT_GAIN = 0x44d
|
||||
TCP_BBR_PROBE_RTT_INT = 0x430
|
||||
TCP_BBR_PROBE_RTT_LEN = 0x44e
|
||||
TCP_BBR_RACK_RTT_USE = 0x44a
|
||||
TCP_BBR_RECFORCE = 0x42c
|
||||
TCP_BBR_REC_OVER_HPTS = 0x43a
|
||||
TCP_BBR_RETRAN_WTSO = 0x44b
|
||||
TCP_BBR_RWND_IS_APP = 0x42f
|
||||
TCP_BBR_SEND_IWND_IN_TSO = 0x44f
|
||||
TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
|
||||
TCP_BBR_STARTUP_LOSS_EXIT = 0x432
|
||||
TCP_BBR_STARTUP_PG = 0x42d
|
||||
TCP_BBR_TMR_PACE_OH = 0x448
|
||||
TCP_BBR_TSLIMITS = 0x434
|
||||
TCP_BBR_TSTMP_RAISES = 0x456
|
||||
TCP_BBR_UNLIMITED = 0x43b
|
||||
TCP_BBR_USEDEL_RATE = 0x437
|
||||
TCP_BBR_USE_LOWGAIN = 0x433
|
||||
TCP_BBR_USE_RACK_CHEAT = 0x450
|
||||
TCP_BBR_UTTER_MAX_TSO = 0x452
|
||||
TCP_CA_NAME_MAX = 0x10
|
||||
TCP_CCALGOOPT = 0x41
|
||||
TCP_CONGESTION = 0x40
|
||||
TCP_DATA_AFTER_CLOSE = 0x44c
|
||||
TCP_DELACK = 0x48
|
||||
TCP_FASTOPEN = 0x401
|
||||
TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10
|
||||
TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4
|
||||
TCP_FASTOPEN_PSK_LEN = 0x10
|
||||
TCP_FUNCTION_BLK = 0x2000
|
||||
TCP_FUNCTION_NAME_LEN_MAX = 0x20
|
||||
TCP_INFO = 0x20
|
||||
@@ -1448,6 +1604,12 @@ const (
|
||||
TCP_KEEPIDLE = 0x100
|
||||
TCP_KEEPINIT = 0x80
|
||||
TCP_KEEPINTVL = 0x200
|
||||
TCP_LOG = 0x22
|
||||
TCP_LOGBUF = 0x23
|
||||
TCP_LOGDUMP = 0x25
|
||||
TCP_LOGDUMPID = 0x26
|
||||
TCP_LOGID = 0x24
|
||||
TCP_LOG_ID_LEN = 0x40
|
||||
TCP_MAXBURST = 0x4
|
||||
TCP_MAXHLEN = 0x3c
|
||||
TCP_MAXOLEN = 0x28
|
||||
@@ -1463,8 +1625,30 @@ const (
|
||||
TCP_NOPUSH = 0x4
|
||||
TCP_PCAP_IN = 0x1000
|
||||
TCP_PCAP_OUT = 0x800
|
||||
TCP_RACK_EARLY_RECOV = 0x423
|
||||
TCP_RACK_EARLY_SEG = 0x424
|
||||
TCP_RACK_GP_INCREASE = 0x446
|
||||
TCP_RACK_IDLE_REDUCE_HIGH = 0x444
|
||||
TCP_RACK_MIN_PACE = 0x445
|
||||
TCP_RACK_MIN_PACE_SEG = 0x446
|
||||
TCP_RACK_MIN_TO = 0x422
|
||||
TCP_RACK_PACE_ALWAYS = 0x41f
|
||||
TCP_RACK_PACE_MAX_SEG = 0x41e
|
||||
TCP_RACK_PACE_REDUCE = 0x41d
|
||||
TCP_RACK_PKT_DELAY = 0x428
|
||||
TCP_RACK_PROP = 0x41b
|
||||
TCP_RACK_PROP_RATE = 0x420
|
||||
TCP_RACK_PRR_SENDALOT = 0x421
|
||||
TCP_RACK_REORD_FADE = 0x426
|
||||
TCP_RACK_REORD_THRESH = 0x425
|
||||
TCP_RACK_TLP_INC_VAR = 0x429
|
||||
TCP_RACK_TLP_REDUCE = 0x41c
|
||||
TCP_RACK_TLP_THRESH = 0x427
|
||||
TCP_RACK_TLP_USE = 0x447
|
||||
TCP_VENDOR = 0x80000000
|
||||
TCSAFLUSH = 0x2
|
||||
TIMER_ABSTIME = 0x1
|
||||
TIMER_RELTIME = 0x0
|
||||
TIOCCBRK = 0x2000747a
|
||||
TIOCCDTR = 0x20007478
|
||||
TIOCCONS = 0x80047462
|
||||
@@ -1528,6 +1712,8 @@ const (
|
||||
TIOCTIMESTAMP = 0x40107459
|
||||
TIOCUCNTL = 0x80047466
|
||||
TOSTOP = 0x400000
|
||||
UTIME_NOW = -0x1
|
||||
UTIME_OMIT = -0x2
|
||||
VDISCARD = 0xf
|
||||
VDSUSP = 0xb
|
||||
VEOF = 0x0
|
||||
@@ -1592,12 +1778,13 @@ const (
|
||||
EIDRM = syscall.Errno(0x52)
|
||||
EILSEQ = syscall.Errno(0x56)
|
||||
EINPROGRESS = syscall.Errno(0x24)
|
||||
EINTEGRITY = syscall.Errno(0x61)
|
||||
EINTR = syscall.Errno(0x4)
|
||||
EINVAL = syscall.Errno(0x16)
|
||||
EIO = syscall.Errno(0x5)
|
||||
EISCONN = syscall.Errno(0x38)
|
||||
EISDIR = syscall.Errno(0x15)
|
||||
ELAST = syscall.Errno(0x60)
|
||||
ELAST = syscall.Errno(0x61)
|
||||
ELOOP = syscall.Errno(0x3e)
|
||||
EMFILE = syscall.Errno(0x18)
|
||||
EMLINK = syscall.Errno(0x1f)
|
||||
@@ -1740,7 +1927,7 @@ var errorList = [...]struct {
|
||||
{32, "EPIPE", "broken pipe"},
|
||||
{33, "EDOM", "numerical argument out of domain"},
|
||||
{34, "ERANGE", "result too large"},
|
||||
{35, "EAGAIN", "resource temporarily unavailable"},
|
||||
{35, "EWOULDBLOCK", "resource temporarily unavailable"},
|
||||
{36, "EINPROGRESS", "operation now in progress"},
|
||||
{37, "EALREADY", "operation already in progress"},
|
||||
{38, "ENOTSOCK", "socket operation on non-socket"},
|
||||
@@ -1802,6 +1989,7 @@ var errorList = [...]struct {
|
||||
{94, "ECAPMODE", "not permitted in capability mode"},
|
||||
{95, "ENOTRECOVERABLE", "state not recoverable"},
|
||||
{96, "EOWNERDEAD", "previous owner died"},
|
||||
{97, "EINTEGRITY", "integrity check failed"},
|
||||
}
|
||||
|
||||
// Signal table
|
||||
|
||||
100
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
generated
vendored
100
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
generated
vendored
@@ -151,6 +151,7 @@ const (
|
||||
BIOCSETF = 0x80104267
|
||||
BIOCSETFNR = 0x80104282
|
||||
BIOCSETIF = 0x8020426c
|
||||
BIOCSETVLANPCP = 0x80044285
|
||||
BIOCSETWF = 0x8010427b
|
||||
BIOCSETZBUF = 0x80184281
|
||||
BIOCSHDRCMPLT = 0x80044275
|
||||
@@ -447,7 +448,7 @@ const (
|
||||
DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1
|
||||
DLT_INFINIBAND = 0xf7
|
||||
DLT_IPFILTER = 0x74
|
||||
DLT_IPMB = 0xc7
|
||||
DLT_IPMB_KONTRON = 0xc7
|
||||
DLT_IPMB_LINUX = 0xd1
|
||||
DLT_IPMI_HPM_2 = 0x104
|
||||
DLT_IPNET = 0xe2
|
||||
@@ -487,10 +488,11 @@ const (
|
||||
DLT_LINUX_LAPD = 0xb1
|
||||
DLT_LINUX_PPP_WITHDIRECTION = 0xa6
|
||||
DLT_LINUX_SLL = 0x71
|
||||
DLT_LINUX_SLL2 = 0x114
|
||||
DLT_LOOP = 0x6c
|
||||
DLT_LORATAP = 0x10e
|
||||
DLT_LTALK = 0x72
|
||||
DLT_MATCHING_MAX = 0x113
|
||||
DLT_MATCHING_MAX = 0x114
|
||||
DLT_MATCHING_MIN = 0x68
|
||||
DLT_MFR = 0xb6
|
||||
DLT_MOST = 0xd3
|
||||
@@ -734,6 +736,7 @@ const (
|
||||
IPPROTO_CMTP = 0x26
|
||||
IPPROTO_CPHB = 0x49
|
||||
IPPROTO_CPNX = 0x48
|
||||
IPPROTO_DCCP = 0x21
|
||||
IPPROTO_DDP = 0x25
|
||||
IPPROTO_DGP = 0x56
|
||||
IPPROTO_DIVERT = 0x102
|
||||
@@ -814,7 +817,6 @@ const (
|
||||
IPPROTO_SCTP = 0x84
|
||||
IPPROTO_SDRP = 0x2a
|
||||
IPPROTO_SEND = 0x103
|
||||
IPPROTO_SEP = 0x21
|
||||
IPPROTO_SHIM6 = 0x8c
|
||||
IPPROTO_SKIP = 0x39
|
||||
IPPROTO_SPACER = 0x7fff
|
||||
@@ -911,6 +913,7 @@ const (
|
||||
IPV6_V6ONLY = 0x1b
|
||||
IPV6_VERSION = 0x60
|
||||
IPV6_VERSION_MASK = 0xf0
|
||||
IPV6_VLAN_PCP = 0x4b
|
||||
IP_ADD_MEMBERSHIP = 0xc
|
||||
IP_ADD_SOURCE_MEMBERSHIP = 0x46
|
||||
IP_BINDANY = 0x18
|
||||
@@ -989,8 +992,12 @@ const (
|
||||
IP_TOS = 0x3
|
||||
IP_TTL = 0x4
|
||||
IP_UNBLOCK_SOURCE = 0x49
|
||||
IP_VLAN_PCP = 0x4b
|
||||
ISIG = 0x80
|
||||
ISTRIP = 0x20
|
||||
ITIMER_PROF = 0x2
|
||||
ITIMER_REAL = 0x0
|
||||
ITIMER_VIRTUAL = 0x1
|
||||
IXANY = 0x800
|
||||
IXOFF = 0x400
|
||||
IXON = 0x200
|
||||
@@ -1000,7 +1007,6 @@ const (
|
||||
KERN_VERSION = 0x4
|
||||
LOCAL_CONNWAIT = 0x4
|
||||
LOCAL_CREDS = 0x2
|
||||
LOCAL_CREDS_PERSISTENT = 0x3
|
||||
LOCAL_PEERCRED = 0x1
|
||||
LOCAL_VENDOR = 0x80000000
|
||||
LOCK_EX = 0x2
|
||||
@@ -1180,6 +1186,8 @@ const (
|
||||
O_NONBLOCK = 0x4
|
||||
O_RDONLY = 0x0
|
||||
O_RDWR = 0x2
|
||||
O_RESOLVE_BENEATH = 0x800000
|
||||
O_SEARCH = 0x40000
|
||||
O_SHLOCK = 0x10
|
||||
O_SYNC = 0x80
|
||||
O_TRUNC = 0x400
|
||||
@@ -1190,6 +1198,10 @@ const (
|
||||
PARMRK = 0x8
|
||||
PARODD = 0x2000
|
||||
PENDIN = 0x20000000
|
||||
PIOD_READ_D = 0x1
|
||||
PIOD_READ_I = 0x3
|
||||
PIOD_WRITE_D = 0x2
|
||||
PIOD_WRITE_I = 0x4
|
||||
PRIO_PGRP = 0x1
|
||||
PRIO_PROCESS = 0x0
|
||||
PRIO_USER = 0x2
|
||||
@@ -1197,6 +1209,51 @@ const (
|
||||
PROT_NONE = 0x0
|
||||
PROT_READ = 0x1
|
||||
PROT_WRITE = 0x2
|
||||
PTRACE_DEFAULT = 0x1
|
||||
PTRACE_EXEC = 0x1
|
||||
PTRACE_FORK = 0x8
|
||||
PTRACE_LWP = 0x10
|
||||
PTRACE_SCE = 0x2
|
||||
PTRACE_SCX = 0x4
|
||||
PTRACE_SYSCALL = 0x6
|
||||
PTRACE_VFORK = 0x20
|
||||
PT_ATTACH = 0xa
|
||||
PT_CLEARSTEP = 0x10
|
||||
PT_CONTINUE = 0x7
|
||||
PT_DETACH = 0xb
|
||||
PT_FIRSTMACH = 0x40
|
||||
PT_FOLLOW_FORK = 0x17
|
||||
PT_GETDBREGS = 0x25
|
||||
PT_GETFPREGS = 0x23
|
||||
PT_GETLWPLIST = 0xf
|
||||
PT_GETNUMLWPS = 0xe
|
||||
PT_GETREGS = 0x21
|
||||
PT_GET_EVENT_MASK = 0x19
|
||||
PT_GET_SC_ARGS = 0x1b
|
||||
PT_GET_SC_RET = 0x1c
|
||||
PT_IO = 0xc
|
||||
PT_KILL = 0x8
|
||||
PT_LWPINFO = 0xd
|
||||
PT_LWP_EVENTS = 0x18
|
||||
PT_READ_D = 0x2
|
||||
PT_READ_I = 0x1
|
||||
PT_RESUME = 0x13
|
||||
PT_SETDBREGS = 0x26
|
||||
PT_SETFPREGS = 0x24
|
||||
PT_SETREGS = 0x22
|
||||
PT_SETSTEP = 0x11
|
||||
PT_SET_EVENT_MASK = 0x1a
|
||||
PT_STEP = 0x9
|
||||
PT_SUSPEND = 0x12
|
||||
PT_SYSCALL = 0x16
|
||||
PT_TO_SCE = 0x14
|
||||
PT_TO_SCX = 0x15
|
||||
PT_TRACE_ME = 0x0
|
||||
PT_VM_ENTRY = 0x29
|
||||
PT_VM_TIMESTAMP = 0x28
|
||||
PT_WRITE_D = 0x5
|
||||
PT_WRITE_I = 0x4
|
||||
P_ZONEID = 0xc
|
||||
RLIMIT_AS = 0xa
|
||||
RLIMIT_CORE = 0x4
|
||||
RLIMIT_CPU = 0x0
|
||||
@@ -1321,10 +1378,12 @@ const (
|
||||
SIOCGHWADDR = 0xc020693e
|
||||
SIOCGI2C = 0xc020693d
|
||||
SIOCGIFADDR = 0xc0206921
|
||||
SIOCGIFALIAS = 0xc044692d
|
||||
SIOCGIFBRDADDR = 0xc0206923
|
||||
SIOCGIFCAP = 0xc020691f
|
||||
SIOCGIFCONF = 0xc0106924
|
||||
SIOCGIFDESCR = 0xc020692a
|
||||
SIOCGIFDOWNREASON = 0xc058699a
|
||||
SIOCGIFDSTADDR = 0xc0206922
|
||||
SIOCGIFFIB = 0xc020695c
|
||||
SIOCGIFFLAGS = 0xc0206911
|
||||
@@ -1415,6 +1474,7 @@ const (
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RERROR = 0x20000
|
||||
SO_REUSEADDR = 0x4
|
||||
SO_REUSEPORT = 0x200
|
||||
SO_REUSEPORT_LB = 0x10000
|
||||
@@ -1473,22 +1533,40 @@ const (
|
||||
TCOFLUSH = 0x2
|
||||
TCOOFF = 0x1
|
||||
TCOON = 0x2
|
||||
TCPOPT_EOL = 0x0
|
||||
TCPOPT_FAST_OPEN = 0x22
|
||||
TCPOPT_MAXSEG = 0x2
|
||||
TCPOPT_NOP = 0x1
|
||||
TCPOPT_PAD = 0x0
|
||||
TCPOPT_SACK = 0x5
|
||||
TCPOPT_SACK_PERMITTED = 0x4
|
||||
TCPOPT_SIGNATURE = 0x13
|
||||
TCPOPT_TIMESTAMP = 0x8
|
||||
TCPOPT_WINDOW = 0x3
|
||||
TCP_BBR_ACK_COMP_ALG = 0x448
|
||||
TCP_BBR_ALGORITHM = 0x43b
|
||||
TCP_BBR_DRAIN_INC_EXTRA = 0x43c
|
||||
TCP_BBR_DRAIN_PG = 0x42e
|
||||
TCP_BBR_EXTRA_GAIN = 0x449
|
||||
TCP_BBR_EXTRA_STATE = 0x453
|
||||
TCP_BBR_FLOOR_MIN_TSO = 0x454
|
||||
TCP_BBR_HDWR_PACE = 0x451
|
||||
TCP_BBR_HOLD_TARGET = 0x436
|
||||
TCP_BBR_IWINTSO = 0x42b
|
||||
TCP_BBR_LOWGAIN_FD = 0x436
|
||||
TCP_BBR_LOWGAIN_HALF = 0x435
|
||||
TCP_BBR_LOWGAIN_THRESH = 0x434
|
||||
TCP_BBR_MAX_RTO = 0x439
|
||||
TCP_BBR_MIN_RTO = 0x438
|
||||
TCP_BBR_MIN_TOPACEOUT = 0x455
|
||||
TCP_BBR_ONE_RETRAN = 0x431
|
||||
TCP_BBR_PACE_CROSS = 0x442
|
||||
TCP_BBR_PACE_DEL_TAR = 0x43f
|
||||
TCP_BBR_PACE_OH = 0x435
|
||||
TCP_BBR_PACE_PER_SEC = 0x43e
|
||||
TCP_BBR_PACE_SEG_MAX = 0x440
|
||||
TCP_BBR_PACE_SEG_MIN = 0x441
|
||||
TCP_BBR_POLICER_DETECT = 0x457
|
||||
TCP_BBR_PROBE_RTT_GAIN = 0x44d
|
||||
TCP_BBR_PROBE_RTT_INT = 0x430
|
||||
TCP_BBR_PROBE_RTT_LEN = 0x44e
|
||||
@@ -1497,12 +1575,18 @@ const (
|
||||
TCP_BBR_REC_OVER_HPTS = 0x43a
|
||||
TCP_BBR_RETRAN_WTSO = 0x44b
|
||||
TCP_BBR_RWND_IS_APP = 0x42f
|
||||
TCP_BBR_SEND_IWND_IN_TSO = 0x44f
|
||||
TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d
|
||||
TCP_BBR_STARTUP_LOSS_EXIT = 0x432
|
||||
TCP_BBR_STARTUP_PG = 0x42d
|
||||
TCP_BBR_TMR_PACE_OH = 0x448
|
||||
TCP_BBR_TSLIMITS = 0x434
|
||||
TCP_BBR_TSTMP_RAISES = 0x456
|
||||
TCP_BBR_UNLIMITED = 0x43b
|
||||
TCP_BBR_USEDEL_RATE = 0x437
|
||||
TCP_BBR_USE_LOWGAIN = 0x433
|
||||
TCP_BBR_USE_RACK_CHEAT = 0x450
|
||||
TCP_BBR_UTTER_MAX_TSO = 0x452
|
||||
TCP_CA_NAME_MAX = 0x10
|
||||
TCP_CCALGOOPT = 0x41
|
||||
TCP_CONGESTION = 0x40
|
||||
@@ -1542,6 +1626,7 @@ const (
|
||||
TCP_PCAP_OUT = 0x800
|
||||
TCP_RACK_EARLY_RECOV = 0x423
|
||||
TCP_RACK_EARLY_SEG = 0x424
|
||||
TCP_RACK_GP_INCREASE = 0x446
|
||||
TCP_RACK_IDLE_REDUCE_HIGH = 0x444
|
||||
TCP_RACK_MIN_PACE = 0x445
|
||||
TCP_RACK_MIN_PACE_SEG = 0x446
|
||||
@@ -1555,7 +1640,6 @@ const (
|
||||
TCP_RACK_PRR_SENDALOT = 0x421
|
||||
TCP_RACK_REORD_FADE = 0x426
|
||||
TCP_RACK_REORD_THRESH = 0x425
|
||||
TCP_RACK_SESS_CWV = 0x42a
|
||||
TCP_RACK_TLP_INC_VAR = 0x429
|
||||
TCP_RACK_TLP_REDUCE = 0x41c
|
||||
TCP_RACK_TLP_THRESH = 0x427
|
||||
@@ -1694,12 +1778,13 @@ const (
|
||||
EIDRM = syscall.Errno(0x52)
|
||||
EILSEQ = syscall.Errno(0x56)
|
||||
EINPROGRESS = syscall.Errno(0x24)
|
||||
EINTEGRITY = syscall.Errno(0x61)
|
||||
EINTR = syscall.Errno(0x4)
|
||||
EINVAL = syscall.Errno(0x16)
|
||||
EIO = syscall.Errno(0x5)
|
||||
EISCONN = syscall.Errno(0x38)
|
||||
EISDIR = syscall.Errno(0x15)
|
||||
ELAST = syscall.Errno(0x60)
|
||||
ELAST = syscall.Errno(0x61)
|
||||
ELOOP = syscall.Errno(0x3e)
|
||||
EMFILE = syscall.Errno(0x18)
|
||||
EMLINK = syscall.Errno(0x1f)
|
||||
@@ -1842,7 +1927,7 @@ var errorList = [...]struct {
|
||||
{32, "EPIPE", "broken pipe"},
|
||||
{33, "EDOM", "numerical argument out of domain"},
|
||||
{34, "ERANGE", "result too large"},
|
||||
{35, "EAGAIN", "resource temporarily unavailable"},
|
||||
{35, "EWOULDBLOCK", "resource temporarily unavailable"},
|
||||
{36, "EINPROGRESS", "operation now in progress"},
|
||||
{37, "EALREADY", "operation already in progress"},
|
||||
{38, "ENOTSOCK", "socket operation on non-socket"},
|
||||
@@ -1904,6 +1989,7 @@ var errorList = [...]struct {
|
||||
{94, "ECAPMODE", "not permitted in capability mode"},
|
||||
{95, "ENOTRECOVERABLE", "state not recoverable"},
|
||||
{96, "EOWNERDEAD", "previous owner died"},
|
||||
{97, "EINTEGRITY", "integrity check failed"},
|
||||
}
|
||||
|
||||
// Signal table
|
||||
|
||||
2148
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go
generated
vendored
Normal file
2148
src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
389
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
389
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux.go
generated
vendored
@@ -140,6 +140,306 @@ const (
|
||||
ARPHRD_VOID = 0xffff
|
||||
ARPHRD_VSOCKMON = 0x33a
|
||||
ARPHRD_X25 = 0x10f
|
||||
AUDIT_ADD = 0x3eb
|
||||
AUDIT_ADD_RULE = 0x3f3
|
||||
AUDIT_ALWAYS = 0x2
|
||||
AUDIT_ANOM_ABEND = 0x6a5
|
||||
AUDIT_ANOM_CREAT = 0x6a7
|
||||
AUDIT_ANOM_LINK = 0x6a6
|
||||
AUDIT_ANOM_PROMISCUOUS = 0x6a4
|
||||
AUDIT_ARCH = 0xb
|
||||
AUDIT_ARCH_AARCH64 = 0xc00000b7
|
||||
AUDIT_ARCH_ALPHA = 0xc0009026
|
||||
AUDIT_ARCH_ARCOMPACT = 0x4000005d
|
||||
AUDIT_ARCH_ARCOMPACTBE = 0x5d
|
||||
AUDIT_ARCH_ARCV2 = 0x400000c3
|
||||
AUDIT_ARCH_ARCV2BE = 0xc3
|
||||
AUDIT_ARCH_ARM = 0x40000028
|
||||
AUDIT_ARCH_ARMEB = 0x28
|
||||
AUDIT_ARCH_C6X = 0x4000008c
|
||||
AUDIT_ARCH_C6XBE = 0x8c
|
||||
AUDIT_ARCH_CRIS = 0x4000004c
|
||||
AUDIT_ARCH_CSKY = 0x400000fc
|
||||
AUDIT_ARCH_FRV = 0x5441
|
||||
AUDIT_ARCH_H8300 = 0x2e
|
||||
AUDIT_ARCH_HEXAGON = 0xa4
|
||||
AUDIT_ARCH_I386 = 0x40000003
|
||||
AUDIT_ARCH_IA64 = 0xc0000032
|
||||
AUDIT_ARCH_LOONGARCH32 = 0x40000102
|
||||
AUDIT_ARCH_LOONGARCH64 = 0xc0000102
|
||||
AUDIT_ARCH_M32R = 0x58
|
||||
AUDIT_ARCH_M68K = 0x4
|
||||
AUDIT_ARCH_MICROBLAZE = 0xbd
|
||||
AUDIT_ARCH_MIPS = 0x8
|
||||
AUDIT_ARCH_MIPS64 = 0x80000008
|
||||
AUDIT_ARCH_MIPS64N32 = 0xa0000008
|
||||
AUDIT_ARCH_MIPSEL = 0x40000008
|
||||
AUDIT_ARCH_MIPSEL64 = 0xc0000008
|
||||
AUDIT_ARCH_MIPSEL64N32 = 0xe0000008
|
||||
AUDIT_ARCH_NDS32 = 0x400000a7
|
||||
AUDIT_ARCH_NDS32BE = 0xa7
|
||||
AUDIT_ARCH_NIOS2 = 0x40000071
|
||||
AUDIT_ARCH_OPENRISC = 0x5c
|
||||
AUDIT_ARCH_PARISC = 0xf
|
||||
AUDIT_ARCH_PARISC64 = 0x8000000f
|
||||
AUDIT_ARCH_PPC = 0x14
|
||||
AUDIT_ARCH_PPC64 = 0x80000015
|
||||
AUDIT_ARCH_PPC64LE = 0xc0000015
|
||||
AUDIT_ARCH_RISCV32 = 0x400000f3
|
||||
AUDIT_ARCH_RISCV64 = 0xc00000f3
|
||||
AUDIT_ARCH_S390 = 0x16
|
||||
AUDIT_ARCH_S390X = 0x80000016
|
||||
AUDIT_ARCH_SH = 0x2a
|
||||
AUDIT_ARCH_SH64 = 0x8000002a
|
||||
AUDIT_ARCH_SHEL = 0x4000002a
|
||||
AUDIT_ARCH_SHEL64 = 0xc000002a
|
||||
AUDIT_ARCH_SPARC = 0x2
|
||||
AUDIT_ARCH_SPARC64 = 0x8000002b
|
||||
AUDIT_ARCH_TILEGX = 0xc00000bf
|
||||
AUDIT_ARCH_TILEGX32 = 0x400000bf
|
||||
AUDIT_ARCH_TILEPRO = 0x400000bc
|
||||
AUDIT_ARCH_UNICORE = 0x4000006e
|
||||
AUDIT_ARCH_X86_64 = 0xc000003e
|
||||
AUDIT_ARCH_XTENSA = 0x5e
|
||||
AUDIT_ARG0 = 0xc8
|
||||
AUDIT_ARG1 = 0xc9
|
||||
AUDIT_ARG2 = 0xca
|
||||
AUDIT_ARG3 = 0xcb
|
||||
AUDIT_AVC = 0x578
|
||||
AUDIT_AVC_PATH = 0x57a
|
||||
AUDIT_BITMASK_SIZE = 0x40
|
||||
AUDIT_BIT_MASK = 0x8000000
|
||||
AUDIT_BIT_TEST = 0x48000000
|
||||
AUDIT_BPF = 0x536
|
||||
AUDIT_BPRM_FCAPS = 0x529
|
||||
AUDIT_CAPSET = 0x52a
|
||||
AUDIT_CLASS_CHATTR = 0x2
|
||||
AUDIT_CLASS_CHATTR_32 = 0x3
|
||||
AUDIT_CLASS_DIR_WRITE = 0x0
|
||||
AUDIT_CLASS_DIR_WRITE_32 = 0x1
|
||||
AUDIT_CLASS_READ = 0x4
|
||||
AUDIT_CLASS_READ_32 = 0x5
|
||||
AUDIT_CLASS_SIGNAL = 0x8
|
||||
AUDIT_CLASS_SIGNAL_32 = 0x9
|
||||
AUDIT_CLASS_WRITE = 0x6
|
||||
AUDIT_CLASS_WRITE_32 = 0x7
|
||||
AUDIT_COMPARE_AUID_TO_EUID = 0x10
|
||||
AUDIT_COMPARE_AUID_TO_FSUID = 0xe
|
||||
AUDIT_COMPARE_AUID_TO_OBJ_UID = 0x5
|
||||
AUDIT_COMPARE_AUID_TO_SUID = 0xf
|
||||
AUDIT_COMPARE_EGID_TO_FSGID = 0x17
|
||||
AUDIT_COMPARE_EGID_TO_OBJ_GID = 0x4
|
||||
AUDIT_COMPARE_EGID_TO_SGID = 0x18
|
||||
AUDIT_COMPARE_EUID_TO_FSUID = 0x12
|
||||
AUDIT_COMPARE_EUID_TO_OBJ_UID = 0x3
|
||||
AUDIT_COMPARE_EUID_TO_SUID = 0x11
|
||||
AUDIT_COMPARE_FSGID_TO_OBJ_GID = 0x9
|
||||
AUDIT_COMPARE_FSUID_TO_OBJ_UID = 0x8
|
||||
AUDIT_COMPARE_GID_TO_EGID = 0x14
|
||||
AUDIT_COMPARE_GID_TO_FSGID = 0x15
|
||||
AUDIT_COMPARE_GID_TO_OBJ_GID = 0x2
|
||||
AUDIT_COMPARE_GID_TO_SGID = 0x16
|
||||
AUDIT_COMPARE_SGID_TO_FSGID = 0x19
|
||||
AUDIT_COMPARE_SGID_TO_OBJ_GID = 0x7
|
||||
AUDIT_COMPARE_SUID_TO_FSUID = 0x13
|
||||
AUDIT_COMPARE_SUID_TO_OBJ_UID = 0x6
|
||||
AUDIT_COMPARE_UID_TO_AUID = 0xa
|
||||
AUDIT_COMPARE_UID_TO_EUID = 0xb
|
||||
AUDIT_COMPARE_UID_TO_FSUID = 0xc
|
||||
AUDIT_COMPARE_UID_TO_OBJ_UID = 0x1
|
||||
AUDIT_COMPARE_UID_TO_SUID = 0xd
|
||||
AUDIT_CONFIG_CHANGE = 0x519
|
||||
AUDIT_CWD = 0x51b
|
||||
AUDIT_DAEMON_ABORT = 0x4b2
|
||||
AUDIT_DAEMON_CONFIG = 0x4b3
|
||||
AUDIT_DAEMON_END = 0x4b1
|
||||
AUDIT_DAEMON_START = 0x4b0
|
||||
AUDIT_DEL = 0x3ec
|
||||
AUDIT_DEL_RULE = 0x3f4
|
||||
AUDIT_DEVMAJOR = 0x64
|
||||
AUDIT_DEVMINOR = 0x65
|
||||
AUDIT_DIR = 0x6b
|
||||
AUDIT_DM_CTRL = 0x53a
|
||||
AUDIT_DM_EVENT = 0x53b
|
||||
AUDIT_EGID = 0x6
|
||||
AUDIT_EOE = 0x528
|
||||
AUDIT_EQUAL = 0x40000000
|
||||
AUDIT_EUID = 0x2
|
||||
AUDIT_EVENT_LISTENER = 0x537
|
||||
AUDIT_EXE = 0x70
|
||||
AUDIT_EXECVE = 0x51d
|
||||
AUDIT_EXIT = 0x67
|
||||
AUDIT_FAIL_PANIC = 0x2
|
||||
AUDIT_FAIL_PRINTK = 0x1
|
||||
AUDIT_FAIL_SILENT = 0x0
|
||||
AUDIT_FANOTIFY = 0x533
|
||||
AUDIT_FD_PAIR = 0x525
|
||||
AUDIT_FEATURE_BITMAP_ALL = 0x7f
|
||||
AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT = 0x1
|
||||
AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME = 0x2
|
||||
AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND = 0x8
|
||||
AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH = 0x4
|
||||
AUDIT_FEATURE_BITMAP_FILTER_FS = 0x40
|
||||
AUDIT_FEATURE_BITMAP_LOST_RESET = 0x20
|
||||
AUDIT_FEATURE_BITMAP_SESSIONID_FILTER = 0x10
|
||||
AUDIT_FEATURE_CHANGE = 0x530
|
||||
AUDIT_FEATURE_LOGINUID_IMMUTABLE = 0x1
|
||||
AUDIT_FEATURE_ONLY_UNSET_LOGINUID = 0x0
|
||||
AUDIT_FEATURE_VERSION = 0x1
|
||||
AUDIT_FIELD_COMPARE = 0x6f
|
||||
AUDIT_FILETYPE = 0x6c
|
||||
AUDIT_FILTERKEY = 0xd2
|
||||
AUDIT_FILTER_ENTRY = 0x2
|
||||
AUDIT_FILTER_EXCLUDE = 0x5
|
||||
AUDIT_FILTER_EXIT = 0x4
|
||||
AUDIT_FILTER_FS = 0x6
|
||||
AUDIT_FILTER_PREPEND = 0x10
|
||||
AUDIT_FILTER_TASK = 0x1
|
||||
AUDIT_FILTER_TYPE = 0x5
|
||||
AUDIT_FILTER_URING_EXIT = 0x7
|
||||
AUDIT_FILTER_USER = 0x0
|
||||
AUDIT_FILTER_WATCH = 0x3
|
||||
AUDIT_FIRST_KERN_ANOM_MSG = 0x6a4
|
||||
AUDIT_FIRST_USER_MSG = 0x44c
|
||||
AUDIT_FIRST_USER_MSG2 = 0x834
|
||||
AUDIT_FSGID = 0x8
|
||||
AUDIT_FSTYPE = 0x1a
|
||||
AUDIT_FSUID = 0x4
|
||||
AUDIT_GET = 0x3e8
|
||||
AUDIT_GET_FEATURE = 0x3fb
|
||||
AUDIT_GID = 0x5
|
||||
AUDIT_GREATER_THAN = 0x20000000
|
||||
AUDIT_GREATER_THAN_OR_EQUAL = 0x60000000
|
||||
AUDIT_INODE = 0x66
|
||||
AUDIT_INTEGRITY_DATA = 0x708
|
||||
AUDIT_INTEGRITY_EVM_XATTR = 0x70e
|
||||
AUDIT_INTEGRITY_HASH = 0x70b
|
||||
AUDIT_INTEGRITY_METADATA = 0x709
|
||||
AUDIT_INTEGRITY_PCR = 0x70c
|
||||
AUDIT_INTEGRITY_POLICY_RULE = 0x70f
|
||||
AUDIT_INTEGRITY_RULE = 0x70d
|
||||
AUDIT_INTEGRITY_STATUS = 0x70a
|
||||
AUDIT_IPC = 0x517
|
||||
AUDIT_IPC_SET_PERM = 0x51f
|
||||
AUDIT_KERNEL = 0x7d0
|
||||
AUDIT_KERNEL_OTHER = 0x524
|
||||
AUDIT_KERN_MODULE = 0x532
|
||||
AUDIT_LAST_FEATURE = 0x1
|
||||
AUDIT_LAST_KERN_ANOM_MSG = 0x707
|
||||
AUDIT_LAST_USER_MSG = 0x4af
|
||||
AUDIT_LAST_USER_MSG2 = 0xbb7
|
||||
AUDIT_LESS_THAN = 0x10000000
|
||||
AUDIT_LESS_THAN_OR_EQUAL = 0x50000000
|
||||
AUDIT_LIST = 0x3ea
|
||||
AUDIT_LIST_RULES = 0x3f5
|
||||
AUDIT_LOGIN = 0x3ee
|
||||
AUDIT_LOGINUID = 0x9
|
||||
AUDIT_LOGINUID_SET = 0x18
|
||||
AUDIT_MAC_CALIPSO_ADD = 0x58a
|
||||
AUDIT_MAC_CALIPSO_DEL = 0x58b
|
||||
AUDIT_MAC_CIPSOV4_ADD = 0x57f
|
||||
AUDIT_MAC_CIPSOV4_DEL = 0x580
|
||||
AUDIT_MAC_CONFIG_CHANGE = 0x57d
|
||||
AUDIT_MAC_IPSEC_ADDSA = 0x583
|
||||
AUDIT_MAC_IPSEC_ADDSPD = 0x585
|
||||
AUDIT_MAC_IPSEC_DELSA = 0x584
|
||||
AUDIT_MAC_IPSEC_DELSPD = 0x586
|
||||
AUDIT_MAC_IPSEC_EVENT = 0x587
|
||||
AUDIT_MAC_MAP_ADD = 0x581
|
||||
AUDIT_MAC_MAP_DEL = 0x582
|
||||
AUDIT_MAC_POLICY_LOAD = 0x57b
|
||||
AUDIT_MAC_STATUS = 0x57c
|
||||
AUDIT_MAC_UNLBL_ALLOW = 0x57e
|
||||
AUDIT_MAC_UNLBL_STCADD = 0x588
|
||||
AUDIT_MAC_UNLBL_STCDEL = 0x589
|
||||
AUDIT_MAKE_EQUIV = 0x3f7
|
||||
AUDIT_MAX_FIELDS = 0x40
|
||||
AUDIT_MAX_FIELD_COMPARE = 0x19
|
||||
AUDIT_MAX_KEY_LEN = 0x100
|
||||
AUDIT_MESSAGE_TEXT_MAX = 0x2170
|
||||
AUDIT_MMAP = 0x52b
|
||||
AUDIT_MQ_GETSETATTR = 0x523
|
||||
AUDIT_MQ_NOTIFY = 0x522
|
||||
AUDIT_MQ_OPEN = 0x520
|
||||
AUDIT_MQ_SENDRECV = 0x521
|
||||
AUDIT_MSGTYPE = 0xc
|
||||
AUDIT_NEGATE = 0x80000000
|
||||
AUDIT_NETFILTER_CFG = 0x52d
|
||||
AUDIT_NETFILTER_PKT = 0x52c
|
||||
AUDIT_NEVER = 0x0
|
||||
AUDIT_NLGRP_MAX = 0x1
|
||||
AUDIT_NOT_EQUAL = 0x30000000
|
||||
AUDIT_NR_FILTERS = 0x8
|
||||
AUDIT_OBJ_GID = 0x6e
|
||||
AUDIT_OBJ_LEV_HIGH = 0x17
|
||||
AUDIT_OBJ_LEV_LOW = 0x16
|
||||
AUDIT_OBJ_PID = 0x526
|
||||
AUDIT_OBJ_ROLE = 0x14
|
||||
AUDIT_OBJ_TYPE = 0x15
|
||||
AUDIT_OBJ_UID = 0x6d
|
||||
AUDIT_OBJ_USER = 0x13
|
||||
AUDIT_OPENAT2 = 0x539
|
||||
AUDIT_OPERATORS = 0x78000000
|
||||
AUDIT_PATH = 0x516
|
||||
AUDIT_PERM = 0x6a
|
||||
AUDIT_PERM_ATTR = 0x8
|
||||
AUDIT_PERM_EXEC = 0x1
|
||||
AUDIT_PERM_READ = 0x4
|
||||
AUDIT_PERM_WRITE = 0x2
|
||||
AUDIT_PERS = 0xa
|
||||
AUDIT_PID = 0x0
|
||||
AUDIT_POSSIBLE = 0x1
|
||||
AUDIT_PPID = 0x12
|
||||
AUDIT_PROCTITLE = 0x52f
|
||||
AUDIT_REPLACE = 0x531
|
||||
AUDIT_SADDR_FAM = 0x71
|
||||
AUDIT_SECCOMP = 0x52e
|
||||
AUDIT_SELINUX_ERR = 0x579
|
||||
AUDIT_SESSIONID = 0x19
|
||||
AUDIT_SET = 0x3e9
|
||||
AUDIT_SET_FEATURE = 0x3fa
|
||||
AUDIT_SGID = 0x7
|
||||
AUDIT_SID_UNSET = 0xffffffff
|
||||
AUDIT_SIGNAL_INFO = 0x3f2
|
||||
AUDIT_SOCKADDR = 0x51a
|
||||
AUDIT_SOCKETCALL = 0x518
|
||||
AUDIT_STATUS_BACKLOG_LIMIT = 0x10
|
||||
AUDIT_STATUS_BACKLOG_WAIT_TIME = 0x20
|
||||
AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL = 0x80
|
||||
AUDIT_STATUS_ENABLED = 0x1
|
||||
AUDIT_STATUS_FAILURE = 0x2
|
||||
AUDIT_STATUS_LOST = 0x40
|
||||
AUDIT_STATUS_PID = 0x4
|
||||
AUDIT_STATUS_RATE_LIMIT = 0x8
|
||||
AUDIT_SUBJ_CLR = 0x11
|
||||
AUDIT_SUBJ_ROLE = 0xe
|
||||
AUDIT_SUBJ_SEN = 0x10
|
||||
AUDIT_SUBJ_TYPE = 0xf
|
||||
AUDIT_SUBJ_USER = 0xd
|
||||
AUDIT_SUCCESS = 0x68
|
||||
AUDIT_SUID = 0x3
|
||||
AUDIT_SYSCALL = 0x514
|
||||
AUDIT_SYSCALL_CLASSES = 0x10
|
||||
AUDIT_TIME_ADJNTPVAL = 0x535
|
||||
AUDIT_TIME_INJOFFSET = 0x534
|
||||
AUDIT_TRIM = 0x3f6
|
||||
AUDIT_TTY = 0x527
|
||||
AUDIT_TTY_GET = 0x3f8
|
||||
AUDIT_TTY_SET = 0x3f9
|
||||
AUDIT_UID = 0x1
|
||||
AUDIT_UID_UNSET = 0xffffffff
|
||||
AUDIT_UNUSED_BITS = 0x7fffc00
|
||||
AUDIT_URINGOP = 0x538
|
||||
AUDIT_USER = 0x3ed
|
||||
AUDIT_USER_AVC = 0x453
|
||||
AUDIT_USER_TTY = 0x464
|
||||
AUDIT_VERSION_BACKLOG_LIMIT = 0x1
|
||||
AUDIT_VERSION_BACKLOG_WAIT_TIME = 0x2
|
||||
AUDIT_VERSION_LATEST = 0x7f
|
||||
AUDIT_WATCH = 0x69
|
||||
AUDIT_WATCH_INS = 0x3ef
|
||||
AUDIT_WATCH_LIST = 0x3f1
|
||||
AUDIT_WATCH_REM = 0x3f0
|
||||
AUTOFS_SUPER_MAGIC = 0x187
|
||||
B0 = 0x0
|
||||
B110 = 0x3
|
||||
@@ -184,6 +484,7 @@ const (
|
||||
BPF_F_ALLOW_MULTI = 0x2
|
||||
BPF_F_ALLOW_OVERRIDE = 0x1
|
||||
BPF_F_ANY_ALIGNMENT = 0x2
|
||||
BPF_F_KPROBE_MULTI_RETURN = 0x1
|
||||
BPF_F_QUERY_EFFECTIVE = 0x1
|
||||
BPF_F_REPLACE = 0x4
|
||||
BPF_F_SLEEPABLE = 0x10
|
||||
@@ -191,6 +492,8 @@ const (
|
||||
BPF_F_TEST_RND_HI32 = 0x4
|
||||
BPF_F_TEST_RUN_ON_CPU = 0x1
|
||||
BPF_F_TEST_STATE_FREQ = 0x8
|
||||
BPF_F_TEST_XDP_LIVE_FRAMES = 0x2
|
||||
BPF_F_XDP_HAS_FRAGS = 0x20
|
||||
BPF_H = 0x8
|
||||
BPF_IMM = 0x0
|
||||
BPF_IND = 0x40
|
||||
@@ -517,9 +820,9 @@ const (
|
||||
DM_UUID_FLAG = 0x4000
|
||||
DM_UUID_LEN = 0x81
|
||||
DM_VERSION = 0xc138fd00
|
||||
DM_VERSION_EXTRA = "-ioctl (2021-03-22)"
|
||||
DM_VERSION_EXTRA = "-ioctl (2022-02-22)"
|
||||
DM_VERSION_MAJOR = 0x4
|
||||
DM_VERSION_MINOR = 0x2d
|
||||
DM_VERSION_MINOR = 0x2e
|
||||
DM_VERSION_PATCHLEVEL = 0x0
|
||||
DT_BLK = 0x6
|
||||
DT_CHR = 0x2
|
||||
@@ -535,6 +838,55 @@ const (
|
||||
EFD_SEMAPHORE = 0x1
|
||||
EFIVARFS_MAGIC = 0xde5e81e4
|
||||
EFS_SUPER_MAGIC = 0x414a53
|
||||
EM_386 = 0x3
|
||||
EM_486 = 0x6
|
||||
EM_68K = 0x4
|
||||
EM_860 = 0x7
|
||||
EM_88K = 0x5
|
||||
EM_AARCH64 = 0xb7
|
||||
EM_ALPHA = 0x9026
|
||||
EM_ALTERA_NIOS2 = 0x71
|
||||
EM_ARCOMPACT = 0x5d
|
||||
EM_ARCV2 = 0xc3
|
||||
EM_ARM = 0x28
|
||||
EM_BLACKFIN = 0x6a
|
||||
EM_BPF = 0xf7
|
||||
EM_CRIS = 0x4c
|
||||
EM_CSKY = 0xfc
|
||||
EM_CYGNUS_M32R = 0x9041
|
||||
EM_CYGNUS_MN10300 = 0xbeef
|
||||
EM_FRV = 0x5441
|
||||
EM_H8_300 = 0x2e
|
||||
EM_HEXAGON = 0xa4
|
||||
EM_IA_64 = 0x32
|
||||
EM_LOONGARCH = 0x102
|
||||
EM_M32 = 0x1
|
||||
EM_M32R = 0x58
|
||||
EM_MICROBLAZE = 0xbd
|
||||
EM_MIPS = 0x8
|
||||
EM_MIPS_RS3_LE = 0xa
|
||||
EM_MIPS_RS4_BE = 0xa
|
||||
EM_MN10300 = 0x59
|
||||
EM_NDS32 = 0xa7
|
||||
EM_NONE = 0x0
|
||||
EM_OPENRISC = 0x5c
|
||||
EM_PARISC = 0xf
|
||||
EM_PPC = 0x14
|
||||
EM_PPC64 = 0x15
|
||||
EM_RISCV = 0xf3
|
||||
EM_S390 = 0x16
|
||||
EM_S390_OLD = 0xa390
|
||||
EM_SH = 0x2a
|
||||
EM_SPARC = 0x2
|
||||
EM_SPARC32PLUS = 0x12
|
||||
EM_SPARCV9 = 0x2b
|
||||
EM_SPU = 0x17
|
||||
EM_TILEGX = 0xbf
|
||||
EM_TILEPRO = 0xbc
|
||||
EM_TI_C6000 = 0x8c
|
||||
EM_UNICORE = 0x6e
|
||||
EM_X86_64 = 0x3e
|
||||
EM_XTENSA = 0x5e
|
||||
ENCODING_DEFAULT = 0x0
|
||||
ENCODING_FM_MARK = 0x3
|
||||
ENCODING_FM_SPACE = 0x4
|
||||
@@ -712,6 +1064,7 @@ const (
|
||||
ETH_P_EDSA = 0xdada
|
||||
ETH_P_ERSPAN = 0x88be
|
||||
ETH_P_ERSPAN2 = 0x22eb
|
||||
ETH_P_ETHERCAT = 0x88a4
|
||||
ETH_P_FCOE = 0x8906
|
||||
ETH_P_FIP = 0x8914
|
||||
ETH_P_HDLC = 0x19
|
||||
@@ -749,6 +1102,7 @@ const (
|
||||
ETH_P_PPP_MP = 0x8
|
||||
ETH_P_PPP_SES = 0x8864
|
||||
ETH_P_PREAUTH = 0x88c7
|
||||
ETH_P_PROFINET = 0x8892
|
||||
ETH_P_PRP = 0x88fb
|
||||
ETH_P_PUP = 0x200
|
||||
ETH_P_PUPAT = 0x201
|
||||
@@ -837,6 +1191,7 @@ const (
|
||||
FAN_FS_ERROR = 0x8000
|
||||
FAN_MARK_ADD = 0x1
|
||||
FAN_MARK_DONT_FOLLOW = 0x4
|
||||
FAN_MARK_EVICTABLE = 0x200
|
||||
FAN_MARK_FILESYSTEM = 0x100
|
||||
FAN_MARK_FLUSH = 0x80
|
||||
FAN_MARK_IGNORED_MASK = 0x20
|
||||
@@ -1055,7 +1410,7 @@ const (
|
||||
IFA_F_STABLE_PRIVACY = 0x800
|
||||
IFA_F_TEMPORARY = 0x1
|
||||
IFA_F_TENTATIVE = 0x40
|
||||
IFA_MAX = 0xa
|
||||
IFA_MAX = 0xb
|
||||
IFF_ALLMULTI = 0x200
|
||||
IFF_ATTACH_QUEUE = 0x200
|
||||
IFF_AUTOMEDIA = 0x4000
|
||||
@@ -1403,6 +1758,7 @@ const (
|
||||
LANDLOCK_ACCESS_FS_MAKE_SYM = 0x1000
|
||||
LANDLOCK_ACCESS_FS_READ_DIR = 0x8
|
||||
LANDLOCK_ACCESS_FS_READ_FILE = 0x4
|
||||
LANDLOCK_ACCESS_FS_REFER = 0x2000
|
||||
LANDLOCK_ACCESS_FS_REMOVE_DIR = 0x10
|
||||
LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20
|
||||
LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2
|
||||
@@ -1758,6 +2114,7 @@ const (
|
||||
NLM_F_ACK_TLVS = 0x200
|
||||
NLM_F_APPEND = 0x800
|
||||
NLM_F_ATOMIC = 0x400
|
||||
NLM_F_BULK = 0x200
|
||||
NLM_F_CAPPED = 0x100
|
||||
NLM_F_CREATE = 0x400
|
||||
NLM_F_DUMP = 0x300
|
||||
@@ -2075,6 +2432,11 @@ const (
|
||||
PR_SET_UNALIGN = 0x6
|
||||
PR_SET_VMA = 0x53564d41
|
||||
PR_SET_VMA_ANON_NAME = 0x0
|
||||
PR_SME_GET_VL = 0x40
|
||||
PR_SME_SET_VL = 0x3f
|
||||
PR_SME_SET_VL_ONEXEC = 0x40000
|
||||
PR_SME_VL_INHERIT = 0x20000
|
||||
PR_SME_VL_LEN_MASK = 0xffff
|
||||
PR_SPEC_DISABLE = 0x4
|
||||
PR_SPEC_DISABLE_NOEXEC = 0x10
|
||||
PR_SPEC_ENABLE = 0x2
|
||||
@@ -2227,8 +2589,9 @@ const (
|
||||
RTC_FEATURE_ALARM = 0x0
|
||||
RTC_FEATURE_ALARM_RES_2S = 0x3
|
||||
RTC_FEATURE_ALARM_RES_MINUTE = 0x1
|
||||
RTC_FEATURE_ALARM_WAKEUP_ONLY = 0x7
|
||||
RTC_FEATURE_BACKUP_SWITCH_MODE = 0x6
|
||||
RTC_FEATURE_CNT = 0x7
|
||||
RTC_FEATURE_CNT = 0x8
|
||||
RTC_FEATURE_CORRECTION = 0x5
|
||||
RTC_FEATURE_NEED_WEEK_DAY = 0x2
|
||||
RTC_FEATURE_UPDATE_INTERRUPT = 0x4
|
||||
@@ -2302,6 +2665,7 @@ const (
|
||||
RTM_DELRULE = 0x21
|
||||
RTM_DELTCLASS = 0x29
|
||||
RTM_DELTFILTER = 0x2d
|
||||
RTM_DELTUNNEL = 0x79
|
||||
RTM_DELVLAN = 0x71
|
||||
RTM_F_CLONED = 0x200
|
||||
RTM_F_EQUALIZE = 0x400
|
||||
@@ -2334,8 +2698,9 @@ const (
|
||||
RTM_GETSTATS = 0x5e
|
||||
RTM_GETTCLASS = 0x2a
|
||||
RTM_GETTFILTER = 0x2e
|
||||
RTM_GETTUNNEL = 0x7a
|
||||
RTM_GETVLAN = 0x72
|
||||
RTM_MAX = 0x77
|
||||
RTM_MAX = 0x7b
|
||||
RTM_NEWACTION = 0x30
|
||||
RTM_NEWADDR = 0x14
|
||||
RTM_NEWADDRLABEL = 0x48
|
||||
@@ -2359,11 +2724,13 @@ const (
|
||||
RTM_NEWSTATS = 0x5c
|
||||
RTM_NEWTCLASS = 0x28
|
||||
RTM_NEWTFILTER = 0x2c
|
||||
RTM_NR_FAMILIES = 0x1a
|
||||
RTM_NR_MSGTYPES = 0x68
|
||||
RTM_NEWTUNNEL = 0x78
|
||||
RTM_NR_FAMILIES = 0x1b
|
||||
RTM_NR_MSGTYPES = 0x6c
|
||||
RTM_SETDCB = 0x4f
|
||||
RTM_SETLINK = 0x13
|
||||
RTM_SETNEIGHTBL = 0x43
|
||||
RTM_SETSTATS = 0x5f
|
||||
RTNH_ALIGNTO = 0x4
|
||||
RTNH_COMPARE_MASK = 0x59
|
||||
RTNH_F_DEAD = 0x1
|
||||
@@ -2544,6 +2911,9 @@ const (
|
||||
SOCK_RDM = 0x4
|
||||
SOCK_SEQPACKET = 0x5
|
||||
SOCK_SNDBUF_LOCK = 0x1
|
||||
SOCK_TXREHASH_DEFAULT = 0xff
|
||||
SOCK_TXREHASH_DISABLED = 0x0
|
||||
SOCK_TXREHASH_ENABLED = 0x1
|
||||
SOL_AAL = 0x109
|
||||
SOL_ALG = 0x117
|
||||
SOL_ATM = 0x108
|
||||
@@ -2559,6 +2929,8 @@ const (
|
||||
SOL_IUCV = 0x115
|
||||
SOL_KCM = 0x119
|
||||
SOL_LLC = 0x10c
|
||||
SOL_MCTP = 0x11d
|
||||
SOL_MPTCP = 0x11c
|
||||
SOL_NETBEUI = 0x10b
|
||||
SOL_NETLINK = 0x10e
|
||||
SOL_NFC = 0x118
|
||||
@@ -2568,6 +2940,7 @@ const (
|
||||
SOL_RAW = 0xff
|
||||
SOL_RDS = 0x114
|
||||
SOL_RXRPC = 0x110
|
||||
SOL_SMC = 0x11e
|
||||
SOL_TCP = 0x6
|
||||
SOL_TIPC = 0x10f
|
||||
SOL_TLS = 0x11a
|
||||
@@ -2674,7 +3047,7 @@ const (
|
||||
TASKSTATS_GENL_NAME = "TASKSTATS"
|
||||
TASKSTATS_GENL_VERSION = 0x1
|
||||
TASKSTATS_TYPE_MAX = 0x6
|
||||
TASKSTATS_VERSION = 0xb
|
||||
TASKSTATS_VERSION = 0xd
|
||||
TCIFLUSH = 0x0
|
||||
TCIOFF = 0x2
|
||||
TCIOFLUSH = 0x2
|
||||
|
||||
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
generated
vendored
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
generated
vendored
@@ -326,6 +326,7 @@ const (
|
||||
SO_RCVBUF = 0x8
|
||||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
@@ -350,6 +351,7 @@ const (
|
||||
SO_TIMESTAMPNS_NEW = 0x40
|
||||
SO_TIMESTAMPNS_OLD = 0x23
|
||||
SO_TIMESTAMP_NEW = 0x3f
|
||||
SO_TXREHASH = 0x4a
|
||||
SO_TXTIME = 0x3d
|
||||
SO_TYPE = 0x3
|
||||
SO_WIFI_STATUS = 0x29
|
||||
|
||||
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
generated
vendored
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
generated
vendored
@@ -327,6 +327,7 @@ const (
|
||||
SO_RCVBUF = 0x8
|
||||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
@@ -351,6 +352,7 @@ const (
|
||||
SO_TIMESTAMPNS_NEW = 0x40
|
||||
SO_TIMESTAMPNS_OLD = 0x23
|
||||
SO_TIMESTAMP_NEW = 0x3f
|
||||
SO_TXREHASH = 0x4a
|
||||
SO_TXTIME = 0x3d
|
||||
SO_TYPE = 0x3
|
||||
SO_WIFI_STATUS = 0x29
|
||||
|
||||
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
generated
vendored
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
generated
vendored
@@ -333,6 +333,7 @@ const (
|
||||
SO_RCVBUF = 0x8
|
||||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
@@ -357,6 +358,7 @@ const (
|
||||
SO_TIMESTAMPNS_NEW = 0x40
|
||||
SO_TIMESTAMPNS_OLD = 0x23
|
||||
SO_TIMESTAMP_NEW = 0x3f
|
||||
SO_TXREHASH = 0x4a
|
||||
SO_TXTIME = 0x3d
|
||||
SO_TYPE = 0x3
|
||||
SO_WIFI_STATUS = 0x29
|
||||
|
||||
3
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
generated
vendored
3
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
generated
vendored
@@ -323,6 +323,7 @@ const (
|
||||
SO_RCVBUF = 0x8
|
||||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
@@ -347,6 +348,7 @@ const (
|
||||
SO_TIMESTAMPNS_NEW = 0x40
|
||||
SO_TIMESTAMPNS_OLD = 0x23
|
||||
SO_TIMESTAMP_NEW = 0x3f
|
||||
SO_TXREHASH = 0x4a
|
||||
SO_TXTIME = 0x3d
|
||||
SO_TYPE = 0x3
|
||||
SO_WIFI_STATUS = 0x29
|
||||
@@ -511,6 +513,7 @@ const (
|
||||
WORDSIZE = 0x40
|
||||
XCASE = 0x4
|
||||
XTABS = 0x1800
|
||||
ZA_MAGIC = 0x54366345
|
||||
_HIDIOCGRAWNAME = 0x80804804
|
||||
_HIDIOCGRAWPHYS = 0x80404805
|
||||
_HIDIOCGRAWUNIQ = 0x80404808
|
||||
|
||||
4
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
generated
vendored
4
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
generated
vendored
@@ -109,8 +109,6 @@ const (
|
||||
IUCLC = 0x200
|
||||
IXOFF = 0x1000
|
||||
IXON = 0x400
|
||||
LASX_CTX_MAGIC = 0x41535801
|
||||
LSX_CTX_MAGIC = 0x53580001
|
||||
MAP_ANON = 0x20
|
||||
MAP_ANONYMOUS = 0x20
|
||||
MAP_DENYWRITE = 0x800
|
||||
@@ -319,6 +317,7 @@ const (
|
||||
SO_RCVBUF = 0x8
|
||||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
@@ -343,6 +342,7 @@ const (
|
||||
SO_TIMESTAMPNS_NEW = 0x40
|
||||
SO_TIMESTAMPNS_OLD = 0x23
|
||||
SO_TIMESTAMP_NEW = 0x3f
|
||||
SO_TXREHASH = 0x4a
|
||||
SO_TXTIME = 0x3d
|
||||
SO_TYPE = 0x3
|
||||
SO_WIFI_STATUS = 0x29
|
||||
|
||||
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
generated
vendored
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
generated
vendored
@@ -326,6 +326,7 @@ const (
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x1006
|
||||
@@ -351,6 +352,7 @@ const (
|
||||
SO_TIMESTAMPNS_NEW = 0x40
|
||||
SO_TIMESTAMPNS_OLD = 0x23
|
||||
SO_TIMESTAMP_NEW = 0x3f
|
||||
SO_TXREHASH = 0x4a
|
||||
SO_TXTIME = 0x3d
|
||||
SO_TYPE = 0x1008
|
||||
SO_WIFI_STATUS = 0x29
|
||||
|
||||
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
generated
vendored
2
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
generated
vendored
@@ -326,6 +326,7 @@ const (
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x1006
|
||||
@@ -351,6 +352,7 @@ const (
|
||||
SO_TIMESTAMPNS_NEW = 0x40
|
||||
SO_TIMESTAMPNS_OLD = 0x23
|
||||
SO_TIMESTAMP_NEW = 0x3f
|
||||
SO_TXREHASH = 0x4a
|
||||
SO_TXTIME = 0x3d
|
||||
SO_TYPE = 0x1008
|
||||
SO_WIFI_STATUS = 0x29
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user