[dev.typeparams] all: merge master (06b86e9) into dev.typeparams

Merge List:

+ 2021-02-19 06b86e9803 cmd/compile:  fix check to avoid creating new closure function when typechecking inline body
+ 2021-02-19 9322eec8a2 codereview.cfg: add codereview.cfg for master branch
+ 2021-02-19 02e5a8fdfc runtime: ignore SPWRITE in syscall functions
+ 2021-02-19 fa18f224c3 runtime/pprof: disable TestMorestack on macOS under race detector
+ 2021-02-19 01eb70e3dd os: fix hex exit code print on 32-bit windows
+ 2021-02-19 49add6ad90 runtime: fix spurious stack overflow detection
+ 2021-02-19 fce2a94d84 cmd/compile: fix buglet in inlined info abstract function dwarf-gen
+ 2021-02-19 7764ee5614 runtime: fix invalid nil g check for for mips64x
+ 2021-02-19 87f425da14 cmd/go/internal/mvs: split Reqs into narrower per-function interfaces
+ 2021-02-19 4da0188c6c cmd/go/internal/modget: split resolveCandidates into two methods
+ 2021-02-19 5f2e24efb3 cmd/internal/diff: skip over Cygwin warning in diff output
+ 2021-02-19 ee7038f6a5 net: disable Windows netsh tests when netsh won't run
+ 2021-02-19 40765ffa95 os/exec: disable failing LookPathTest on windows/arm64
+ 2021-02-19 b445d6ea34 runtime/pprof: expect tests to pass on macOS
+ 2021-02-19 b110a43628 runtime: delete gosave (dead code)
+ 2021-02-19 474d5f4f4d math: remove most 387 implementations
+ 2021-02-19 c7c6c113be runtime: convert windows/arm64 assembly
+ 2021-02-19 3527caa7d6 runtime: initial windows/arm64 implementation files
+ 2021-02-19 427bd7599d runtime: generate windows/arm64 callback asm
+ 2021-02-19 f6c4b4bf96 syscall: add windows/arm64 support
+ 2021-02-19 ac024a0c7b cmd/vendor: get golang.org/x/sys@beda7e5e158
+ 2021-02-19 a3b97e7628 test: disable nilptr on windows/arm64
+ 2021-02-19 985d087782 cmd/link: add windows/arm64 support
+ 2021-02-19 95a44d2409 cmd/internal/objfile: recognize Windows ARM64 executables
+ 2021-02-19 0ca0551f02 debug/pe: recognize arm64 executables
+ 2021-02-19 0c633125f2 cmd/dist: add windows/arm64 support
+ 2021-02-19 bb6efb9609 build: set GOPATH consistently in run.bash, run.bat, run.rc
+ 2021-02-19 a1222b7535 cmd/link: add debug print in deadcode
+ 2021-02-19 1c659f2525 cmd/link: clean up windows PE generation
+ 2021-02-19 b6379f190b syscall: clean up windows a bit
+ 2021-02-19 09e059afb1 runtime: enable framepointer on all arm64
+ 2021-02-19 b19e7b518e runtime: clean up windows a bit
+ 2021-02-19 5421c37a1d runtime: fix windows/arm externalthreadhandler
+ 2021-02-19 91cc484ea9 runtime: fix time on windows/arm under WINE
+ 2021-02-19 38672d3dcf runtime: crash earlier on windows for runtime.abort
+ 2021-02-19 a1e9148e3d runtime: print hex numbers with hex prefixes in traceback debug
+ 2021-02-19 75e273fc2c runtime: fix windows/arm CONTEXT_CONTROL
+ 2021-02-19 76ab626bfc runtime: factor common code out of defs_windows_*.go
+ 2021-02-19 ece954d8b8 runtime: find g in Windows profiler using SP
+ 2021-02-19 a54f7fc0fd runtime: do not treat asmcgocall as a topofstack on g0
+ 2021-02-19 776ee4079a runtime: do not treat morestack as a topofstack
+ 2021-02-19 5ecd9e34df runtime: do not treat mcall as a topofstack
+ 2021-02-19 54da3ab385 runtime: use TOPFRAME to identify top-of-frame functions
+ 2021-02-19 fbe74dbf42 runtime: use FuncInfo SPWRITE flag to identify untraceable profile samples
+ 2021-02-19 4dd77bdc91 cmd/asm, cmd/link, runtime: introduce FuncInfo flag bits
+ 2021-02-19 aa0388f2ed runtime: remove unnecessary writes to gp.sched.g
+ 2021-02-19 6fe8981620 cmd/internal/obj/riscv: fix JMP name<>(SB)
+ 2021-02-19 01f05d8ff1 runtime: unify asmcgocall and systemstack traceback setup
+ 2021-02-19 229695a283 runtime: clean up funcID assignment
+ 2021-02-19 c80da0a33a runtime: handle nil gp in cpuprof
+ 2021-02-19 a78879ac67 runtime: move sys.DefaultGoroot to runtime.defaultGOROOT
+ 2021-02-19 8ac23a1f15 runtime: document, clean up internal/sys
+ 2021-02-19 678568a5cf runtime: delete windows setlasterror (unused)
+ 2021-02-19 0d94f989d1 runtime: clean up system calls during cgo callback init
+ 2021-02-19 e7ee3c1fa8 os: report Windows exit status in hex

Change-Id: Ib27e232dabac0604b588f27749bd8ad45a281fe3
This commit is contained in:
Robert Griesemer 2021-02-19 11:56:01 -08:00
commit 7cdfa4969a
269 changed files with 8781 additions and 2729 deletions

View file

@ -182,7 +182,7 @@ func testCallbackCallers(t *testing.T) {
"runtime.cgocallbackg1", "runtime.cgocallbackg1",
"runtime.cgocallbackg", "runtime.cgocallbackg",
"runtime.cgocallback", "runtime.cgocallback",
"runtime.asmcgocall", "runtime.systemstack_switch",
"runtime.cgocall", "runtime.cgocall",
"test._Cfunc_callback", "test._Cfunc_callback",
"test.nestedCall.func1", "test.nestedCall.func1",

View file

@ -36,6 +36,7 @@ func testEndToEnd(t *testing.T, goarch, file string) {
var ok bool var ok bool
testOut = new(bytes.Buffer) // The assembler writes test output to this buffer. testOut = new(bytes.Buffer) // The assembler writes test output to this buffer.
ctxt.Bso = bufio.NewWriter(os.Stdout) ctxt.Bso = bufio.NewWriter(os.Stdout)
ctxt.IsAsm = true
defer ctxt.Bso.Flush() defer ctxt.Bso.Flush()
failed := false failed := false
ctxt.DiagFunc = func(format string, args ...interface{}) { ctxt.DiagFunc = func(format string, args ...interface{}) {
@ -278,6 +279,7 @@ func testErrors(t *testing.T, goarch, file string) {
var ok bool var ok bool
testOut = new(bytes.Buffer) // The assembler writes test output to this buffer. testOut = new(bytes.Buffer) // The assembler writes test output to this buffer.
ctxt.Bso = bufio.NewWriter(os.Stdout) ctxt.Bso = bufio.NewWriter(os.Stdout)
ctxt.IsAsm = true
defer ctxt.Bso.Flush() defer ctxt.Bso.Flush()
failed := false failed := false
var errBuf bytes.Buffer var errBuf bytes.Buffer

View file

@ -32,11 +32,13 @@ var (
D MultiFlag D MultiFlag
I MultiFlag I MultiFlag
PrintOut int PrintOut int
DebugV bool
) )
func init() { func init() {
flag.Var(&D, "D", "predefined symbol with optional simple value -D=identifier=value; can be set multiple times") flag.Var(&D, "D", "predefined symbol with optional simple value -D=identifier=value; can be set multiple times")
flag.Var(&I, "I", "include directory; can be set multiple times") flag.Var(&I, "I", "include directory; can be set multiple times")
flag.BoolVar(&DebugV, "v", false, "print debug output")
objabi.AddVersionFlag() // -V objabi.AddVersionFlag() // -V
objabi.Flagcount("S", "print assembly and machine code", &PrintOut) objabi.Flagcount("S", "print assembly and machine code", &PrintOut)
} }

View file

@ -36,6 +36,7 @@ func main() {
ctxt := obj.Linknew(architecture.LinkArch) ctxt := obj.Linknew(architecture.LinkArch)
ctxt.Debugasm = flags.PrintOut ctxt.Debugasm = flags.PrintOut
ctxt.Debugvlog = flags.DebugV
ctxt.Flag_dynlink = *flags.Dynlink ctxt.Flag_dynlink = *flags.Dynlink
ctxt.Flag_linkshared = *flags.Linkshared ctxt.Flag_linkshared = *flags.Linkshared
ctxt.Flag_shared = *flags.Shared || *flags.Dynlink ctxt.Flag_shared = *flags.Shared || *flags.Dynlink

View file

@ -271,8 +271,7 @@ func createSimpleVar(fnsym *obj.LSym, n *ir.Name) *dwarf.Var {
if base.Ctxt.FixedFrameSize() == 0 { if base.Ctxt.FixedFrameSize() == 0 {
offs -= int64(types.PtrSize) offs -= int64(types.PtrSize)
} }
if objabi.Framepointer_enabled || objabi.GOARCH == "arm64" { if objabi.Framepointer_enabled {
// There is a word space for FP on ARM64 even if the frame pointer is disabled
offs -= int64(types.PtrSize) offs -= int64(types.PtrSize)
} }

View file

@ -37,7 +37,9 @@ func assembleScopes(fnsym *obj.LSym, fn *ir.Func, dwarfVars []*dwarf.Var, varSco
} }
scopeVariables(dwarfVars, varScopes, dwarfScopes) scopeVariables(dwarfVars, varScopes, dwarfScopes)
if fnsym.Func().Text != nil {
scopePCs(fnsym, fn.Marks, dwarfScopes) scopePCs(fnsym, fn.Marks, dwarfScopes)
}
return compactScopes(dwarfScopes) return compactScopes(dwarfScopes)
} }

View file

@ -213,8 +213,7 @@ func StackOffset(slot ssa.LocalSlot) int32 {
if base.Ctxt.FixedFrameSize() == 0 { if base.Ctxt.FixedFrameSize() == 0 {
off -= int64(types.PtrSize) off -= int64(types.PtrSize)
} }
if objabi.Framepointer_enabled || objabi.GOARCH == "arm64" { if objabi.Framepointer_enabled {
// There is a word space for FP on ARM64 even if the frame pointer is disabled
off -= int64(types.PtrSize) off -= int64(types.PtrSize)
} }
case ir.PPARAM, ir.PPARAMOUT: case ir.PPARAM, ir.PPARAMOUT:

View file

@ -75,7 +75,7 @@ func TestIssue16214(t *testing.T) {
cmd := exec.Command(testenv.GoToolPath(t), "tool", "compile", "-S", "-o", filepath.Join(dir, "out.o"), src) cmd := exec.Command(testenv.GoToolPath(t), "tool", "compile", "-S", "-o", filepath.Join(dir, "out.o"), src)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
t.Fatalf("fail to run go tool compile: %v", err) t.Fatalf("go tool compile: %v\n%s", err, out)
} }
if strings.Contains(string(out), "unknown line number") { if strings.Contains(string(out), "unknown line number") {

View file

@ -50,7 +50,7 @@ func main() {
cmd := exec.Command(testenv.GoToolPath(t), "build", "-o", dst, src) cmd := exec.Command(testenv.GoToolPath(t), "build", "-o", dst, src)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
t.Fatalf("could not build target: %v", err) t.Fatalf("could not build target: %v\n%s", err, out)
} }
// Check destination to see if scanf code was included. // Check destination to see if scanf code was included.
@ -95,7 +95,7 @@ func main() {
cmd := exec.Command(testenv.GoToolPath(t), "build", "-gcflags", "-S", "-o", filepath.Join(dir, "test"), src) cmd := exec.Command(testenv.GoToolPath(t), "build", "-gcflags", "-S", "-o", filepath.Join(dir, "test"), src)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
t.Fatalf("could not build target: %v", err) t.Fatalf("could not build target: %v\n%s", err, out)
} }
patterns := []string{ patterns := []string{

View file

@ -100,6 +100,11 @@ func PartialCallType(n *ir.SelectorExpr) *types.Type {
return t return t
} }
// True if we are typechecking an inline body in ImportedBody below. We use this
// flag to not create a new closure function in tcClosure when we are just
// typechecking an inline body, as opposed to the body of a real function.
var inTypeCheckInl bool
// Lazy typechecking of imported bodies. For local functions, CanInline will set ->typecheck // Lazy typechecking of imported bodies. For local functions, CanInline will set ->typecheck
// because they're a copy of an already checked body. // because they're a copy of an already checked body.
func ImportedBody(fn *ir.Func) { func ImportedBody(fn *ir.Func) {
@ -138,7 +143,12 @@ func ImportedBody(fn *ir.Func) {
savefn := ir.CurFunc savefn := ir.CurFunc
ir.CurFunc = fn ir.CurFunc = fn
if inTypeCheckInl {
base.Fatalf("inTypeCheckInl should not be set recursively")
}
inTypeCheckInl = true
Stmts(fn.Inl.Body) Stmts(fn.Inl.Body)
inTypeCheckInl = false
ir.CurFunc = savefn ir.CurFunc = savefn
// During ImportBody (which imports fn.Func.Inl.Body), // During ImportBody (which imports fn.Func.Inl.Body),
@ -307,7 +317,6 @@ func tcClosure(clo *ir.ClosureExpr, top int) {
// body in ImportedBody(), since we only want to create the named function // body in ImportedBody(), since we only want to create the named function
// when the closure is actually inlined (and then we force a typecheck // when the closure is actually inlined (and then we force a typecheck
// explicitly in (*inlsubst).node()). // explicitly in (*inlsubst).node()).
inTypeCheckInl := ir.CurFunc != nil && ir.CurFunc.Body == nil
if !inTypeCheckInl { if !inTypeCheckInl {
fn.Nname.SetSym(ClosureName(ir.CurFunc)) fn.Nname.SetSym(ClosureName(ir.CurFunc))
ir.MarkFunc(fn.Nname) ir.MarkFunc(fn.Nname)

View file

@ -1575,6 +1575,7 @@ var cgoEnabled = map[string]bool{
"windows/386": true, "windows/386": true,
"windows/amd64": true, "windows/amd64": true,
"windows/arm": false, "windows/arm": false,
"windows/arm64": false,
} }
// List of platforms which are supported but not complete yet. These get // List of platforms which are supported but not complete yet. These get

View file

@ -29,10 +29,13 @@ type systeminfo struct {
wProcessorRevision uint16 wProcessorRevision uint16
} }
// See https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/ns-sysinfoapi-system_info
const ( const (
PROCESSOR_ARCHITECTURE_AMD64 = 9 PROCESSOR_ARCHITECTURE_AMD64 = 9
PROCESSOR_ARCHITECTURE_INTEL = 0 PROCESSOR_ARCHITECTURE_INTEL = 0
PROCESSOR_ARCHITECTURE_ARM = 5 PROCESSOR_ARCHITECTURE_ARM = 5
PROCESSOR_ARCHITECTURE_ARM64 = 12
PROCESSOR_ARCHITECTURE_IA64 = 6
) )
var sysinfo systeminfo var sysinfo systeminfo
@ -46,6 +49,8 @@ func sysinit() {
gohostarch = "386" gohostarch = "386"
case PROCESSOR_ARCHITECTURE_ARM: case PROCESSOR_ARCHITECTURE_ARM:
gohostarch = "arm" gohostarch = "arm"
case PROCESSOR_ARCHITECTURE_ARM64:
gohostarch = "arm64"
default: default:
fatalf("unknown processor architecture") fatalf("unknown processor architecture")
} }

View file

@ -7,6 +7,6 @@ require (
golang.org/x/arch v0.0.0-20201008161808-52c3e6f60cff golang.org/x/arch v0.0.0-20201008161808-52c3e6f60cff
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897
golang.org/x/mod v0.4.1 golang.org/x/mod v0.4.1
golang.org/x/sys v0.0.0-20201204225414-ed752295db88 // indirect golang.org/x/sys v0.0.0-20210218145245-beda7e5e158e // indirect
golang.org/x/tools v0.0.0-20210107193943-4ed967dd8eff golang.org/x/tools v0.0.0-20210107193943-4ed967dd8eff
) )

View file

@ -25,8 +25,8 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201204225414-ed752295db88 h1:KmZPnMocC93w341XZp26yTJg8Za7lhb2KhkYmixoeso= golang.org/x/sys v0.0.0-20210218145245-beda7e5e158e h1:f5mksnk+hgXHnImpZoWj64ja99j9zV7YUgrVG95uFE4=
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210218145245-beda7e5e158e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

View file

@ -310,7 +310,7 @@ func runGet(ctx context.Context, cmd *base.Command, args []string) {
r.performWildcardQueries(ctx) r.performWildcardQueries(ctx)
r.performPatternAllQueries(ctx) r.performPatternAllQueries(ctx)
if changed := r.resolveCandidates(ctx, queries, nil); changed { if changed := r.resolveQueries(ctx, queries); changed {
// 'go get' arguments can be (and often are) package patterns rather than // 'go get' arguments can be (and often are) package patterns rather than
// (just) modules. A package can be provided by any module with a prefix // (just) modules. A package can be provided by any module with a prefix
// of its import path, and a wildcard can even match packages in modules // of its import path, and a wildcard can even match packages in modules
@ -347,12 +347,12 @@ func runGet(ctx context.Context, cmd *base.Command, args []string) {
// - ambiguous import errors. // - ambiguous import errors.
// TODO(#27899): Try to resolve ambiguous import errors automatically. // TODO(#27899): Try to resolve ambiguous import errors automatically.
upgrades := r.findAndUpgradeImports(ctx, queries) upgrades := r.findAndUpgradeImports(ctx, queries)
if changed := r.resolveCandidates(ctx, nil, upgrades); changed { if changed := r.applyUpgrades(ctx, upgrades); changed {
continue continue
} }
r.findMissingWildcards(ctx) r.findMissingWildcards(ctx)
if changed := r.resolveCandidates(ctx, r.wildcardQueries, nil); changed { if changed := r.resolveQueries(ctx, r.wildcardQueries); changed {
continue continue
} }
@ -461,7 +461,6 @@ type resolver struct {
resolvedVersion map[string]versionReason resolvedVersion map[string]versionReason
buildList []module.Version buildList []module.Version
buildListResolvedVersions int // len(resolvedVersion) when buildList was computed
buildListVersion map[string]string // index of buildList (module path → version) buildListVersion map[string]string // index of buildList (module path → version)
initialVersion map[string]string // index of the initial build list at the start of 'go get' initialVersion map[string]string // index of the initial build list at the start of 'go get'
@ -1176,24 +1175,19 @@ func (r *resolver) loadPackages(ctx context.Context, patterns []string, findPack
// to be updated before its dependencies can be loaded. // to be updated before its dependencies can be loaded.
var errVersionChange = errors.New("version change needed") var errVersionChange = errors.New("version change needed")
// resolveCandidates resolves candidates sets that are attached to the given // resolveQueries resolves candidate sets that are attached to the given
// queries and/or needed to provide the given missing-package dependencies. // queries and/or needed to provide the given missing-package dependencies.
// //
// resolveCandidates starts by resolving one module version from each // resolveQueries starts by resolving one module version from each
// unambiguous pathSet attached to the given queries. // unambiguous pathSet attached to the given queries.
// //
// If no unambiguous query results in a change to the build list, // If no unambiguous query results in a change to the build list,
// resolveCandidates modifies the build list by adding one module version from // resolveQueries revisits the ambiguous query candidates and resolves them
// each pathSet in missing, but does not mark those versions as resolved
// (so they can still be modified by other queries).
//
// If that still does not result in any changes to the build list,
// resolveCandidates revisits the ambiguous query candidates and resolves them
// arbitrarily in order to guarantee forward progress. // arbitrarily in order to guarantee forward progress.
// //
// If all pathSets are resolved without any changes to the build list, // If all pathSets are resolved without any changes to the build list,
// resolveCandidates returns with changed=false. // resolveQueries returns with changed=false.
func (r *resolver) resolveCandidates(ctx context.Context, queries []*query, upgrades []pathSet) (changed bool) { func (r *resolver) resolveQueries(ctx context.Context, queries []*query) (changed bool) {
defer base.ExitIfErrors() defer base.ExitIfErrors()
// Note: this is O(N²) with the number of pathSets in the worst case. // Note: this is O(N²) with the number of pathSets in the worst case.
@ -1247,12 +1241,52 @@ func (r *resolver) resolveCandidates(ctx context.Context, queries []*query, upgr
} }
} }
if changed := r.updateBuildList(ctx, nil); changed { if resolved > 0 {
// The build list has changed, so disregard any missing packages: they might if changed = r.updateBuildList(ctx, nil); changed {
// now be determined by requirements in the build list, which we would // The build list has changed, so disregard any remaining ambiguous queries:
// prefer to use instead of arbitrary "latest" versions. // they might now be determined by requirements in the build list, which we
// would prefer to use instead of arbitrary versions.
return true return true
} }
}
// The build list will be the same on the next iteration as it was on this
// iteration, so any ambiguous queries will remain so. In order to make
// progress, resolve them arbitrarily but deterministically.
//
// If that results in conflicting versions, the user can re-run 'go get'
// with additional explicit versions for the conflicting packages or
// modules.
resolvedArbitrarily := 0
for _, q := range queries {
for _, cs := range q.candidates {
isPackage, m := r.chooseArbitrarily(cs)
if isPackage {
q.matchesPackages = true
}
r.resolve(q, m)
resolvedArbitrarily++
}
}
if resolvedArbitrarily > 0 {
changed = r.updateBuildList(ctx, nil)
}
return changed
}
// applyUpgrades disambiguates candidate sets that are needed to upgrade (or
// provide) transitive dependencies imported by previously-resolved packages.
//
// applyUpgrades modifies the build list by adding one module version from each
// pathSet in upgrades, then downgrading (or further upgrading) those modules as
// needed to maintain any already-resolved versions of other modules.
// applyUpgrades does not mark the new versions as resolved, so they can still
// be further modified by other queries (such as wildcards).
//
// If all pathSets are resolved without any changes to the build list,
// applyUpgrades returns with changed=false.
func (r *resolver) applyUpgrades(ctx context.Context, upgrades []pathSet) (changed bool) {
defer base.ExitIfErrors()
// Arbitrarily add a "latest" version that provides each missing package, but // Arbitrarily add a "latest" version that provides each missing package, but
// do not mark the version as resolved: we still want to allow the explicit // do not mark the version as resolved: we still want to allow the explicit
@ -1276,27 +1310,9 @@ func (r *resolver) resolveCandidates(ctx context.Context, queries []*query, upgr
tentative = append(tentative, m) tentative = append(tentative, m)
} }
base.ExitIfErrors() base.ExitIfErrors()
if changed := r.updateBuildList(ctx, tentative); changed {
return true
}
// The build list will be the same on the next iteration as it was on this changed = r.updateBuildList(ctx, tentative)
// iteration, so any ambiguous queries will remain so. In order to make return changed
// progress, resolve them arbitrarily but deterministically.
//
// If that results in conflicting versions, the user can re-run 'go get'
// with additional explicit versions for the conflicting packages or
// modules.
for _, q := range queries {
for _, cs := range q.candidates {
isPackage, m := r.chooseArbitrarily(cs)
if isPackage {
q.matchesPackages = true
}
r.resolve(q, m)
}
}
return r.updateBuildList(ctx, nil)
} }
// disambiguate eliminates candidates from cs that conflict with other module // disambiguate eliminates candidates from cs that conflict with other module
@ -1614,11 +1630,10 @@ func (r *resolver) resolve(q *query, m module.Version) {
// //
// If the additional modules conflict with the resolved versions, they will be // If the additional modules conflict with the resolved versions, they will be
// downgraded to a non-conflicting version (possibly "none"). // downgraded to a non-conflicting version (possibly "none").
//
// If the resulting build list is the same as the one resulting from the last
// call to updateBuildList, updateBuildList returns with changed=false.
func (r *resolver) updateBuildList(ctx context.Context, additions []module.Version) (changed bool) { func (r *resolver) updateBuildList(ctx context.Context, additions []module.Version) (changed bool) {
if len(additions) == 0 && len(r.resolvedVersion) == r.buildListResolvedVersions {
return false
}
defer base.ExitIfErrors() defer base.ExitIfErrors()
resolved := make([]module.Version, 0, len(r.resolvedVersion)) resolved := make([]module.Version, 0, len(r.resolvedVersion))
@ -1649,7 +1664,6 @@ func (r *resolver) updateBuildList(ctx context.Context, additions []module.Versi
} }
buildList := modload.LoadAllModules(ctx) buildList := modload.LoadAllModules(ctx)
r.buildListResolvedVersions = len(r.resolvedVersion)
if reflect.DeepEqual(r.buildList, buildList) { if reflect.DeepEqual(r.buildList, buildList) {
return false return false
} }

View file

@ -41,6 +41,11 @@ type Reqs interface {
// Note that v1 < v2 can be written Max(v1, v2) != v1 // Note that v1 < v2 can be written Max(v1, v2) != v1
// and similarly v1 <= v2 can be written Max(v1, v2) == v2. // and similarly v1 <= v2 can be written Max(v1, v2) == v2.
Max(v1, v2 string) string Max(v1, v2 string) string
}
// An UpgradeReqs is a Reqs that can also identify available upgrades.
type UpgradeReqs interface {
Reqs
// Upgrade returns the upgraded version of m, // Upgrade returns the upgraded version of m,
// for use during an UpgradeAll operation. // for use during an UpgradeAll operation.
@ -54,6 +59,11 @@ type Reqs interface {
// TODO(rsc): Upgrade must be able to return errors, // TODO(rsc): Upgrade must be able to return errors,
// but should "no latest version" just return m instead? // but should "no latest version" just return m instead?
Upgrade(m module.Version) (module.Version, error) Upgrade(m module.Version) (module.Version, error)
}
// A DowngradeReqs is a Reqs that can also identify available downgrades.
type DowngradeReqs interface {
Reqs
// Previous returns the version of m.Path immediately prior to m.Version, // Previous returns the version of m.Path immediately prior to m.Version,
// or "none" if no such version is known. // or "none" if no such version is known.
@ -323,7 +333,7 @@ func Req(target module.Version, base []string, reqs Reqs) ([]module.Version, err
// UpgradeAll returns a build list for the target module // UpgradeAll returns a build list for the target module
// in which every module is upgraded to its latest version. // in which every module is upgraded to its latest version.
func UpgradeAll(target module.Version, reqs Reqs) ([]module.Version, error) { func UpgradeAll(target module.Version, reqs UpgradeReqs) ([]module.Version, error) {
return buildList(target, reqs, func(m module.Version) (module.Version, error) { return buildList(target, reqs, func(m module.Version) (module.Version, error) {
if m.Path == target.Path { if m.Path == target.Path {
return target, nil return target, nil
@ -335,7 +345,7 @@ func UpgradeAll(target module.Version, reqs Reqs) ([]module.Version, error) {
// Upgrade returns a build list for the target module // Upgrade returns a build list for the target module
// in which the given additional modules are upgraded. // in which the given additional modules are upgraded.
func Upgrade(target module.Version, reqs Reqs, upgrade ...module.Version) ([]module.Version, error) { func Upgrade(target module.Version, reqs UpgradeReqs, upgrade ...module.Version) ([]module.Version, error) {
list, err := reqs.Required(target) list, err := reqs.Required(target)
if err != nil { if err != nil {
return nil, err return nil, err
@ -374,7 +384,7 @@ func Upgrade(target module.Version, reqs Reqs, upgrade ...module.Version) ([]mod
// The versions to be downgraded may be unreachable from reqs.Latest and // The versions to be downgraded may be unreachable from reqs.Latest and
// reqs.Previous, but the methods of reqs must otherwise handle such versions // reqs.Previous, but the methods of reqs must otherwise handle such versions
// correctly. // correctly.
func Downgrade(target module.Version, reqs Reqs, downgrade ...module.Version) ([]module.Version, error) { func Downgrade(target module.Version, reqs DowngradeReqs, downgrade ...module.Version) ([]module.Version, error) {
// Per https://research.swtch.com/vgo-mvs#algorithm_4: // Per https://research.swtch.com/vgo-mvs#algorithm_4:
// “To avoid an unnecessary downgrade to E 1.1, we must also add a new // “To avoid an unnecessary downgrade to E 1.1, we must also add a new
// requirement on E 1.2. We can apply Algorithm R to find the minimal set of // requirement on E 1.2. We can apply Algorithm R to find the minimal set of

View file

@ -7,6 +7,7 @@
package diff package diff
import ( import (
"bytes"
exec "internal/execabs" exec "internal/execabs"
"io/ioutil" "io/ioutil"
"os" "os"
@ -38,6 +39,25 @@ func Diff(prefix string, b1, b2 []byte) ([]byte, error) {
// Ignore that failure as long as we get output. // Ignore that failure as long as we get output.
err = nil err = nil
} }
// If we are on Windows and the diff is Cygwin diff,
// machines can get into a state where every Cygwin
// command works fine but prints a useless message like:
//
// Cygwin WARNING:
// Couldn't compute FAST_CWD pointer. This typically occurs if you're using
// an older Cygwin version on a newer Windows. Please update to the latest
// available Cygwin version from https://cygwin.com/. If the problem persists,
// please see https://cygwin.com/problems.html
//
// Skip over that message and just return the actual diff.
if len(data) > 0 && !bytes.HasPrefix(data, []byte("--- ")) {
i := bytes.Index(data, []byte("\n--- "))
if i >= 0 && i < 80*10 && bytes.Contains(data[:i], []byte("://cygwin.com/")) {
data = data[i+1:]
}
}
return data, err return data, err
} }

View file

@ -22,6 +22,7 @@ type FuncInfo struct {
Args uint32 Args uint32
Locals uint32 Locals uint32
FuncID objabi.FuncID FuncID objabi.FuncID
FuncFlag objabi.FuncFlag
Pcsp SymRef Pcsp SymRef
Pcfile SymRef Pcfile SymRef
@ -35,6 +36,9 @@ type FuncInfo struct {
} }
func (a *FuncInfo) Write(w *bytes.Buffer) { func (a *FuncInfo) Write(w *bytes.Buffer) {
writeUint8 := func(x uint8) {
w.WriteByte(x)
}
var b [4]byte var b [4]byte
writeUint32 := func(x uint32) { writeUint32 := func(x uint32) {
binary.LittleEndian.PutUint32(b[:], x) binary.LittleEndian.PutUint32(b[:], x)
@ -47,8 +51,10 @@ func (a *FuncInfo) Write(w *bytes.Buffer) {
writeUint32(a.Args) writeUint32(a.Args)
writeUint32(a.Locals) writeUint32(a.Locals)
writeUint32(uint32(a.FuncID)) writeUint8(uint8(a.FuncID))
writeUint8(uint8(a.FuncFlag))
writeUint8(0) // pad to uint32 boundary
writeUint8(0)
writeSymRef(a.Pcsp) writeSymRef(a.Pcsp)
writeSymRef(a.Pcfile) writeSymRef(a.Pcfile)
writeSymRef(a.Pcline) writeSymRef(a.Pcline)
@ -72,46 +78,6 @@ func (a *FuncInfo) Write(w *bytes.Buffer) {
} }
} }
func (a *FuncInfo) Read(b []byte) {
readUint32 := func() uint32 {
x := binary.LittleEndian.Uint32(b)
b = b[4:]
return x
}
readSymIdx := func() SymRef {
return SymRef{readUint32(), readUint32()}
}
a.Args = readUint32()
a.Locals = readUint32()
a.FuncID = objabi.FuncID(readUint32())
a.Pcsp = readSymIdx()
a.Pcfile = readSymIdx()
a.Pcline = readSymIdx()
a.Pcinline = readSymIdx()
a.Pcdata = make([]SymRef, readUint32())
for i := range a.Pcdata {
a.Pcdata[i] = readSymIdx()
}
funcdataofflen := readUint32()
a.Funcdataoff = make([]uint32, funcdataofflen)
for i := range a.Funcdataoff {
a.Funcdataoff[i] = readUint32()
}
filelen := readUint32()
a.File = make([]CUFileIndex, filelen)
for i := range a.File {
a.File[i] = CUFileIndex(readUint32())
}
inltreelen := readUint32()
a.InlTree = make([]InlTreeNode, inltreelen)
for i := range a.InlTree {
b = a.InlTree[i].Read(b)
}
}
// FuncInfoLengths is a cache containing a roadmap of offsets and // FuncInfoLengths is a cache containing a roadmap of offsets and
// lengths for things within a serialized FuncInfo. Each length field // lengths for things within a serialized FuncInfo. Each length field
// stores the number of items (e.g. files, inltree nodes, etc), and the // stores the number of items (e.g. files, inltree nodes, etc), and the
@ -159,7 +125,9 @@ func (*FuncInfo) ReadArgs(b []byte) uint32 { return binary.LittleEndian.Uint32(b
func (*FuncInfo) ReadLocals(b []byte) uint32 { return binary.LittleEndian.Uint32(b[4:]) } func (*FuncInfo) ReadLocals(b []byte) uint32 { return binary.LittleEndian.Uint32(b[4:]) }
func (*FuncInfo) ReadFuncID(b []byte) uint32 { return binary.LittleEndian.Uint32(b[8:]) } func (*FuncInfo) ReadFuncID(b []byte) objabi.FuncID { return objabi.FuncID(b[8]) }
func (*FuncInfo) ReadFuncFlag(b []byte) objabi.FuncFlag { return objabi.FuncFlag(b[9]) }
func (*FuncInfo) ReadPcsp(b []byte) SymRef { func (*FuncInfo) ReadPcsp(b []byte) SymRef {
return SymRef{binary.LittleEndian.Uint32(b[12:]), binary.LittleEndian.Uint32(b[16:])} return SymRef{binary.LittleEndian.Uint32(b[12:]), binary.LittleEndian.Uint32(b[16:])}

View file

@ -298,7 +298,6 @@ const (
SymFlagNoSplit SymFlagNoSplit
SymFlagReflectMethod SymFlagReflectMethod
SymFlagGoType SymFlagGoType
SymFlagTopFrame
) )
// Sym.Flag2 // Sym.Flag2
@ -332,7 +331,6 @@ func (s *Sym) Leaf() bool { return s.Flag()&SymFlagLeaf != 0 }
func (s *Sym) NoSplit() bool { return s.Flag()&SymFlagNoSplit != 0 } func (s *Sym) NoSplit() bool { return s.Flag()&SymFlagNoSplit != 0 }
func (s *Sym) ReflectMethod() bool { return s.Flag()&SymFlagReflectMethod != 0 } func (s *Sym) ReflectMethod() bool { return s.Flag()&SymFlagReflectMethod != 0 }
func (s *Sym) IsGoType() bool { return s.Flag()&SymFlagGoType != 0 } func (s *Sym) IsGoType() bool { return s.Flag()&SymFlagGoType != 0 }
func (s *Sym) TopFrame() bool { return s.Flag()&SymFlagTopFrame != 0 }
func (s *Sym) UsedInIface() bool { return s.Flag2()&SymFlagUsedInIface != 0 } func (s *Sym) UsedInIface() bool { return s.Flag2()&SymFlagUsedInIface != 0 }
func (s *Sym) IsItab() bool { return s.Flag2()&SymFlagItab != 0 } func (s *Sym) IsItab() bool { return s.Flag2()&SymFlagItab != 0 }

View file

@ -34,6 +34,7 @@ import (
"cmd/internal/obj" "cmd/internal/obj"
"cmd/internal/objabi" "cmd/internal/objabi"
"cmd/internal/sys" "cmd/internal/sys"
"log"
) )
var progedit_tlsfallback *obj.LSym var progedit_tlsfallback *obj.LSym
@ -613,6 +614,21 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.From.Reg = REGSP p.From.Reg = REGSP
} }
} }
if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.Spadj == 0 {
f := c.cursym.Func()
if f.FuncFlag&objabi.FuncFlag_SPWRITE == 0 {
c.cursym.Func().FuncFlag |= objabi.FuncFlag_SPWRITE
if ctxt.Debugvlog || !ctxt.IsAsm {
ctxt.Logf("auto-SPWRITE: %s %v\n", c.cursym.Name, p)
if !ctxt.IsAsm {
ctxt.Diag("invalid auto-SPWRITE in non-assembly")
ctxt.DiagFlush()
log.Fatalf("bad SPWRITE")
}
}
}
}
} }
} }

View file

@ -239,7 +239,7 @@ const (
REGCTXT = REG_R26 // environment for closures REGCTXT = REG_R26 // environment for closures
REGTMP = REG_R27 // reserved for liblink REGTMP = REG_R27 // reserved for liblink
REGG = REG_R28 // G REGG = REG_R28 // G
REGFP = REG_R29 // frame pointer, unused in the Go toolchain REGFP = REG_R29 // frame pointer
REGLINK = REG_R30 REGLINK = REG_R30
// ARM64 uses R31 as both stack pointer and zero register, // ARM64 uses R31 as both stack pointer and zero register,

View file

@ -35,6 +35,7 @@ import (
"cmd/internal/objabi" "cmd/internal/objabi"
"cmd/internal/src" "cmd/internal/src"
"cmd/internal/sys" "cmd/internal/sys"
"log"
"math" "math"
) )
@ -621,7 +622,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
prologueEnd.Pos = prologueEnd.Pos.WithXlogue(src.PosPrologueEnd) prologueEnd.Pos = prologueEnd.Pos.WithXlogue(src.PosPrologueEnd)
if objabi.Framepointer_enabled { // Frame pointer.
q1 = obj.Appendp(q1, c.newprog) q1 = obj.Appendp(q1, c.newprog)
q1.Pos = p.Pos q1.Pos = p.Pos
q1.As = AMOVD q1.As = AMOVD
@ -639,7 +640,6 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
q1.Reg = REGSP q1.Reg = REGSP
q1.To.Type = obj.TYPE_REG q1.To.Type = obj.TYPE_REG
q1.To.Reg = REGFP q1.To.Reg = REGFP
}
if c.cursym.Func().Text.From.Sym.Wrapper() { if c.cursym.Func().Text.From.Sym.Wrapper() {
// if(g->panic != nil && g->panic->argp == FP) g->panic->argp = bottom-of-frame // if(g->panic != nil && g->panic->argp == FP) g->panic->argp = bottom-of-frame
@ -764,7 +764,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.To.Reg = REGSP p.To.Reg = REGSP
p.Spadj = -c.autosize p.Spadj = -c.autosize
if objabi.Framepointer_enabled { // Frame pointer.
p = obj.Appendp(p, c.newprog) p = obj.Appendp(p, c.newprog)
p.As = ASUB p.As = ASUB
p.From.Type = obj.TYPE_CONST p.From.Type = obj.TYPE_CONST
@ -773,11 +773,10 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.To.Type = obj.TYPE_REG p.To.Type = obj.TYPE_REG
p.To.Reg = REGFP p.To.Reg = REGFP
} }
}
} else { } else {
/* want write-back pre-indexed SP+autosize -> SP, loading REGLINK*/ /* want write-back pre-indexed SP+autosize -> SP, loading REGLINK*/
if objabi.Framepointer_enabled { // Frame pointer.
p.As = AMOVD p.As = AMOVD
p.From.Type = obj.TYPE_MEM p.From.Type = obj.TYPE_MEM
p.From.Reg = REGSP p.From.Reg = REGSP
@ -785,7 +784,6 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.To.Type = obj.TYPE_REG p.To.Type = obj.TYPE_REG
p.To.Reg = REGFP p.To.Reg = REGFP
p = obj.Appendp(p, c.newprog) p = obj.Appendp(p, c.newprog)
}
aoffset := c.autosize aoffset := c.autosize
@ -820,6 +818,28 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
} }
} }
// If enabled, this code emits 'MOV PC, R27' before every 'MOV LR, PC',
// so that if you are debugging a low-level crash where PC and LR are zero,
// you can look at R27 to see what jumped to the zero.
// This is useful when bringing up Go on a new system.
// (There is similar code in ../ppc64/obj9.go:/if.false.)
const debugRETZERO = false
if debugRETZERO {
if p.As != obj.ARET {
q = newprog()
q.Pos = p.Pos
q.Link = p.Link
p.Link = q
p = q
}
p.As = AADR
p.From.Type = obj.TYPE_BRANCH
p.From.Offset = 0
p.To.Type = obj.TYPE_REG
p.To.Reg = REGTMP
}
if p.As != obj.ARET { if p.As != obj.ARET {
q = newprog() q = newprog()
q.Pos = p.Pos q.Pos = p.Pos
@ -865,7 +885,6 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
} }
case obj.ADUFFCOPY: case obj.ADUFFCOPY:
if objabi.Framepointer_enabled {
// ADR ret_addr, R27 // ADR ret_addr, R27
// STP (FP, R27), -24(SP) // STP (FP, R27), -24(SP)
// SUB 24, SP, FP // SUB 24, SP, FP
@ -895,7 +914,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
q2.To.Reg = REGSP q2.To.Reg = REGSP
q2.To.Offset = -24 q2.To.Offset = -24
// maintaine FP for DUFFCOPY // maintain FP for DUFFCOPY
q3 := obj.Appendp(q2, c.newprog) q3 := obj.Appendp(q2, c.newprog)
q3.Pos = p.Pos q3.Pos = p.Pos
q3.As = ASUB q3.As = ASUB
@ -915,10 +934,8 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
q5.To.Reg = REGFP q5.To.Reg = REGFP
q1.From.SetTarget(q5) q1.From.SetTarget(q5)
p = q5 p = q5
}
case obj.ADUFFZERO: case obj.ADUFFZERO:
if objabi.Framepointer_enabled {
// ADR ret_addr, R27 // ADR ret_addr, R27
// STP (FP, R27), -24(SP) // STP (FP, R27), -24(SP)
// SUB 24, SP, FP // SUB 24, SP, FP
@ -948,7 +965,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
q2.To.Reg = REGSP q2.To.Reg = REGSP
q2.To.Offset = -24 q2.To.Offset = -24
// maintaine FP for DUFFZERO // maintain FP for DUFFZERO
q3 := obj.Appendp(q2, c.newprog) q3 := obj.Appendp(q2, c.newprog)
q3.Pos = p.Pos q3.Pos = p.Pos
q3.As = ASUB q3.As = ASUB
@ -969,6 +986,20 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
q1.From.SetTarget(q5) q1.From.SetTarget(q5)
p = q5 p = q5
} }
if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.Spadj == 0 {
f := c.cursym.Func()
if f.FuncFlag&objabi.FuncFlag_SPWRITE == 0 {
c.cursym.Func().FuncFlag |= objabi.FuncFlag_SPWRITE
if ctxt.Debugvlog || !ctxt.IsAsm {
ctxt.Logf("auto-SPWRITE: %s %v\n", c.cursym.Name, p)
if !ctxt.IsAsm {
ctxt.Diag("invalid auto-SPWRITE in non-assembly")
ctxt.DiagFlush()
log.Fatalf("bad SPWRITE")
}
}
}
} }
} }
} }

View file

@ -454,6 +454,7 @@ type FuncInfo struct {
Locals int32 Locals int32
Align int32 Align int32
FuncID objabi.FuncID FuncID objabi.FuncID
FuncFlag objabi.FuncFlag
Text *Prog Text *Prog
Autot map[*LSym]struct{} Autot map[*LSym]struct{}
Pcln Pcln Pcln Pcln
@ -619,10 +620,6 @@ const (
// target of an inline during compilation // target of an inline during compilation
AttrWasInlined AttrWasInlined
// TopFrame means that this function is an entry point and unwinders should not
// keep unwinding beyond this frame.
AttrTopFrame
// Indexed indicates this symbol has been assigned with an index (when using the // Indexed indicates this symbol has been assigned with an index (when using the
// new object file format). // new object file format).
AttrIndexed AttrIndexed
@ -663,7 +660,6 @@ func (a *Attribute) NeedCtxt() bool { return a.load()&AttrNeedCtxt !=
func (a *Attribute) NoFrame() bool { return a.load()&AttrNoFrame != 0 } func (a *Attribute) NoFrame() bool { return a.load()&AttrNoFrame != 0 }
func (a *Attribute) Static() bool { return a.load()&AttrStatic != 0 } func (a *Attribute) Static() bool { return a.load()&AttrStatic != 0 }
func (a *Attribute) WasInlined() bool { return a.load()&AttrWasInlined != 0 } func (a *Attribute) WasInlined() bool { return a.load()&AttrWasInlined != 0 }
func (a *Attribute) TopFrame() bool { return a.load()&AttrTopFrame != 0 }
func (a *Attribute) Indexed() bool { return a.load()&AttrIndexed != 0 } func (a *Attribute) Indexed() bool { return a.load()&AttrIndexed != 0 }
func (a *Attribute) UsedInIface() bool { return a.load()&AttrUsedInIface != 0 } func (a *Attribute) UsedInIface() bool { return a.load()&AttrUsedInIface != 0 }
func (a *Attribute) ContentAddressable() bool { return a.load()&AttrContentAddressable != 0 } func (a *Attribute) ContentAddressable() bool { return a.load()&AttrContentAddressable != 0 }
@ -713,14 +709,13 @@ var textAttrStrings = [...]struct {
{bit: AttrNoFrame, s: "NOFRAME"}, {bit: AttrNoFrame, s: "NOFRAME"},
{bit: AttrStatic, s: "STATIC"}, {bit: AttrStatic, s: "STATIC"},
{bit: AttrWasInlined, s: ""}, {bit: AttrWasInlined, s: ""},
{bit: AttrTopFrame, s: "TOPFRAME"},
{bit: AttrIndexed, s: ""}, {bit: AttrIndexed, s: ""},
{bit: AttrContentAddressable, s: ""}, {bit: AttrContentAddressable, s: ""},
{bit: AttrABIWrapper, s: "ABIWRAPPER"}, {bit: AttrABIWrapper, s: "ABIWRAPPER"},
} }
// TextAttrString formats a for printing in as part of a TEXT prog. // String formats a for printing in as part of a TEXT prog.
func (a Attribute) TextAttrString() string { func (a Attribute) String() string {
var s string var s string
for _, x := range textAttrStrings { for _, x := range textAttrStrings {
if a&x.bit != 0 { if a&x.bit != 0 {
@ -746,6 +741,18 @@ func (a Attribute) TextAttrString() string {
return s return s
} }
// TextAttrString formats the symbol attributes for printing in as part of a TEXT prog.
func (s *LSym) TextAttrString() string {
attr := s.Attribute.String()
if s.Func().FuncFlag&objabi.FuncFlag_TOPFRAME != 0 {
if attr != "" {
attr += "|"
}
attr += "TOPFRAME"
}
return attr
}
func (s *LSym) String() string { func (s *LSym) String() string {
return s.Name return s.Name
} }

View file

@ -35,6 +35,7 @@ import (
"cmd/internal/sys" "cmd/internal/sys"
"encoding/binary" "encoding/binary"
"fmt" "fmt"
"log"
"math" "math"
) )
@ -536,6 +537,21 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.From.Reg = REGSP p.From.Reg = REGSP
} }
} }
if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.Spadj == 0 {
f := c.cursym.Func()
if f.FuncFlag&objabi.FuncFlag_SPWRITE == 0 {
c.cursym.Func().FuncFlag |= objabi.FuncFlag_SPWRITE
if ctxt.Debugvlog || !ctxt.IsAsm {
ctxt.Logf("auto-SPWRITE: %s %v\n", c.cursym.Name, p)
if !ctxt.IsAsm {
ctxt.Diag("invalid auto-SPWRITE in non-assembly")
ctxt.DiagFlush()
log.Fatalf("bad SPWRITE")
}
}
}
}
} }
if c.ctxt.Arch.Family == sys.MIPS { if c.ctxt.Arch.Family == sys.MIPS {

View file

@ -330,9 +330,6 @@ func (w *writer) Sym(s *LSym) {
if s.ReflectMethod() { if s.ReflectMethod() {
flag |= goobj.SymFlagReflectMethod flag |= goobj.SymFlagReflectMethod
} }
if s.TopFrame() {
flag |= goobj.SymFlagTopFrame
}
if strings.HasPrefix(s.Name, "type.") && s.Name[5] != '.' && s.Type == objabi.SRODATA { if strings.HasPrefix(s.Name, "type.") && s.Name[5] != '.' && s.Type == objabi.SRODATA {
flag |= goobj.SymFlagGoType flag |= goobj.SymFlagGoType
} }
@ -675,7 +672,8 @@ func genFuncInfoSyms(ctxt *Link) {
o := goobj.FuncInfo{ o := goobj.FuncInfo{
Args: uint32(fn.Args), Args: uint32(fn.Args),
Locals: uint32(fn.Locals), Locals: uint32(fn.Locals),
FuncID: objabi.FuncID(fn.FuncID), FuncID: fn.FuncID,
FuncFlag: fn.FuncFlag,
} }
pc := &fn.Pcln pc := &fn.Pcln
o.Pcsp = makeSymRef(preparePcSym(pc.Pcsp)) o.Pcsp = makeSymRef(preparePcSym(pc.Pcsp))
@ -788,7 +786,7 @@ func (ctxt *Link) writeSymDebugNamed(s *LSym, name string) {
if s.NoSplit() { if s.NoSplit() {
fmt.Fprintf(ctxt.Bso, "nosplit ") fmt.Fprintf(ctxt.Bso, "nosplit ")
} }
if s.TopFrame() { if s.Func() != nil && s.Func().FuncFlag&objabi.FuncFlag_TOPFRAME != 0 {
fmt.Fprintf(ctxt.Bso, "topframe ") fmt.Fprintf(ctxt.Bso, "topframe ")
} }
fmt.Fprintf(ctxt.Bso, "size=%d", s.Size) fmt.Fprintf(ctxt.Bso, "size=%d", s.Size)

View file

@ -134,6 +134,7 @@ func (ctxt *Link) InitTextSym(s *LSym, flag int) {
} }
name := strings.Replace(s.Name, "\"\"", ctxt.Pkgpath, -1) name := strings.Replace(s.Name, "\"\"", ctxt.Pkgpath, -1)
s.Func().FuncID = objabi.GetFuncID(name, flag&WRAPPER != 0) s.Func().FuncID = objabi.GetFuncID(name, flag&WRAPPER != 0)
s.Func().FuncFlag = toFuncFlag(flag)
s.Set(AttrOnList, true) s.Set(AttrOnList, true)
s.Set(AttrDuplicateOK, flag&DUPOK != 0) s.Set(AttrDuplicateOK, flag&DUPOK != 0)
s.Set(AttrNoSplit, flag&NOSPLIT != 0) s.Set(AttrNoSplit, flag&NOSPLIT != 0)
@ -142,7 +143,6 @@ func (ctxt *Link) InitTextSym(s *LSym, flag int) {
s.Set(AttrABIWrapper, flag&ABIWRAPPER != 0) s.Set(AttrABIWrapper, flag&ABIWRAPPER != 0)
s.Set(AttrNeedCtxt, flag&NEEDCTXT != 0) s.Set(AttrNeedCtxt, flag&NEEDCTXT != 0)
s.Set(AttrNoFrame, flag&NOFRAME != 0) s.Set(AttrNoFrame, flag&NOFRAME != 0)
s.Set(AttrTopFrame, flag&TOPFRAME != 0)
s.Type = objabi.STEXT s.Type = objabi.STEXT
ctxt.Text = append(ctxt.Text, s) ctxt.Text = append(ctxt.Text, s)
@ -150,6 +150,14 @@ func (ctxt *Link) InitTextSym(s *LSym, flag int) {
ctxt.dwarfSym(s) ctxt.dwarfSym(s)
} }
func toFuncFlag(flag int) objabi.FuncFlag {
var out objabi.FuncFlag
if flag&TOPFRAME != 0 {
out |= objabi.FuncFlag_TOPFRAME
}
return out
}
func (ctxt *Link) Globl(s *LSym, size int64, flag int) { func (ctxt *Link) Globl(s *LSym, size int64, flag int) {
if s.OnList() { if s.OnList() {
ctxt.Diag("symbol %s listed multiple times", s.Name) ctxt.Diag("symbol %s listed multiple times", s.Name)

View file

@ -34,6 +34,7 @@ import (
"cmd/internal/objabi" "cmd/internal/objabi"
"cmd/internal/src" "cmd/internal/src"
"cmd/internal/sys" "cmd/internal/sys"
"log"
) )
func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) { func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) {
@ -984,6 +985,21 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.From.Reg = REGSP p.From.Reg = REGSP
} }
} }
if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.Spadj == 0 && p.As != ACMPU {
f := c.cursym.Func()
if f.FuncFlag&objabi.FuncFlag_SPWRITE == 0 {
c.cursym.Func().FuncFlag |= objabi.FuncFlag_SPWRITE
if ctxt.Debugvlog || !ctxt.IsAsm {
ctxt.Logf("auto-SPWRITE: %s %v\n", c.cursym.Name, p)
if !ctxt.IsAsm {
ctxt.Diag("invalid auto-SPWRITE in non-assembly")
ctxt.DiagFlush()
log.Fatalf("bad SPWRITE")
}
}
}
}
} }
} }

View file

@ -25,6 +25,7 @@ import (
"cmd/internal/objabi" "cmd/internal/objabi"
"cmd/internal/sys" "cmd/internal/sys"
"fmt" "fmt"
"log"
) )
func buildop(ctxt *obj.Link) {} func buildop(ctxt *obj.Link) {}
@ -119,7 +120,7 @@ func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) {
switch p.To.Name { switch p.To.Name {
case obj.NAME_NONE: case obj.NAME_NONE:
p.As = AJALR p.As = AJALR
case obj.NAME_EXTERN: case obj.NAME_EXTERN, obj.NAME_STATIC:
// Handled in preprocess. // Handled in preprocess.
default: default:
ctxt.Diag("unsupported name %d for %v", p.To.Name, p) ctxt.Diag("unsupported name %d for %v", p.To.Name, p)
@ -267,7 +268,7 @@ func rewriteMOV(ctxt *obj.Link, newprog obj.ProgAlloc, p *obj.Prog) {
p.As = movToStore(p.As) p.As = movToStore(p.As)
p.To.Reg = addrToReg(p.To) p.To.Reg = addrToReg(p.To)
case obj.NAME_EXTERN: case obj.NAME_EXTERN, obj.NAME_STATIC:
// AUIPC $off_hi, TMP // AUIPC $off_hi, TMP
// S $off_lo, TMP, R // S $off_lo, TMP, R
as := p.As as := p.As
@ -666,7 +667,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
switch p.To.Type { switch p.To.Type {
case obj.TYPE_MEM: case obj.TYPE_MEM:
switch p.To.Name { switch p.To.Name {
case obj.NAME_EXTERN: case obj.NAME_EXTERN, obj.NAME_STATIC:
// JMP to symbol. // JMP to symbol.
jalrToSym(ctxt, p, newprog, REG_ZERO) jalrToSym(ctxt, p, newprog, REG_ZERO)
} }
@ -716,6 +717,21 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.Spadj = int32(-p.From.Offset) p.Spadj = int32(-p.From.Offset)
} }
} }
if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.Spadj == 0 {
f := cursym.Func()
if f.FuncFlag&objabi.FuncFlag_SPWRITE == 0 {
f.FuncFlag |= objabi.FuncFlag_SPWRITE
if ctxt.Debugvlog || !ctxt.IsAsm {
ctxt.Logf("auto-SPWRITE: %s %v\n", cursym.Name, p)
if !ctxt.IsAsm {
ctxt.Diag("invalid auto-SPWRITE in non-assembly")
ctxt.DiagFlush()
log.Fatalf("bad SPWRITE")
}
}
}
}
} }
// Rewrite MOV pseudo-instructions. This cannot be done in // Rewrite MOV pseudo-instructions. This cannot be done in

View file

@ -33,6 +33,7 @@ import (
"cmd/internal/obj" "cmd/internal/obj"
"cmd/internal/objabi" "cmd/internal/objabi"
"cmd/internal/sys" "cmd/internal/sys"
"log"
"math" "math"
) )
@ -545,6 +546,21 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
p.From.Reg = REGSP p.From.Reg = REGSP
} }
} }
if p.To.Type == obj.TYPE_REG && p.To.Reg == REGSP && p.Spadj == 0 {
f := c.cursym.Func()
if f.FuncFlag&objabi.FuncFlag_SPWRITE == 0 {
c.cursym.Func().FuncFlag |= objabi.FuncFlag_SPWRITE
if ctxt.Debugvlog || !ctxt.IsAsm {
ctxt.Logf("auto-SPWRITE: %s\n", c.cursym.Name)
if !ctxt.IsAsm {
ctxt.Diag("invalid auto-SPWRITE in non-assembly")
ctxt.DiagFlush()
log.Fatalf("bad SPWRITE")
}
}
}
}
} }
if wasSplit { if wasSplit {
c.stacksplitPost(pLast, pPre, pPreempt, autosize) // emit post part of split check c.stacksplitPost(pLast, pPre, pPreempt, autosize) // emit post part of split check

View file

@ -187,7 +187,7 @@ func (p *Prog) WriteInstructionString(w io.Writer) {
// In short, print one of these two: // In short, print one of these two:
// TEXT foo(SB), DUPOK|NOSPLIT, $0 // TEXT foo(SB), DUPOK|NOSPLIT, $0
// TEXT foo(SB), $0 // TEXT foo(SB), $0
s := p.From.Sym.Attribute.TextAttrString() s := p.From.Sym.TextAttrString()
if s != "" { if s != "" {
fmt.Fprintf(w, "%s%s", sep, s) fmt.Fprintf(w, "%s%s", sep, s)
sep = ", " sep = ", "

View file

@ -35,6 +35,7 @@ import (
"cmd/internal/objabi" "cmd/internal/objabi"
"cmd/internal/src" "cmd/internal/src"
"cmd/internal/sys" "cmd/internal/sys"
"log"
"math" "math"
"strings" "strings"
) )
@ -839,6 +840,20 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
switch p.As { switch p.As {
default: default:
if p.To.Type == obj.TYPE_REG && p.To.Reg == REG_SP && p.As != ACMPL && p.As != ACMPQ {
f := cursym.Func()
if f.FuncFlag&objabi.FuncFlag_SPWRITE == 0 {
f.FuncFlag |= objabi.FuncFlag_SPWRITE
if ctxt.Debugvlog || !ctxt.IsAsm {
ctxt.Logf("auto-SPWRITE: %s %v\n", cursym.Name, p)
if !ctxt.IsAsm {
ctxt.Diag("invalid auto-SPWRITE in non-assembly")
ctxt.DiagFlush()
log.Fatalf("bad SPWRITE")
}
}
}
}
continue continue
case APUSHL, APUSHFL: case APUSHL, APUSHFL:

View file

@ -4,97 +4,89 @@
package objabi package objabi
import "strings"
// A FuncFlag records bits about a function, passed to the runtime.
type FuncFlag uint8
// Note: This list must match the list in runtime/symtab.go.
const (
FuncFlag_TOPFRAME = 1 << iota
FuncFlag_SPWRITE
)
// A FuncID identifies particular functions that need to be treated // A FuncID identifies particular functions that need to be treated
// specially by the runtime. // specially by the runtime.
// Note that in some situations involving plugins, there may be multiple // Note that in some situations involving plugins, there may be multiple
// copies of a particular special runtime function. // copies of a particular special runtime function.
// Note: this list must match the list in runtime/symtab.go.
type FuncID uint8 type FuncID uint8
// Note: this list must match the list in runtime/symtab.go.
const ( const (
FuncID_normal FuncID = iota // not a special function FuncID_normal FuncID = iota // not a special function
FuncID_runtime_main FuncID_asmcgocall
FuncID_asyncPreempt
FuncID_cgocallback
FuncID_debugCallV1
FuncID_externalthreadhandler
FuncID_gcBgMarkWorker
FuncID_goexit FuncID_goexit
FuncID_gogo
FuncID_gopanic
FuncID_handleAsyncEvent
FuncID_jmpdefer FuncID_jmpdefer
FuncID_mcall FuncID_mcall
FuncID_morestack FuncID_morestack
FuncID_mstart FuncID_mstart
FuncID_rt0_go
FuncID_asmcgocall
FuncID_sigpanic
FuncID_runfinq
FuncID_gcBgMarkWorker
FuncID_systemstack_switch
FuncID_systemstack
FuncID_cgocallback
FuncID_gogo
FuncID_externalthreadhandler
FuncID_debugCallV1
FuncID_gopanic
FuncID_panicwrap FuncID_panicwrap
FuncID_handleAsyncEvent FuncID_rt0_go
FuncID_asyncPreempt FuncID_runfinq
FuncID_runtime_main
FuncID_sigpanic
FuncID_systemstack
FuncID_systemstack_switch
FuncID_wrapper // any autogenerated code (hash/eq algorithms, method wrappers, etc.) FuncID_wrapper // any autogenerated code (hash/eq algorithms, method wrappers, etc.)
) )
var funcIDs = map[string]FuncID{
"asmcgocall": FuncID_asmcgocall,
"asyncPreempt": FuncID_asyncPreempt,
"cgocallback": FuncID_cgocallback,
"debugCallV1": FuncID_debugCallV1,
"externalthreadhandler": FuncID_externalthreadhandler,
"gcBgMarkWorker": FuncID_gcBgMarkWorker,
"go": FuncID_rt0_go,
"goexit": FuncID_goexit,
"gogo": FuncID_gogo,
"gopanic": FuncID_gopanic,
"handleAsyncEvent": FuncID_handleAsyncEvent,
"jmpdefer": FuncID_jmpdefer,
"main": FuncID_runtime_main,
"mcall": FuncID_mcall,
"morestack": FuncID_morestack,
"mstart": FuncID_mstart,
"panicwrap": FuncID_panicwrap,
"runfinq": FuncID_runfinq,
"sigpanic": FuncID_sigpanic,
"switch": FuncID_systemstack_switch,
"systemstack": FuncID_systemstack,
// Don't show in call stack but otherwise not special.
"deferreturn": FuncID_wrapper,
"runOpenDeferFrame": FuncID_wrapper,
"reflectcallSave": FuncID_wrapper,
}
// Get the function ID for the named function in the named file. // Get the function ID for the named function in the named file.
// The function should be package-qualified. // The function should be package-qualified.
func GetFuncID(name string, isWrapper bool) FuncID { func GetFuncID(name string, isWrapper bool) FuncID {
if isWrapper { if isWrapper {
return FuncID_wrapper return FuncID_wrapper
} }
switch name { if strings.HasPrefix(name, "runtime.") {
case "runtime.main": if id, ok := funcIDs[name[len("runtime."):]]; ok {
return FuncID_runtime_main return id
case "runtime.goexit": }
return FuncID_goexit
case "runtime.jmpdefer":
return FuncID_jmpdefer
case "runtime.mcall":
return FuncID_mcall
case "runtime.morestack":
return FuncID_morestack
case "runtime.mstart":
return FuncID_mstart
case "runtime.rt0_go":
return FuncID_rt0_go
case "runtime.asmcgocall":
return FuncID_asmcgocall
case "runtime.sigpanic":
return FuncID_sigpanic
case "runtime.runfinq":
return FuncID_runfinq
case "runtime.gcBgMarkWorker":
return FuncID_gcBgMarkWorker
case "runtime.systemstack_switch":
return FuncID_systemstack_switch
case "runtime.systemstack":
return FuncID_systemstack
case "runtime.cgocallback":
return FuncID_cgocallback
case "runtime.gogo":
return FuncID_gogo
case "runtime.externalthreadhandler":
return FuncID_externalthreadhandler
case "runtime.debugCallV1":
return FuncID_debugCallV1
case "runtime.gopanic":
return FuncID_gopanic
case "runtime.panicwrap":
return FuncID_panicwrap
case "runtime.handleAsyncEvent":
return FuncID_handleAsyncEvent
case "runtime.asyncPreempt":
return FuncID_asyncPreempt
case "runtime.deferreturn":
// Don't show in the call stack (used when invoking defer functions)
return FuncID_wrapper
case "runtime.runOpenDeferFrame":
// Don't show in the call stack (used when invoking defer functions)
return FuncID_wrapper
case "runtime.reflectcallSave":
// Don't show in the call stack (used when invoking defer functions)
return FuncID_wrapper
} }
return FuncID_normal return FuncID_normal
} }

View file

@ -137,7 +137,7 @@ func init() {
} }
// Note: must agree with runtime.framepointer_enabled. // Note: must agree with runtime.framepointer_enabled.
var Framepointer_enabled = GOARCH == "amd64" || GOARCH == "arm64" && (GOOS == "linux" || GOOS == "darwin" || GOOS == "ios") var Framepointer_enabled = GOARCH == "amd64" || GOARCH == "arm64"
func addexp(s string) { func addexp(s string) {
// Could do general integer parsing here, but the runtime copy doesn't yet. // Could do general integer parsing here, but the runtime copy doesn't yet.

View file

@ -189,6 +189,8 @@ func (f *peFile) goarch() string {
return "amd64" return "amd64"
case pe.IMAGE_FILE_MACHINE_ARMNT: case pe.IMAGE_FILE_MACHINE_ARMNT:
return "arm" return "arm"
case pe.IMAGE_FILE_MACHINE_ARM64:
return "arm64"
default: default:
return "" return ""
} }

View file

@ -568,6 +568,40 @@ func machoreloc1(arch *sys.Arch, out *ld.OutBuf, ldr *loader.Loader, s loader.Sy
return true return true
} }
func pereloc1(arch *sys.Arch, out *ld.OutBuf, ldr *loader.Loader, s loader.Sym, r loader.ExtReloc, sectoff int64) bool {
var v uint32
rs := r.Xsym
rt := r.Type
if ldr.SymDynid(rs) < 0 {
ldr.Errorf(s, "reloc %d (%s) to non-coff symbol %s type=%d (%s)", rt, sym.RelocName(arch, rt), ldr.SymName(rs), ldr.SymType(rs), ldr.SymType(rs))
return false
}
out.Write32(uint32(sectoff))
out.Write32(uint32(ldr.SymDynid(rs)))
switch rt {
default:
return false
case objabi.R_DWARFSECREF:
v = ld.IMAGE_REL_ARM64_SECREL
case objabi.R_ADDR:
if r.Size == 8 {
v = ld.IMAGE_REL_ARM64_ADDR64
} else {
v = ld.IMAGE_REL_ARM64_ADDR32
}
}
out.Write16(uint16(v))
return true
}
func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loader.Reloc, s loader.Sym, val int64) (int64, int, bool) { func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loader.Reloc, s loader.Sym, val int64) (int64, int, bool) {
const noExtReloc = 0 const noExtReloc = 0
const isOk = true const isOk = true

View file

@ -58,6 +58,7 @@ func Init() (*sys.Arch, ld.Arch) {
GenSymsLate: gensymlate, GenSymsLate: gensymlate,
Machoreloc1: machoreloc1, Machoreloc1: machoreloc1,
MachorelocSize: 8, MachorelocSize: 8,
PEreloc1: pereloc1,
Androiddynld: "/system/bin/linker64", Androiddynld: "/system/bin/linker64",
Linuxdynld: "/lib/ld-linux-aarch64.so.1", Linuxdynld: "/lib/ld-linux-aarch64.so.1",
@ -108,5 +109,9 @@ func archinit(ctxt *ld.Link) {
if *ld.FlagRound == -1 { if *ld.FlagRound == -1 {
*ld.FlagRound = 16384 // 16K page alignment *ld.FlagRound = 16384 // 16K page alignment
} }
case objabi.Hwindows: /* PE executable */
// ld.HEADR, ld.FlagTextAddr, ld.FlagRound are set in ld.Peinit
return
} }
} }

View file

@ -36,7 +36,7 @@ func (mode *BuildMode) Set(s string) error {
return fmt.Errorf("invalid buildmode: %q", s) return fmt.Errorf("invalid buildmode: %q", s)
case "exe": case "exe":
switch objabi.GOOS + "/" + objabi.GOARCH { switch objabi.GOOS + "/" + objabi.GOARCH {
case "darwin/arm64", "windows/arm": // On these platforms, everything is PIE case "darwin/arm64", "windows/arm", "windows/arm64": // On these platforms, everything is PIE
*mode = BuildModePIE *mode = BuildModePIE
default: default:
*mode = BuildModeExe *mode = BuildModeExe
@ -65,7 +65,7 @@ func (mode *BuildMode) Set(s string) error {
} }
case "windows": case "windows":
switch objabi.GOARCH { switch objabi.GOARCH {
case "amd64", "386", "arm": case "amd64", "386", "arm", "arm64":
default: default:
return badmode() return badmode()
} }
@ -220,7 +220,7 @@ func mustLinkExternal(ctxt *Link) (res bool, reason string) {
case BuildModePIE: case BuildModePIE:
switch objabi.GOOS + "/" + objabi.GOARCH { switch objabi.GOOS + "/" + objabi.GOARCH {
case "linux/amd64", "linux/arm64", "android/arm64": case "linux/amd64", "linux/arm64", "android/arm64":
case "windows/386", "windows/amd64", "windows/arm": case "windows/386", "windows/amd64", "windows/arm", "windows/arm64":
case "darwin/amd64", "darwin/arm64": case "darwin/amd64", "darwin/arm64":
default: default:
// Internal linking does not support TLS_IE. // Internal linking does not support TLS_IE.

View file

@ -91,6 +91,10 @@ func (d *deadcodePass) init() {
names = append(names, exp) names = append(names, exp)
} }
if d.ctxt.Debugvlog > 1 {
d.ctxt.Logf("deadcode start names: %v\n", names)
}
for _, name := range names { for _, name := range names {
// Mark symbol as a data/ABI0 symbol. // Mark symbol as a data/ABI0 symbol.
d.mark(d.ldr.Lookup(name, 0), 0) d.mark(d.ldr.Lookup(name, 0), 0)

View file

@ -1454,7 +1454,7 @@ func (d *dwctxt) writeframes(fs loader.Sym) dwarfSecInfo {
// Emit a FDE, Section 6.4.1. // Emit a FDE, Section 6.4.1.
// First build the section contents into a byte buffer. // First build the section contents into a byte buffer.
deltaBuf = deltaBuf[:0] deltaBuf = deltaBuf[:0]
if haslr && d.ldr.AttrTopFrame(fn) { if haslr && fi.TopFrame() {
// Mark the link register as having an undefined value. // Mark the link register as having an undefined value.
// This stops call stack unwinders progressing any further. // This stops call stack unwinders progressing any further.
// TODO: similar mark on non-LR architectures. // TODO: similar mark on non-LR architectures.
@ -1480,7 +1480,7 @@ func (d *dwctxt) writeframes(fs loader.Sym) dwarfSecInfo {
spdelta += int64(d.arch.PtrSize) spdelta += int64(d.arch.PtrSize)
} }
if haslr && !d.ldr.AttrTopFrame(fn) { if haslr && !fi.TopFrame() {
// TODO(bryanpkc): This is imprecise. In general, the instruction // TODO(bryanpkc): This is imprecise. In general, the instruction
// that stores the return address to the stack frame is not the // that stores the return address to the stack frame is not the
// same one that allocates the frame. // same one that allocates the frame.

View file

@ -116,7 +116,7 @@ func Main(arch *sys.Arch, theArch Arch) {
} }
final := gorootFinal() final := gorootFinal()
addstrdata1(ctxt, "runtime/internal/sys.DefaultGoroot="+final) addstrdata1(ctxt, "runtime.defaultGOROOT="+final)
addstrdata1(ctxt, "cmd/internal/objabi.defaultGOROOT="+final) addstrdata1(ctxt, "cmd/internal/objabi.defaultGOROOT="+final)
// TODO(matloob): define these above and then check flag values here // TODO(matloob): define these above and then check flag values here

View file

@ -796,7 +796,14 @@ func writeFuncs(ctxt *Link, sb *loader.SymbolBuilder, funcs []loader.Sym, inlSym
} }
off = uint32(sb.SetUint8(ctxt.Arch, int64(off), uint8(funcID))) off = uint32(sb.SetUint8(ctxt.Arch, int64(off), uint8(funcID)))
off += 2 // pad // flag uint8
var flag objabi.FuncFlag
if fi.Valid() {
flag = fi.FuncFlag()
}
off = uint32(sb.SetUint8(ctxt.Arch, int64(off), uint8(flag)))
off += 1 // pad
// nfuncdata must be the final entry. // nfuncdata must be the final entry.
funcdata, funcdataoff = funcData(fi, 0, funcdata, funcdataoff) funcdata, funcdataoff = funcData(fi, 0, funcdata, funcdataoff)

View file

@ -42,11 +42,11 @@ type IMAGE_EXPORT_DIRECTORY struct {
AddressOfNameOrdinals uint32 AddressOfNameOrdinals uint32
} }
const (
PEBASE = 0x00400000
)
var ( var (
// PEBASE is the base address for the executable.
// It is small for 32-bit and large for 64-bit.
PEBASE int64
// SectionAlignment must be greater than or equal to FileAlignment. // SectionAlignment must be greater than or equal to FileAlignment.
// The default is the page size for the architecture. // The default is the page size for the architecture.
PESECTALIGN int64 = 0x1000 PESECTALIGN int64 = 0x1000
@ -69,6 +69,7 @@ const (
IMAGE_SCN_ALIGN_32BYTES = 0x600000 IMAGE_SCN_ALIGN_32BYTES = 0x600000
) )
// See https://docs.microsoft.com/en-us/windows/win32/debug/pe-format.
// TODO(crawshaw): add these constants to debug/pe. // TODO(crawshaw): add these constants to debug/pe.
const ( const (
// TODO: the Microsoft doco says IMAGE_SYM_DTYPE_ARRAY is 3 and IMAGE_SYM_DTYPE_FUNCTION is 2 // TODO: the Microsoft doco says IMAGE_SYM_DTYPE_ARRAY is 3 and IMAGE_SYM_DTYPE_FUNCTION is 2
@ -95,6 +96,25 @@ const (
IMAGE_REL_ARM_BRANCH11 = 0x0004 IMAGE_REL_ARM_BRANCH11 = 0x0004
IMAGE_REL_ARM_SECREL = 0x000F IMAGE_REL_ARM_SECREL = 0x000F
IMAGE_REL_ARM64_ABSOLUTE = 0x0000
IMAGE_REL_ARM64_ADDR32 = 0x0001
IMAGE_REL_ARM64_ADDR32NB = 0x0002
IMAGE_REL_ARM64_BRANCH26 = 0x0003
IMAGE_REL_ARM64_PAGEBASE_REL21 = 0x0004
IMAGE_REL_ARM64_REL21 = 0x0005
IMAGE_REL_ARM64_PAGEOFFSET_12A = 0x0006
IMAGE_REL_ARM64_PAGEOFFSET_12L = 0x0007
IMAGE_REL_ARM64_SECREL = 0x0008
IMAGE_REL_ARM64_SECREL_LOW12A = 0x0009
IMAGE_REL_ARM64_SECREL_HIGH12A = 0x000A
IMAGE_REL_ARM64_SECREL_LOW12L = 0x000B
IMAGE_REL_ARM64_TOKEN = 0x000C
IMAGE_REL_ARM64_SECTION = 0x000D
IMAGE_REL_ARM64_ADDR64 = 0x000E
IMAGE_REL_ARM64_BRANCH19 = 0x000F
IMAGE_REL_ARM64_BRANCH14 = 0x0010
IMAGE_REL_ARM64_REL32 = 0x0011
IMAGE_REL_BASED_HIGHLOW = 3 IMAGE_REL_BASED_HIGHLOW = 3
IMAGE_REL_BASED_DIR64 = 10 IMAGE_REL_BASED_DIR64 = 10
) )
@ -316,8 +336,8 @@ func (sect *peSection) checkOffset(off int64) {
// checkSegment verifies COFF section sect matches address // checkSegment verifies COFF section sect matches address
// and file offset provided in segment seg. // and file offset provided in segment seg.
func (sect *peSection) checkSegment(seg *sym.Segment) { func (sect *peSection) checkSegment(seg *sym.Segment) {
if seg.Vaddr-PEBASE != uint64(sect.virtualAddress) { if seg.Vaddr-uint64(PEBASE) != uint64(sect.virtualAddress) {
Errorf(nil, "%s.VirtualAddress = %#x, want %#x", sect.name, uint64(int64(sect.virtualAddress)), uint64(int64(seg.Vaddr-PEBASE))) Errorf(nil, "%s.VirtualAddress = %#x, want %#x", sect.name, uint64(int64(sect.virtualAddress)), uint64(int64(seg.Vaddr-uint64(PEBASE))))
errorexit() errorexit()
} }
if seg.Fileoff != uint64(sect.pointerToRawData) { if seg.Fileoff != uint64(sect.pointerToRawData) {
@ -465,6 +485,8 @@ func (f *peFile) addInitArray(ctxt *Link) *peSection {
size = 8 size = 8
case "arm": case "arm":
size = 4 size = 4
case "arm64":
size = 8
} }
sect := f.addSection(".ctors", size, size) sect := f.addSection(".ctors", size, size)
sect.characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ sect.characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ
@ -477,7 +499,7 @@ func (f *peFile) addInitArray(ctxt *Link) *peSection {
switch objabi.GOARCH { switch objabi.GOARCH {
case "386", "arm": case "386", "arm":
ctxt.Out.Write32(uint32(addr)) ctxt.Out.Write32(uint32(addr))
case "amd64": case "amd64", "arm64":
ctxt.Out.Write64(addr) ctxt.Out.Write64(addr)
} }
return sect return sect
@ -594,6 +616,8 @@ dwarfLoop:
ctxt.Out.Write16(IMAGE_REL_AMD64_ADDR64) ctxt.Out.Write16(IMAGE_REL_AMD64_ADDR64)
case "arm": case "arm":
ctxt.Out.Write16(IMAGE_REL_ARM_ADDR32) ctxt.Out.Write16(IMAGE_REL_ARM_ADDR32)
case "arm64":
ctxt.Out.Write16(IMAGE_REL_ARM64_ADDR64)
} }
return 1 return 1
}) })
@ -788,6 +812,8 @@ func (f *peFile) writeFileHeader(ctxt *Link) {
fh.Machine = pe.IMAGE_FILE_MACHINE_I386 fh.Machine = pe.IMAGE_FILE_MACHINE_I386
case sys.ARM: case sys.ARM:
fh.Machine = pe.IMAGE_FILE_MACHINE_ARMNT fh.Machine = pe.IMAGE_FILE_MACHINE_ARMNT
case sys.ARM64:
fh.Machine = pe.IMAGE_FILE_MACHINE_ARM64
} }
fh.NumberOfSections = uint16(len(f.sections)) fh.NumberOfSections = uint16(len(f.sections))
@ -852,8 +878,8 @@ func (f *peFile) writeOptionalHeader(ctxt *Link) {
} }
oh64.BaseOfCode = f.textSect.virtualAddress oh64.BaseOfCode = f.textSect.virtualAddress
oh.BaseOfCode = f.textSect.virtualAddress oh.BaseOfCode = f.textSect.virtualAddress
oh64.ImageBase = PEBASE oh64.ImageBase = uint64(PEBASE)
oh.ImageBase = PEBASE oh.ImageBase = uint32(PEBASE)
oh64.SectionAlignment = uint32(PESECTALIGN) oh64.SectionAlignment = uint32(PESECTALIGN)
oh.SectionAlignment = uint32(PESECTALIGN) oh.SectionAlignment = uint32(PESECTALIGN)
oh64.FileAlignment = uint32(PEFILEALIGN) oh64.FileAlignment = uint32(PEFILEALIGN)
@ -891,13 +917,7 @@ func (f *peFile) writeOptionalHeader(ctxt *Link) {
oh.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_NX_COMPAT oh.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_NX_COMPAT
// The DLL can be relocated at load time. // The DLL can be relocated at load time.
switch ctxt.Arch.Family { if needPEBaseReloc(ctxt) {
case sys.AMD64, sys.I386:
if ctxt.BuildMode == BuildModePIE {
oh64.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
oh.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
}
case sys.ARM:
oh64.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE oh64.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
oh.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE oh.DllCharacteristics |= pe.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
} }
@ -975,18 +995,23 @@ var pefile peFile
func Peinit(ctxt *Link) { func Peinit(ctxt *Link) {
var l int var l int
switch ctxt.Arch.Family { if ctxt.Arch.PtrSize == 8 {
// 64-bit architectures // 64-bit architectures
case sys.AMD64:
pe64 = 1 pe64 = 1
PEBASE = 1 << 32
if ctxt.Arch.Family == sys.AMD64 {
// TODO(rsc): For cgo we currently use 32-bit relocations
// that fail when PEBASE is too large.
// We need to fix this, but for now, use a smaller PEBASE.
PEBASE = 1 << 22
}
var oh64 pe.OptionalHeader64 var oh64 pe.OptionalHeader64
l = binary.Size(&oh64) l = binary.Size(&oh64)
} else {
// 32-bit architectures // 32-bit architectures
default: PEBASE = 1 << 22
var oh pe.OptionalHeader32 var oh pe.OptionalHeader32
l = binary.Size(&oh) l = binary.Size(&oh)
} }
if ctxt.LinkMode == LinkExternal { if ctxt.LinkMode == LinkExternal {
@ -1210,7 +1235,7 @@ func addimports(ctxt *Link, datsect *peSection) {
endoff := ctxt.Out.Offset() endoff := ctxt.Out.Offset()
// write FirstThunks (allocated in .data section) // write FirstThunks (allocated in .data section)
ftbase := uint64(ldr.SymValue(dynamic)) - uint64(datsect.virtualAddress) - PEBASE ftbase := uint64(ldr.SymValue(dynamic)) - uint64(datsect.virtualAddress) - uint64(PEBASE)
ctxt.Out.SeekSet(int64(uint64(datsect.pointerToRawData) + ftbase)) ctxt.Out.SeekSet(int64(uint64(datsect.pointerToRawData) + ftbase))
for d := dr; d != nil; d = d.next { for d := dr; d != nil; d = d.next {
@ -1463,17 +1488,18 @@ func addPEBaseRelocSym(ldr *loader.Loader, s loader.Sym, rt *peBaseRelocTable) {
} }
} }
func addPEBaseReloc(ctxt *Link) { func needPEBaseReloc(ctxt *Link) bool {
// Arm does not work without base relocation table. // Non-PIE x86 binaries don't need the base relocation table.
// 386 and amd64 will only require the table for BuildModePIE. // Everyone else does.
switch ctxt.Arch.Family { if (ctxt.Arch.Family == sys.I386 || ctxt.Arch.Family == sys.AMD64) && ctxt.BuildMode != BuildModePIE {
default: return false
return
case sys.I386, sys.AMD64:
if ctxt.BuildMode != BuildModePIE {
return
} }
case sys.ARM: return true
}
func addPEBaseReloc(ctxt *Link) {
if !needPEBaseReloc(ctxt) {
return
} }
var rt peBaseRelocTable var rt peBaseRelocTable
@ -1562,12 +1588,6 @@ func addpersrc(ctxt *Link) {
} }
func asmbPe(ctxt *Link) { func asmbPe(ctxt *Link) {
switch ctxt.Arch.Family {
default:
Exitf("unknown PE architecture: %v", ctxt.Arch.Family)
case sys.AMD64, sys.I386, sys.ARM:
}
t := pefile.addSection(".text", int(Segtext.Length), int(Segtext.Length)) t := pefile.addSection(".text", int(Segtext.Length), int(Segtext.Length))
t.characteristics = IMAGE_SCN_CNT_CODE | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ t.characteristics = IMAGE_SCN_CNT_CODE | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ
if ctxt.LinkMode == LinkExternal { if ctxt.LinkMode == LinkExternal {

View file

@ -241,7 +241,6 @@ type Loader struct {
attrExternal Bitmap // external symbols, indexed by ext sym index attrExternal Bitmap // external symbols, indexed by ext sym index
attrReadOnly map[Sym]bool // readonly data for this sym attrReadOnly map[Sym]bool // readonly data for this sym
attrTopFrame map[Sym]struct{} // top frame symbols
attrSpecial map[Sym]struct{} // "special" frame symbols attrSpecial map[Sym]struct{} // "special" frame symbols
attrCgoExportDynamic map[Sym]struct{} // "cgo_export_dynamic" symbols attrCgoExportDynamic map[Sym]struct{} // "cgo_export_dynamic" symbols
attrCgoExportStatic map[Sym]struct{} // "cgo_export_static" symbols attrCgoExportStatic map[Sym]struct{} // "cgo_export_static" symbols
@ -349,7 +348,6 @@ func NewLoader(flags uint32, elfsetstring elfsetstringFunc, reporter *ErrorRepor
plt: make(map[Sym]int32), plt: make(map[Sym]int32),
got: make(map[Sym]int32), got: make(map[Sym]int32),
dynid: make(map[Sym]int32), dynid: make(map[Sym]int32),
attrTopFrame: make(map[Sym]struct{}),
attrSpecial: make(map[Sym]struct{}), attrSpecial: make(map[Sym]struct{}),
attrCgoExportDynamic: make(map[Sym]struct{}), attrCgoExportDynamic: make(map[Sym]struct{}),
attrCgoExportStatic: make(map[Sym]struct{}), attrCgoExportStatic: make(map[Sym]struct{}),
@ -1009,24 +1007,6 @@ func (l *Loader) SetAttrExternal(i Sym, v bool) {
} }
} }
// AttrTopFrame returns true for a function symbol that is an entry
// point, meaning that unwinders should stop when they hit this
// function.
func (l *Loader) AttrTopFrame(i Sym) bool {
_, ok := l.attrTopFrame[i]
return ok
}
// SetAttrTopFrame sets the "top frame" property for a symbol (see
// AttrTopFrame).
func (l *Loader) SetAttrTopFrame(i Sym, v bool) {
if v {
l.attrTopFrame[i] = struct{}{}
} else {
delete(l.attrTopFrame, i)
}
}
// AttrSpecial returns true for a symbols that do not have their // AttrSpecial returns true for a symbols that do not have their
// address (i.e. Value) computed by the usual mechanism of // address (i.e. Value) computed by the usual mechanism of
// data.go:dodata() & data.go:address(). // data.go:dodata() & data.go:address().
@ -1905,7 +1885,11 @@ func (fi *FuncInfo) Locals() int {
} }
func (fi *FuncInfo) FuncID() objabi.FuncID { func (fi *FuncInfo) FuncID() objabi.FuncID {
return objabi.FuncID((*goobj.FuncInfo)(nil).ReadFuncID(fi.data)) return (*goobj.FuncInfo)(nil).ReadFuncID(fi.data)
}
func (fi *FuncInfo) FuncFlag() objabi.FuncFlag {
return (*goobj.FuncInfo)(nil).ReadFuncFlag(fi.data)
} }
func (fi *FuncInfo) Pcsp() Sym { func (fi *FuncInfo) Pcsp() Sym {
@ -1992,6 +1976,13 @@ func (fi *FuncInfo) File(k int) goobj.CUFileIndex {
return (*goobj.FuncInfo)(nil).ReadFile(fi.data, fi.lengths.FileOff, uint32(k)) return (*goobj.FuncInfo)(nil).ReadFile(fi.data, fi.lengths.FileOff, uint32(k))
} }
// TopFrame returns true if the function associated with this FuncInfo
// is an entry point, meaning that unwinders should stop when they hit
// this function.
func (fi *FuncInfo) TopFrame() bool {
return (fi.FuncFlag() & objabi.FuncFlag_TOPFRAME) != 0
}
type InlTreeNode struct { type InlTreeNode struct {
Parent int32 Parent int32
File goobj.CUFileIndex File goobj.CUFileIndex
@ -2151,9 +2142,6 @@ func (st *loadState) preloadSyms(r *oReader, kind int) {
} }
gi := st.addSym(name, v, r, i, kind, osym) gi := st.addSym(name, v, r, i, kind, osym)
r.syms[i] = gi r.syms[i] = gi
if osym.TopFrame() {
l.SetAttrTopFrame(gi, true)
}
if osym.Local() { if osym.Local() {
l.SetAttrLocal(gi, true) l.SetAttrLocal(gi, true)
} }
@ -2411,7 +2399,6 @@ func (l *Loader) CopyAttributes(src Sym, dst Sym) {
// when copying attributes from a dupOK ABI wrapper symbol to // when copying attributes from a dupOK ABI wrapper symbol to
// the real target symbol (which may not be marked dupOK). // the real target symbol (which may not be marked dupOK).
} }
l.SetAttrTopFrame(dst, l.AttrTopFrame(src))
l.SetAttrSpecial(dst, l.AttrSpecial(src)) l.SetAttrSpecial(dst, l.AttrSpecial(src))
l.SetAttrCgoExportDynamic(dst, l.AttrCgoExportDynamic(src)) l.SetAttrCgoExportDynamic(dst, l.AttrCgoExportDynamic(src))
l.SetAttrCgoExportStatic(dst, l.AttrCgoExportStatic(src)) l.SetAttrCgoExportStatic(dst, l.AttrCgoExportStatic(src))

View file

@ -65,6 +65,7 @@ includes_Darwin='
#include <sys/ptrace.h> #include <sys/ptrace.h>
#include <sys/select.h> #include <sys/select.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/un.h>
#include <sys/sockio.h> #include <sys/sockio.h>
#include <sys/sys_domain.h> #include <sys/sys_domain.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>
@ -204,6 +205,7 @@ struct ltchars {
#include <linux/devlink.h> #include <linux/devlink.h>
#include <linux/dm-ioctl.h> #include <linux/dm-ioctl.h>
#include <linux/errqueue.h> #include <linux/errqueue.h>
#include <linux/ethtool_netlink.h>
#include <linux/falloc.h> #include <linux/falloc.h>
#include <linux/fanotify.h> #include <linux/fanotify.h>
#include <linux/filter.h> #include <linux/filter.h>
@ -479,7 +481,7 @@ ccflags="$@"
$2 ~ /^LOCK_(SH|EX|NB|UN)$/ || $2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||
$2 ~ /^LO_(KEY|NAME)_SIZE$/ || $2 ~ /^LO_(KEY|NAME)_SIZE$/ ||
$2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ ||
$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|MCAST|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|MCAST|EVFILT|NOTE|EV|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL)_/ ||
$2 ~ /^TP_STATUS_/ || $2 ~ /^TP_STATUS_/ ||
$2 ~ /^FALLOC_/ || $2 ~ /^FALLOC_/ ||
$2 == "ICMPV6_FILTER" || $2 == "ICMPV6_FILTER" ||
@ -561,7 +563,9 @@ ccflags="$@"
$2 ~ /^(HDIO|WIN|SMART)_/ || $2 ~ /^(HDIO|WIN|SMART)_/ ||
$2 ~ /^CRYPTO_/ || $2 ~ /^CRYPTO_/ ||
$2 ~ /^TIPC_/ || $2 ~ /^TIPC_/ ||
$2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" &&
$2 ~ /^DEVLINK_/ || $2 ~ /^DEVLINK_/ ||
$2 ~ /^ETHTOOL_/ ||
$2 ~ /^LWTUNNEL_IP/ || $2 ~ /^LWTUNNEL_IP/ ||
$2 !~ "WMESGLEN" && $2 !~ "WMESGLEN" &&
$2 ~ /^W[A-Z0-9]+$/ || $2 ~ /^W[A-Z0-9]+$/ ||

11
src/cmd/vendor/golang.org/x/sys/unix/ptrace_darwin.go generated vendored Normal file
View file

@ -0,0 +1,11 @@
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin,!ios
package unix
func ptrace(request int, pid int, addr uintptr, data uintptr) error {
return ptrace1(request, pid, addr, data)
}

11
src/cmd/vendor/golang.org/x/sys/unix/ptrace_ios.go generated vendored Normal file
View file

@ -0,0 +1,11 @@
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ios
package unix
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
return ENOTSUP
}

View file

@ -119,13 +119,16 @@ type attrList struct {
Forkattr uint32 Forkattr uint32
} }
//sysnb pipe() (r int, w int, err error) //sysnb pipe(p *[2]int32) (err error)
func Pipe(p []int) (err error) { func Pipe(p []int) (err error) {
if len(p) != 2 { if len(p) != 2 {
return EINVAL return EINVAL
} }
p[0], p[1], err = pipe() var x [2]int32
err = pipe(&x)
p[0] = int(x[0])
p[1] = int(x[1])
return return
} }
@ -375,6 +378,15 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
return return
} }
// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.
// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.
func GetsockoptXucred(fd, level, opt int) (*Xucred, error) {
x := new(Xucred)
vallen := _Socklen(unsafe.Sizeof(Xucred{}))
err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)
return x, err
}
//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)
/* /*

View file

@ -45,6 +45,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64

View file

@ -45,6 +45,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 //sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64

View file

@ -6,7 +6,7 @@ package unix
import "syscall" import "syscall"
func ptrace(request int, pid int, addr uintptr, data uintptr) error { func ptrace1(request int, pid int, addr uintptr, data uintptr) error {
return ENOTSUP return ENOTSUP
} }

View file

@ -45,6 +45,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
//sys Fstatfs(fd int, stat *Statfs_t) (err error) //sys Fstatfs(fd int, stat *Statfs_t) (err error)
//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
//sys Lstat(path string, stat *Stat_t) (err error) //sys Lstat(path string, stat *Stat_t) (err error)
//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace
//sys Stat(path string, stat *Stat_t) (err error) //sys Stat(path string, stat *Stat_t) (err error)
//sys Statfs(path string, stat *Statfs_t) (err error) //sys Statfs(path string, stat *Statfs_t) (err error)

View file

@ -105,16 +105,13 @@ func Pipe(p []int) (err error) {
return return
} }
//sysnb pipe2(p *[2]_C_int, flags int) (err error) //sysnb pipe2(flags int) (r int, w int, err error)
func Pipe2(p []int, flags int) error { func Pipe2(p []int, flags int) (err error) {
if len(p) != 2 { if len(p) != 2 {
return EINVAL return EINVAL
} }
var pp [2]_C_int p[0], p[1], err = pipe2(flags)
err := pipe2(&pp, flags)
p[0] = int(pp[0])
p[1] = int(pp[1])
return err return err
} }

View file

@ -75,16 +75,3 @@ func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {
} }
return return
} }
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
func Pipe2(p []int, flags int) error {
if len(p) != 2 {
return EINVAL
}
var pp [2]_C_int
err := pipe2(&pp, flags)
p[0] = int(pp[0])
p[1] = int(pp[1])
return err
}

View file

@ -111,6 +111,7 @@ func direntNamlen(buf []byte) (uint64, bool) {
} }
//sysnb pipe() (fd1 int, fd2 int, err error) //sysnb pipe() (fd1 int, fd2 int, err error)
func Pipe(p []int) (err error) { func Pipe(p []int) (err error) {
if len(p) != 2 { if len(p) != 2 {
return EINVAL return EINVAL
@ -119,7 +120,21 @@ func Pipe(p []int) (err error) {
return return
} }
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
func Pipe2(p []int, flags int) error {
if len(p) != 2 {
return EINVAL
}
var pp [2]_C_int
err := pipe2(&pp, flags)
p[0] = int(pp[0])
p[1] = int(pp[1])
return err
}
//sys Getdents(fd int, buf []byte) (n int, err error) //sys Getdents(fd int, buf []byte) (n int, err error)
func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
n, err = Getdents(fd, buf) n, err = Getdents(fd, buf)
if err != nil || basep == nil { if err != nil || basep == nil {

View file

@ -68,6 +68,19 @@ func Pipe(p []int) (err error) {
return nil return nil
} }
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
func Pipe2(p []int, flags int) error {
if len(p) != 2 {
return EINVAL
}
var pp [2]_C_int
err := pipe2(&pp, flags)
p[0] = int(pp[0])
p[1] = int(pp[1])
return err
}
func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
if sa.Port < 0 || sa.Port > 0xFFFF { if sa.Port < 0 || sa.Port > 0xFFFF {
return nil, 0, EINVAL return nil, 0, EINVAL
@ -669,6 +682,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
//sys Statvfs(path string, vfsstat *Statvfs_t) (err error) //sys Statvfs(path string, vfsstat *Statvfs_t) (err error)
//sys Symlink(path string, link string) (err error) //sys Symlink(path string, link string) (err error)
//sys Sync() (err error) //sys Sync() (err error)
//sys Sysconf(which int) (n int64, err error)
//sysnb Times(tms *Tms) (ticks uintptr, err error) //sysnb Times(tms *Tms) (ticks uintptr, err error)
//sys Truncate(path string, length int64) (err error) //sys Truncate(path string, length int64) (err error)
//sys Fsync(fd int) (err error) //sys Fsync(fd int) (err error)

View file

@ -8,12 +8,10 @@ package unix
import "time" import "time"
// TimespecToNsec converts a Timespec value into a number of // TimespecToNSec returns the time stored in ts as nanoseconds.
// nanoseconds since the Unix epoch. func TimespecToNsec(ts Timespec) int64 { return ts.Nano() }
func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
// NsecToTimespec takes a number of nanoseconds since the Unix epoch // NsecToTimespec converts a number of nanoseconds into a Timespec.
// and returns the corresponding Timespec value.
func NsecToTimespec(nsec int64) Timespec { func NsecToTimespec(nsec int64) Timespec {
sec := nsec / 1e9 sec := nsec / 1e9
nsec = nsec % 1e9 nsec = nsec % 1e9
@ -42,12 +40,10 @@ func TimeToTimespec(t time.Time) (Timespec, error) {
return ts, nil return ts, nil
} }
// TimevalToNsec converts a Timeval value into a number of nanoseconds // TimevalToNsec returns the time stored in tv as nanoseconds.
// since the Unix epoch. func TimevalToNsec(tv Timeval) int64 { return tv.Nano() }
func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
// NsecToTimeval takes a number of nanoseconds since the Unix epoch // NsecToTimeval converts a number of nanoseconds into a Timeval.
// and returns the corresponding Timeval value.
func NsecToTimeval(nsec int64) Timeval { func NsecToTimeval(nsec int64) Timeval {
nsec += 999 // round up to microsecond nsec += 999 // round up to microsecond
usec := nsec % 1e9 / 1e3 usec := nsec % 1e9 / 1e3
@ -59,24 +55,22 @@ func NsecToTimeval(nsec int64) Timeval {
return setTimeval(sec, usec) return setTimeval(sec, usec)
} }
// Unix returns ts as the number of seconds and nanoseconds elapsed since the // Unix returns the time stored in ts as seconds plus nanoseconds.
// Unix epoch.
func (ts *Timespec) Unix() (sec int64, nsec int64) { func (ts *Timespec) Unix() (sec int64, nsec int64) {
return int64(ts.Sec), int64(ts.Nsec) return int64(ts.Sec), int64(ts.Nsec)
} }
// Unix returns tv as the number of seconds and nanoseconds elapsed since the // Unix returns the time stored in tv as seconds plus nanoseconds.
// Unix epoch.
func (tv *Timeval) Unix() (sec int64, nsec int64) { func (tv *Timeval) Unix() (sec int64, nsec int64) {
return int64(tv.Sec), int64(tv.Usec) * 1000 return int64(tv.Sec), int64(tv.Usec) * 1000
} }
// Nano returns ts as the number of nanoseconds elapsed since the Unix epoch. // Nano returns the time stored in ts as nanoseconds.
func (ts *Timespec) Nano() int64 { func (ts *Timespec) Nano() int64 {
return int64(ts.Sec)*1e9 + int64(ts.Nsec) return int64(ts.Sec)*1e9 + int64(ts.Nsec)
} }
// Nano returns tv as the number of nanoseconds elapsed since the Unix epoch. // Nano returns the time stored in tv as nanoseconds.
func (tv *Timeval) Nano() int64 { func (tv *Timeval) Nano() int64 {
return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000
} }

View file

@ -32,7 +32,7 @@ const (
AF_LAT = 0xe AF_LAT = 0xe
AF_LINK = 0x12 AF_LINK = 0x12
AF_LOCAL = 0x1 AF_LOCAL = 0x1
AF_MAX = 0x28 AF_MAX = 0x29
AF_NATM = 0x1f AF_NATM = 0x1f
AF_NDRV = 0x1b AF_NDRV = 0x1b
AF_NETBIOS = 0x21 AF_NETBIOS = 0x21
@ -49,6 +49,7 @@ const (
AF_UNIX = 0x1 AF_UNIX = 0x1
AF_UNSPEC = 0x0 AF_UNSPEC = 0x0
AF_UTUN = 0x26 AF_UTUN = 0x26
AF_VSOCK = 0x28
ALTWERASE = 0x200 ALTWERASE = 0x200
ATTR_BIT_MAP_COUNT = 0x5 ATTR_BIT_MAP_COUNT = 0x5
ATTR_CMN_ACCESSMASK = 0x20000 ATTR_CMN_ACCESSMASK = 0x20000
@ -83,7 +84,7 @@ const (
ATTR_CMN_PAROBJID = 0x80 ATTR_CMN_PAROBJID = 0x80
ATTR_CMN_RETURNED_ATTRS = 0x80000000 ATTR_CMN_RETURNED_ATTRS = 0x80000000
ATTR_CMN_SCRIPT = 0x100 ATTR_CMN_SCRIPT = 0x100
ATTR_CMN_SETMASK = 0x41c7ff00 ATTR_CMN_SETMASK = 0x51c7ff00
ATTR_CMN_USERACCESS = 0x200000 ATTR_CMN_USERACCESS = 0x200000
ATTR_CMN_UUID = 0x800000 ATTR_CMN_UUID = 0x800000
ATTR_CMN_VALIDMASK = 0xffffffff ATTR_CMN_VALIDMASK = 0xffffffff
@ -357,7 +358,7 @@ const (
DLT_LINUX_SLL = 0x71 DLT_LINUX_SLL = 0x71
DLT_LOOP = 0x6c DLT_LOOP = 0x6c
DLT_LTALK = 0x72 DLT_LTALK = 0x72
DLT_MATCHING_MAX = 0xf5 DLT_MATCHING_MAX = 0x10a
DLT_MATCHING_MIN = 0x68 DLT_MATCHING_MIN = 0x68
DLT_MFR = 0xb6 DLT_MFR = 0xb6
DLT_MOST = 0xd3 DLT_MOST = 0xd3
@ -398,6 +399,7 @@ const (
DLT_SYMANTEC_FIREWALL = 0x63 DLT_SYMANTEC_FIREWALL = 0x63
DLT_TZSP = 0x80 DLT_TZSP = 0x80
DLT_USB = 0xba DLT_USB = 0xba
DLT_USB_DARWIN = 0x10a
DLT_USB_LINUX = 0xbd DLT_USB_LINUX = 0xbd
DLT_USB_LINUX_MMAPPED = 0xdc DLT_USB_LINUX_MMAPPED = 0xdc
DLT_USER0 = 0x93 DLT_USER0 = 0x93
@ -442,8 +444,8 @@ const (
EVFILT_PROC = -0x5 EVFILT_PROC = -0x5
EVFILT_READ = -0x1 EVFILT_READ = -0x1
EVFILT_SIGNAL = -0x6 EVFILT_SIGNAL = -0x6
EVFILT_SYSCOUNT = 0xf EVFILT_SYSCOUNT = 0x11
EVFILT_THREADMARKER = 0xf EVFILT_THREADMARKER = 0x11
EVFILT_TIMER = -0x7 EVFILT_TIMER = -0x7
EVFILT_USER = -0xa EVFILT_USER = -0xa
EVFILT_VM = -0xc EVFILT_VM = -0xc
@ -481,9 +483,12 @@ const (
FSOPT_NOINMEMUPDATE = 0x2 FSOPT_NOINMEMUPDATE = 0x2
FSOPT_PACK_INVAL_ATTRS = 0x8 FSOPT_PACK_INVAL_ATTRS = 0x8
FSOPT_REPORT_FULLSIZE = 0x4 FSOPT_REPORT_FULLSIZE = 0x4
FSOPT_RETURN_REALDEV = 0x200
F_ADDFILESIGS = 0x3d F_ADDFILESIGS = 0x3d
F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 F_ADDFILESIGS_FOR_DYLD_SIM = 0x53
F_ADDFILESIGS_INFO = 0x67
F_ADDFILESIGS_RETURN = 0x61 F_ADDFILESIGS_RETURN = 0x61
F_ADDFILESUPPL = 0x68
F_ADDSIGS = 0x3b F_ADDSIGS = 0x3b
F_ALLOCATEALL = 0x4 F_ALLOCATEALL = 0x4
F_ALLOCATECONTIG = 0x2 F_ALLOCATECONTIG = 0x2
@ -505,8 +510,10 @@ const (
F_GETOWN = 0x5 F_GETOWN = 0x5
F_GETPATH = 0x32 F_GETPATH = 0x32
F_GETPATH_MTMINFO = 0x47 F_GETPATH_MTMINFO = 0x47
F_GETPATH_NOFIRMLINK = 0x66
F_GETPROTECTIONCLASS = 0x3f F_GETPROTECTIONCLASS = 0x3f
F_GETPROTECTIONLEVEL = 0x4d F_GETPROTECTIONLEVEL = 0x4d
F_GETSIGSINFO = 0x69
F_GLOBAL_NOCACHE = 0x37 F_GLOBAL_NOCACHE = 0x37
F_LOG2PHYS = 0x31 F_LOG2PHYS = 0x31
F_LOG2PHYS_EXT = 0x41 F_LOG2PHYS_EXT = 0x41
@ -531,6 +538,7 @@ const (
F_SETPROTECTIONCLASS = 0x40 F_SETPROTECTIONCLASS = 0x40
F_SETSIZE = 0x2b F_SETSIZE = 0x2b
F_SINGLE_WRITER = 0x4c F_SINGLE_WRITER = 0x4c
F_SPECULATIVE_READ = 0x65
F_THAW_FS = 0x36 F_THAW_FS = 0x36
F_TRANSCODEKEY = 0x4b F_TRANSCODEKEY = 0x4b
F_TRIM_ACTIVE_FILE = 0x64 F_TRIM_ACTIVE_FILE = 0x64
@ -562,6 +570,7 @@ const (
IFF_UP = 0x1 IFF_UP = 0x1
IFNAMSIZ = 0x10 IFNAMSIZ = 0x10
IFT_1822 = 0x2 IFT_1822 = 0x2
IFT_6LOWPAN = 0x40
IFT_AAL5 = 0x31 IFT_AAL5 = 0x31
IFT_ARCNET = 0x23 IFT_ARCNET = 0x23
IFT_ARCNETPLUS = 0x24 IFT_ARCNETPLUS = 0x24
@ -766,6 +775,9 @@ const (
IPV6_2292PKTINFO = 0x13 IPV6_2292PKTINFO = 0x13
IPV6_2292PKTOPTIONS = 0x19 IPV6_2292PKTOPTIONS = 0x19
IPV6_2292RTHDR = 0x18 IPV6_2292RTHDR = 0x18
IPV6_ADDR_MC_FLAGS_PREFIX = 0x20
IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10
IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30
IPV6_BINDV6ONLY = 0x1b IPV6_BINDV6ONLY = 0x1b
IPV6_BOUND_IF = 0x7d IPV6_BOUND_IF = 0x7d
IPV6_CHECKSUM = 0x1a IPV6_CHECKSUM = 0x1a
@ -775,7 +787,7 @@ const (
IPV6_FAITH = 0x1d IPV6_FAITH = 0x1d
IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWINFO_MASK = 0xffffff0f
IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWLABEL_MASK = 0xffff0f00
IPV6_FLOW_ECN_MASK = 0x300 IPV6_FLOW_ECN_MASK = 0x3000
IPV6_FRAGTTL = 0x3c IPV6_FRAGTTL = 0x3c
IPV6_FW_ADD = 0x1e IPV6_FW_ADD = 0x1e
IPV6_FW_DEL = 0x1f IPV6_FW_DEL = 0x1f
@ -818,6 +830,7 @@ const (
IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_LOOP = 0x1
IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1
IP_DF = 0x4000 IP_DF = 0x4000
IP_DONTFRAG = 0x1c
IP_DROP_MEMBERSHIP = 0xd IP_DROP_MEMBERSHIP = 0xd
IP_DROP_SOURCE_MEMBERSHIP = 0x47 IP_DROP_SOURCE_MEMBERSHIP = 0x47
IP_DUMMYNET_CONFIGURE = 0x3c IP_DUMMYNET_CONFIGURE = 0x3c
@ -889,6 +902,12 @@ const (
KERN_OSRELEASE = 0x2 KERN_OSRELEASE = 0x2
KERN_OSTYPE = 0x1 KERN_OSTYPE = 0x1
KERN_VERSION = 0x4 KERN_VERSION = 0x4
LOCAL_PEERCRED = 0x1
LOCAL_PEEREPID = 0x3
LOCAL_PEEREUUID = 0x5
LOCAL_PEERPID = 0x2
LOCAL_PEERTOKEN = 0x6
LOCAL_PEERUUID = 0x4
LOCK_EX = 0x2 LOCK_EX = 0x2
LOCK_NB = 0x4 LOCK_NB = 0x4
LOCK_SH = 0x1 LOCK_SH = 0x1
@ -904,6 +923,7 @@ const (
MADV_SEQUENTIAL = 0x2 MADV_SEQUENTIAL = 0x2
MADV_WILLNEED = 0x3 MADV_WILLNEED = 0x3
MADV_ZERO_WIRED_PAGES = 0x6 MADV_ZERO_WIRED_PAGES = 0x6
MAP_32BIT = 0x8000
MAP_ANON = 0x1000 MAP_ANON = 0x1000
MAP_ANONYMOUS = 0x1000 MAP_ANONYMOUS = 0x1000
MAP_COPY = 0x2 MAP_COPY = 0x2
@ -920,6 +940,17 @@ const (
MAP_RESILIENT_CODESIGN = 0x2000 MAP_RESILIENT_CODESIGN = 0x2000
MAP_RESILIENT_MEDIA = 0x4000 MAP_RESILIENT_MEDIA = 0x4000
MAP_SHARED = 0x1 MAP_SHARED = 0x1
MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000
MAP_UNIX03 = 0x40000
MCAST_BLOCK_SOURCE = 0x54
MCAST_EXCLUDE = 0x2
MCAST_INCLUDE = 0x1
MCAST_JOIN_GROUP = 0x50
MCAST_JOIN_SOURCE_GROUP = 0x52
MCAST_LEAVE_GROUP = 0x51
MCAST_LEAVE_SOURCE_GROUP = 0x53
MCAST_UNBLOCK_SOURCE = 0x55
MCAST_UNDEFINED = 0x0
MCL_CURRENT = 0x1 MCL_CURRENT = 0x1
MCL_FUTURE = 0x2 MCL_FUTURE = 0x2
MNT_ASYNC = 0x40 MNT_ASYNC = 0x40
@ -931,6 +962,7 @@ const (
MNT_DOVOLFS = 0x8000 MNT_DOVOLFS = 0x8000
MNT_DWAIT = 0x4 MNT_DWAIT = 0x4
MNT_EXPORTED = 0x100 MNT_EXPORTED = 0x100
MNT_EXT_ROOT_DATA_VOL = 0x1
MNT_FORCE = 0x80000 MNT_FORCE = 0x80000
MNT_IGNORE_OWNERSHIP = 0x200000 MNT_IGNORE_OWNERSHIP = 0x200000
MNT_JOURNALED = 0x800000 MNT_JOURNALED = 0x800000
@ -947,12 +979,15 @@ const (
MNT_QUOTA = 0x2000 MNT_QUOTA = 0x2000
MNT_RDONLY = 0x1 MNT_RDONLY = 0x1
MNT_RELOAD = 0x40000 MNT_RELOAD = 0x40000
MNT_REMOVABLE = 0x200
MNT_ROOTFS = 0x4000 MNT_ROOTFS = 0x4000
MNT_SNAPSHOT = 0x40000000
MNT_STRICTATIME = 0x80000000
MNT_SYNCHRONOUS = 0x2 MNT_SYNCHRONOUS = 0x2
MNT_UNION = 0x20 MNT_UNION = 0x20
MNT_UNKNOWNPERMISSIONS = 0x200000 MNT_UNKNOWNPERMISSIONS = 0x200000
MNT_UPDATE = 0x10000 MNT_UPDATE = 0x10000
MNT_VISFLAGMASK = 0x17f0f5ff MNT_VISFLAGMASK = 0xd7f0f7ff
MNT_WAIT = 0x1 MNT_WAIT = 0x1
MSG_CTRUNC = 0x20 MSG_CTRUNC = 0x20
MSG_DONTROUTE = 0x4 MSG_DONTROUTE = 0x4
@ -963,6 +998,7 @@ const (
MSG_HAVEMORE = 0x2000 MSG_HAVEMORE = 0x2000
MSG_HOLD = 0x800 MSG_HOLD = 0x800
MSG_NEEDSA = 0x10000 MSG_NEEDSA = 0x10000
MSG_NOSIGNAL = 0x80000
MSG_OOB = 0x1 MSG_OOB = 0x1
MSG_PEEK = 0x2 MSG_PEEK = 0x2
MSG_RCVMORE = 0x4000 MSG_RCVMORE = 0x4000
@ -979,9 +1015,10 @@ const (
NET_RT_DUMP = 0x1 NET_RT_DUMP = 0x1
NET_RT_DUMP2 = 0x7 NET_RT_DUMP2 = 0x7
NET_RT_FLAGS = 0x2 NET_RT_FLAGS = 0x2
NET_RT_FLAGS_PRIV = 0xa
NET_RT_IFLIST = 0x3 NET_RT_IFLIST = 0x3
NET_RT_IFLIST2 = 0x6 NET_RT_IFLIST2 = 0x6
NET_RT_MAXID = 0xa NET_RT_MAXID = 0xb
NET_RT_STAT = 0x4 NET_RT_STAT = 0x4
NET_RT_TRASH = 0x5 NET_RT_TRASH = 0x5
NFDBITS = 0x20 NFDBITS = 0x20
@ -1019,6 +1056,7 @@ const (
NOTE_LEEWAY = 0x10 NOTE_LEEWAY = 0x10
NOTE_LINK = 0x10 NOTE_LINK = 0x10
NOTE_LOWAT = 0x1 NOTE_LOWAT = 0x1
NOTE_MACHTIME = 0x100
NOTE_MACH_CONTINUOUS_TIME = 0x80 NOTE_MACH_CONTINUOUS_TIME = 0x80
NOTE_NONE = 0x80 NOTE_NONE = 0x80
NOTE_NSECONDS = 0x4 NOTE_NSECONDS = 0x4
@ -1065,6 +1103,7 @@ const (
O_NDELAY = 0x4 O_NDELAY = 0x4
O_NOCTTY = 0x20000 O_NOCTTY = 0x20000
O_NOFOLLOW = 0x100 O_NOFOLLOW = 0x100
O_NOFOLLOW_ANY = 0x20000000
O_NONBLOCK = 0x4 O_NONBLOCK = 0x4
O_POPUP = 0x80000000 O_POPUP = 0x80000000
O_RDONLY = 0x0 O_RDONLY = 0x0
@ -1136,6 +1175,7 @@ const (
RTF_BROADCAST = 0x400000 RTF_BROADCAST = 0x400000
RTF_CLONING = 0x100 RTF_CLONING = 0x100
RTF_CONDEMNED = 0x2000000 RTF_CONDEMNED = 0x2000000
RTF_DEAD = 0x20000000
RTF_DELCLONE = 0x80 RTF_DELCLONE = 0x80
RTF_DONE = 0x40 RTF_DONE = 0x40
RTF_DYNAMIC = 0x10 RTF_DYNAMIC = 0x10
@ -1143,6 +1183,7 @@ const (
RTF_HOST = 0x4 RTF_HOST = 0x4
RTF_IFREF = 0x4000000 RTF_IFREF = 0x4000000
RTF_IFSCOPE = 0x1000000 RTF_IFSCOPE = 0x1000000
RTF_LLDATA = 0x400
RTF_LLINFO = 0x400 RTF_LLINFO = 0x400
RTF_LOCAL = 0x200000 RTF_LOCAL = 0x200000
RTF_MODIFIED = 0x20 RTF_MODIFIED = 0x20
@ -1210,6 +1251,7 @@ const (
SIOCGDRVSPEC = 0xc028697b SIOCGDRVSPEC = 0xc028697b
SIOCGETVLAN = 0xc020697f SIOCGETVLAN = 0xc020697f
SIOCGHIWAT = 0x40047301 SIOCGHIWAT = 0x40047301
SIOCGIF6LOWPAN = 0xc02069c5
SIOCGIFADDR = 0xc0206921 SIOCGIFADDR = 0xc0206921
SIOCGIFALTMTU = 0xc0206948 SIOCGIFALTMTU = 0xc0206948
SIOCGIFASYNCMAP = 0xc020697c SIOCGIFASYNCMAP = 0xc020697c
@ -1220,6 +1262,7 @@ const (
SIOCGIFDEVMTU = 0xc0206944 SIOCGIFDEVMTU = 0xc0206944
SIOCGIFDSTADDR = 0xc0206922 SIOCGIFDSTADDR = 0xc0206922
SIOCGIFFLAGS = 0xc0206911 SIOCGIFFLAGS = 0xc0206911
SIOCGIFFUNCTIONALTYPE = 0xc02069ad
SIOCGIFGENERIC = 0xc020693a SIOCGIFGENERIC = 0xc020693a
SIOCGIFKPI = 0xc0206987 SIOCGIFKPI = 0xc0206987
SIOCGIFMAC = 0xc0206982 SIOCGIFMAC = 0xc0206982
@ -1233,6 +1276,7 @@ const (
SIOCGIFSTATUS = 0xc331693d SIOCGIFSTATUS = 0xc331693d
SIOCGIFVLAN = 0xc020697f SIOCGIFVLAN = 0xc020697f
SIOCGIFWAKEFLAGS = 0xc0206988 SIOCGIFWAKEFLAGS = 0xc0206988
SIOCGIFXMEDIA = 0xc02c6948
SIOCGLOWAT = 0x40047303 SIOCGLOWAT = 0x40047303
SIOCGPGRP = 0x40047309 SIOCGPGRP = 0x40047309
SIOCIFCREATE = 0xc0206978 SIOCIFCREATE = 0xc0206978
@ -1243,6 +1287,7 @@ const (
SIOCSDRVSPEC = 0x8028697b SIOCSDRVSPEC = 0x8028697b
SIOCSETVLAN = 0x8020697e SIOCSETVLAN = 0x8020697e
SIOCSHIWAT = 0x80047300 SIOCSHIWAT = 0x80047300
SIOCSIF6LOWPAN = 0x802069c4
SIOCSIFADDR = 0x8020690c SIOCSIFADDR = 0x8020690c
SIOCSIFALTMTU = 0x80206945 SIOCSIFALTMTU = 0x80206945
SIOCSIFASYNCMAP = 0x8020697d SIOCSIFASYNCMAP = 0x8020697d
@ -1270,6 +1315,7 @@ const (
SOCK_RDM = 0x4 SOCK_RDM = 0x4
SOCK_SEQPACKET = 0x5 SOCK_SEQPACKET = 0x5
SOCK_STREAM = 0x1 SOCK_STREAM = 0x1
SOL_LOCAL = 0x0
SOL_SOCKET = 0xffff SOL_SOCKET = 0xffff
SOMAXCONN = 0x80 SOMAXCONN = 0x80
SO_ACCEPTCONN = 0x2 SO_ACCEPTCONN = 0x2

View file

@ -32,7 +32,7 @@ const (
AF_LAT = 0xe AF_LAT = 0xe
AF_LINK = 0x12 AF_LINK = 0x12
AF_LOCAL = 0x1 AF_LOCAL = 0x1
AF_MAX = 0x28 AF_MAX = 0x29
AF_NATM = 0x1f AF_NATM = 0x1f
AF_NDRV = 0x1b AF_NDRV = 0x1b
AF_NETBIOS = 0x21 AF_NETBIOS = 0x21
@ -49,6 +49,7 @@ const (
AF_UNIX = 0x1 AF_UNIX = 0x1
AF_UNSPEC = 0x0 AF_UNSPEC = 0x0
AF_UTUN = 0x26 AF_UTUN = 0x26
AF_VSOCK = 0x28
ALTWERASE = 0x200 ALTWERASE = 0x200
ATTR_BIT_MAP_COUNT = 0x5 ATTR_BIT_MAP_COUNT = 0x5
ATTR_CMN_ACCESSMASK = 0x20000 ATTR_CMN_ACCESSMASK = 0x20000
@ -83,7 +84,7 @@ const (
ATTR_CMN_PAROBJID = 0x80 ATTR_CMN_PAROBJID = 0x80
ATTR_CMN_RETURNED_ATTRS = 0x80000000 ATTR_CMN_RETURNED_ATTRS = 0x80000000
ATTR_CMN_SCRIPT = 0x100 ATTR_CMN_SCRIPT = 0x100
ATTR_CMN_SETMASK = 0x41c7ff00 ATTR_CMN_SETMASK = 0x51c7ff00
ATTR_CMN_USERACCESS = 0x200000 ATTR_CMN_USERACCESS = 0x200000
ATTR_CMN_UUID = 0x800000 ATTR_CMN_UUID = 0x800000
ATTR_CMN_VALIDMASK = 0xffffffff ATTR_CMN_VALIDMASK = 0xffffffff
@ -357,7 +358,7 @@ const (
DLT_LINUX_SLL = 0x71 DLT_LINUX_SLL = 0x71
DLT_LOOP = 0x6c DLT_LOOP = 0x6c
DLT_LTALK = 0x72 DLT_LTALK = 0x72
DLT_MATCHING_MAX = 0xf5 DLT_MATCHING_MAX = 0x10a
DLT_MATCHING_MIN = 0x68 DLT_MATCHING_MIN = 0x68
DLT_MFR = 0xb6 DLT_MFR = 0xb6
DLT_MOST = 0xd3 DLT_MOST = 0xd3
@ -398,6 +399,7 @@ const (
DLT_SYMANTEC_FIREWALL = 0x63 DLT_SYMANTEC_FIREWALL = 0x63
DLT_TZSP = 0x80 DLT_TZSP = 0x80
DLT_USB = 0xba DLT_USB = 0xba
DLT_USB_DARWIN = 0x10a
DLT_USB_LINUX = 0xbd DLT_USB_LINUX = 0xbd
DLT_USB_LINUX_MMAPPED = 0xdc DLT_USB_LINUX_MMAPPED = 0xdc
DLT_USER0 = 0x93 DLT_USER0 = 0x93
@ -442,8 +444,8 @@ const (
EVFILT_PROC = -0x5 EVFILT_PROC = -0x5
EVFILT_READ = -0x1 EVFILT_READ = -0x1
EVFILT_SIGNAL = -0x6 EVFILT_SIGNAL = -0x6
EVFILT_SYSCOUNT = 0xf EVFILT_SYSCOUNT = 0x11
EVFILT_THREADMARKER = 0xf EVFILT_THREADMARKER = 0x11
EVFILT_TIMER = -0x7 EVFILT_TIMER = -0x7
EVFILT_USER = -0xa EVFILT_USER = -0xa
EVFILT_VM = -0xc EVFILT_VM = -0xc
@ -481,9 +483,12 @@ const (
FSOPT_NOINMEMUPDATE = 0x2 FSOPT_NOINMEMUPDATE = 0x2
FSOPT_PACK_INVAL_ATTRS = 0x8 FSOPT_PACK_INVAL_ATTRS = 0x8
FSOPT_REPORT_FULLSIZE = 0x4 FSOPT_REPORT_FULLSIZE = 0x4
FSOPT_RETURN_REALDEV = 0x200
F_ADDFILESIGS = 0x3d F_ADDFILESIGS = 0x3d
F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 F_ADDFILESIGS_FOR_DYLD_SIM = 0x53
F_ADDFILESIGS_INFO = 0x67
F_ADDFILESIGS_RETURN = 0x61 F_ADDFILESIGS_RETURN = 0x61
F_ADDFILESUPPL = 0x68
F_ADDSIGS = 0x3b F_ADDSIGS = 0x3b
F_ALLOCATEALL = 0x4 F_ALLOCATEALL = 0x4
F_ALLOCATECONTIG = 0x2 F_ALLOCATECONTIG = 0x2
@ -505,8 +510,10 @@ const (
F_GETOWN = 0x5 F_GETOWN = 0x5
F_GETPATH = 0x32 F_GETPATH = 0x32
F_GETPATH_MTMINFO = 0x47 F_GETPATH_MTMINFO = 0x47
F_GETPATH_NOFIRMLINK = 0x66
F_GETPROTECTIONCLASS = 0x3f F_GETPROTECTIONCLASS = 0x3f
F_GETPROTECTIONLEVEL = 0x4d F_GETPROTECTIONLEVEL = 0x4d
F_GETSIGSINFO = 0x69
F_GLOBAL_NOCACHE = 0x37 F_GLOBAL_NOCACHE = 0x37
F_LOG2PHYS = 0x31 F_LOG2PHYS = 0x31
F_LOG2PHYS_EXT = 0x41 F_LOG2PHYS_EXT = 0x41
@ -531,6 +538,7 @@ const (
F_SETPROTECTIONCLASS = 0x40 F_SETPROTECTIONCLASS = 0x40
F_SETSIZE = 0x2b F_SETSIZE = 0x2b
F_SINGLE_WRITER = 0x4c F_SINGLE_WRITER = 0x4c
F_SPECULATIVE_READ = 0x65
F_THAW_FS = 0x36 F_THAW_FS = 0x36
F_TRANSCODEKEY = 0x4b F_TRANSCODEKEY = 0x4b
F_TRIM_ACTIVE_FILE = 0x64 F_TRIM_ACTIVE_FILE = 0x64
@ -562,6 +570,7 @@ const (
IFF_UP = 0x1 IFF_UP = 0x1
IFNAMSIZ = 0x10 IFNAMSIZ = 0x10
IFT_1822 = 0x2 IFT_1822 = 0x2
IFT_6LOWPAN = 0x40
IFT_AAL5 = 0x31 IFT_AAL5 = 0x31
IFT_ARCNET = 0x23 IFT_ARCNET = 0x23
IFT_ARCNETPLUS = 0x24 IFT_ARCNETPLUS = 0x24
@ -766,6 +775,9 @@ const (
IPV6_2292PKTINFO = 0x13 IPV6_2292PKTINFO = 0x13
IPV6_2292PKTOPTIONS = 0x19 IPV6_2292PKTOPTIONS = 0x19
IPV6_2292RTHDR = 0x18 IPV6_2292RTHDR = 0x18
IPV6_ADDR_MC_FLAGS_PREFIX = 0x20
IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10
IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30
IPV6_BINDV6ONLY = 0x1b IPV6_BINDV6ONLY = 0x1b
IPV6_BOUND_IF = 0x7d IPV6_BOUND_IF = 0x7d
IPV6_CHECKSUM = 0x1a IPV6_CHECKSUM = 0x1a
@ -775,7 +787,7 @@ const (
IPV6_FAITH = 0x1d IPV6_FAITH = 0x1d
IPV6_FLOWINFO_MASK = 0xffffff0f IPV6_FLOWINFO_MASK = 0xffffff0f
IPV6_FLOWLABEL_MASK = 0xffff0f00 IPV6_FLOWLABEL_MASK = 0xffff0f00
IPV6_FLOW_ECN_MASK = 0x300 IPV6_FLOW_ECN_MASK = 0x3000
IPV6_FRAGTTL = 0x3c IPV6_FRAGTTL = 0x3c
IPV6_FW_ADD = 0x1e IPV6_FW_ADD = 0x1e
IPV6_FW_DEL = 0x1f IPV6_FW_DEL = 0x1f
@ -818,6 +830,7 @@ const (
IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_LOOP = 0x1
IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1
IP_DF = 0x4000 IP_DF = 0x4000
IP_DONTFRAG = 0x1c
IP_DROP_MEMBERSHIP = 0xd IP_DROP_MEMBERSHIP = 0xd
IP_DROP_SOURCE_MEMBERSHIP = 0x47 IP_DROP_SOURCE_MEMBERSHIP = 0x47
IP_DUMMYNET_CONFIGURE = 0x3c IP_DUMMYNET_CONFIGURE = 0x3c
@ -889,6 +902,12 @@ const (
KERN_OSRELEASE = 0x2 KERN_OSRELEASE = 0x2
KERN_OSTYPE = 0x1 KERN_OSTYPE = 0x1
KERN_VERSION = 0x4 KERN_VERSION = 0x4
LOCAL_PEERCRED = 0x1
LOCAL_PEEREPID = 0x3
LOCAL_PEEREUUID = 0x5
LOCAL_PEERPID = 0x2
LOCAL_PEERTOKEN = 0x6
LOCAL_PEERUUID = 0x4
LOCK_EX = 0x2 LOCK_EX = 0x2
LOCK_NB = 0x4 LOCK_NB = 0x4
LOCK_SH = 0x1 LOCK_SH = 0x1
@ -904,6 +923,7 @@ const (
MADV_SEQUENTIAL = 0x2 MADV_SEQUENTIAL = 0x2
MADV_WILLNEED = 0x3 MADV_WILLNEED = 0x3
MADV_ZERO_WIRED_PAGES = 0x6 MADV_ZERO_WIRED_PAGES = 0x6
MAP_32BIT = 0x8000
MAP_ANON = 0x1000 MAP_ANON = 0x1000
MAP_ANONYMOUS = 0x1000 MAP_ANONYMOUS = 0x1000
MAP_COPY = 0x2 MAP_COPY = 0x2
@ -920,6 +940,17 @@ const (
MAP_RESILIENT_CODESIGN = 0x2000 MAP_RESILIENT_CODESIGN = 0x2000
MAP_RESILIENT_MEDIA = 0x4000 MAP_RESILIENT_MEDIA = 0x4000
MAP_SHARED = 0x1 MAP_SHARED = 0x1
MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000
MAP_UNIX03 = 0x40000
MCAST_BLOCK_SOURCE = 0x54
MCAST_EXCLUDE = 0x2
MCAST_INCLUDE = 0x1
MCAST_JOIN_GROUP = 0x50
MCAST_JOIN_SOURCE_GROUP = 0x52
MCAST_LEAVE_GROUP = 0x51
MCAST_LEAVE_SOURCE_GROUP = 0x53
MCAST_UNBLOCK_SOURCE = 0x55
MCAST_UNDEFINED = 0x0
MCL_CURRENT = 0x1 MCL_CURRENT = 0x1
MCL_FUTURE = 0x2 MCL_FUTURE = 0x2
MNT_ASYNC = 0x40 MNT_ASYNC = 0x40
@ -931,6 +962,7 @@ const (
MNT_DOVOLFS = 0x8000 MNT_DOVOLFS = 0x8000
MNT_DWAIT = 0x4 MNT_DWAIT = 0x4
MNT_EXPORTED = 0x100 MNT_EXPORTED = 0x100
MNT_EXT_ROOT_DATA_VOL = 0x1
MNT_FORCE = 0x80000 MNT_FORCE = 0x80000
MNT_IGNORE_OWNERSHIP = 0x200000 MNT_IGNORE_OWNERSHIP = 0x200000
MNT_JOURNALED = 0x800000 MNT_JOURNALED = 0x800000
@ -947,12 +979,15 @@ const (
MNT_QUOTA = 0x2000 MNT_QUOTA = 0x2000
MNT_RDONLY = 0x1 MNT_RDONLY = 0x1
MNT_RELOAD = 0x40000 MNT_RELOAD = 0x40000
MNT_REMOVABLE = 0x200
MNT_ROOTFS = 0x4000 MNT_ROOTFS = 0x4000
MNT_SNAPSHOT = 0x40000000
MNT_STRICTATIME = 0x80000000
MNT_SYNCHRONOUS = 0x2 MNT_SYNCHRONOUS = 0x2
MNT_UNION = 0x20 MNT_UNION = 0x20
MNT_UNKNOWNPERMISSIONS = 0x200000 MNT_UNKNOWNPERMISSIONS = 0x200000
MNT_UPDATE = 0x10000 MNT_UPDATE = 0x10000
MNT_VISFLAGMASK = 0x17f0f5ff MNT_VISFLAGMASK = 0xd7f0f7ff
MNT_WAIT = 0x1 MNT_WAIT = 0x1
MSG_CTRUNC = 0x20 MSG_CTRUNC = 0x20
MSG_DONTROUTE = 0x4 MSG_DONTROUTE = 0x4
@ -963,6 +998,7 @@ const (
MSG_HAVEMORE = 0x2000 MSG_HAVEMORE = 0x2000
MSG_HOLD = 0x800 MSG_HOLD = 0x800
MSG_NEEDSA = 0x10000 MSG_NEEDSA = 0x10000
MSG_NOSIGNAL = 0x80000
MSG_OOB = 0x1 MSG_OOB = 0x1
MSG_PEEK = 0x2 MSG_PEEK = 0x2
MSG_RCVMORE = 0x4000 MSG_RCVMORE = 0x4000
@ -979,9 +1015,10 @@ const (
NET_RT_DUMP = 0x1 NET_RT_DUMP = 0x1
NET_RT_DUMP2 = 0x7 NET_RT_DUMP2 = 0x7
NET_RT_FLAGS = 0x2 NET_RT_FLAGS = 0x2
NET_RT_FLAGS_PRIV = 0xa
NET_RT_IFLIST = 0x3 NET_RT_IFLIST = 0x3
NET_RT_IFLIST2 = 0x6 NET_RT_IFLIST2 = 0x6
NET_RT_MAXID = 0xa NET_RT_MAXID = 0xb
NET_RT_STAT = 0x4 NET_RT_STAT = 0x4
NET_RT_TRASH = 0x5 NET_RT_TRASH = 0x5
NFDBITS = 0x20 NFDBITS = 0x20
@ -1019,6 +1056,7 @@ const (
NOTE_LEEWAY = 0x10 NOTE_LEEWAY = 0x10
NOTE_LINK = 0x10 NOTE_LINK = 0x10
NOTE_LOWAT = 0x1 NOTE_LOWAT = 0x1
NOTE_MACHTIME = 0x100
NOTE_MACH_CONTINUOUS_TIME = 0x80 NOTE_MACH_CONTINUOUS_TIME = 0x80
NOTE_NONE = 0x80 NOTE_NONE = 0x80
NOTE_NSECONDS = 0x4 NOTE_NSECONDS = 0x4
@ -1065,6 +1103,7 @@ const (
O_NDELAY = 0x4 O_NDELAY = 0x4
O_NOCTTY = 0x20000 O_NOCTTY = 0x20000
O_NOFOLLOW = 0x100 O_NOFOLLOW = 0x100
O_NOFOLLOW_ANY = 0x20000000
O_NONBLOCK = 0x4 O_NONBLOCK = 0x4
O_POPUP = 0x80000000 O_POPUP = 0x80000000
O_RDONLY = 0x0 O_RDONLY = 0x0
@ -1136,6 +1175,7 @@ const (
RTF_BROADCAST = 0x400000 RTF_BROADCAST = 0x400000
RTF_CLONING = 0x100 RTF_CLONING = 0x100
RTF_CONDEMNED = 0x2000000 RTF_CONDEMNED = 0x2000000
RTF_DEAD = 0x20000000
RTF_DELCLONE = 0x80 RTF_DELCLONE = 0x80
RTF_DONE = 0x40 RTF_DONE = 0x40
RTF_DYNAMIC = 0x10 RTF_DYNAMIC = 0x10
@ -1143,6 +1183,7 @@ const (
RTF_HOST = 0x4 RTF_HOST = 0x4
RTF_IFREF = 0x4000000 RTF_IFREF = 0x4000000
RTF_IFSCOPE = 0x1000000 RTF_IFSCOPE = 0x1000000
RTF_LLDATA = 0x400
RTF_LLINFO = 0x400 RTF_LLINFO = 0x400
RTF_LOCAL = 0x200000 RTF_LOCAL = 0x200000
RTF_MODIFIED = 0x20 RTF_MODIFIED = 0x20
@ -1210,6 +1251,7 @@ const (
SIOCGDRVSPEC = 0xc028697b SIOCGDRVSPEC = 0xc028697b
SIOCGETVLAN = 0xc020697f SIOCGETVLAN = 0xc020697f
SIOCGHIWAT = 0x40047301 SIOCGHIWAT = 0x40047301
SIOCGIF6LOWPAN = 0xc02069c5
SIOCGIFADDR = 0xc0206921 SIOCGIFADDR = 0xc0206921
SIOCGIFALTMTU = 0xc0206948 SIOCGIFALTMTU = 0xc0206948
SIOCGIFASYNCMAP = 0xc020697c SIOCGIFASYNCMAP = 0xc020697c
@ -1220,6 +1262,7 @@ const (
SIOCGIFDEVMTU = 0xc0206944 SIOCGIFDEVMTU = 0xc0206944
SIOCGIFDSTADDR = 0xc0206922 SIOCGIFDSTADDR = 0xc0206922
SIOCGIFFLAGS = 0xc0206911 SIOCGIFFLAGS = 0xc0206911
SIOCGIFFUNCTIONALTYPE = 0xc02069ad
SIOCGIFGENERIC = 0xc020693a SIOCGIFGENERIC = 0xc020693a
SIOCGIFKPI = 0xc0206987 SIOCGIFKPI = 0xc0206987
SIOCGIFMAC = 0xc0206982 SIOCGIFMAC = 0xc0206982
@ -1233,6 +1276,7 @@ const (
SIOCGIFSTATUS = 0xc331693d SIOCGIFSTATUS = 0xc331693d
SIOCGIFVLAN = 0xc020697f SIOCGIFVLAN = 0xc020697f
SIOCGIFWAKEFLAGS = 0xc0206988 SIOCGIFWAKEFLAGS = 0xc0206988
SIOCGIFXMEDIA = 0xc02c6948
SIOCGLOWAT = 0x40047303 SIOCGLOWAT = 0x40047303
SIOCGPGRP = 0x40047309 SIOCGPGRP = 0x40047309
SIOCIFCREATE = 0xc0206978 SIOCIFCREATE = 0xc0206978
@ -1243,6 +1287,7 @@ const (
SIOCSDRVSPEC = 0x8028697b SIOCSDRVSPEC = 0x8028697b
SIOCSETVLAN = 0x8020697e SIOCSETVLAN = 0x8020697e
SIOCSHIWAT = 0x80047300 SIOCSHIWAT = 0x80047300
SIOCSIF6LOWPAN = 0x802069c4
SIOCSIFADDR = 0x8020690c SIOCSIFADDR = 0x8020690c
SIOCSIFALTMTU = 0x80206945 SIOCSIFALTMTU = 0x80206945
SIOCSIFASYNCMAP = 0x8020697d SIOCSIFASYNCMAP = 0x8020697d
@ -1270,6 +1315,7 @@ const (
SOCK_RDM = 0x4 SOCK_RDM = 0x4
SOCK_SEQPACKET = 0x5 SOCK_SEQPACKET = 0x5
SOCK_STREAM = 0x1 SOCK_STREAM = 0x1
SOL_LOCAL = 0x0
SOL_SOCKET = 0xffff SOL_SOCKET = 0xffff
SOMAXCONN = 0x80 SOMAXCONN = 0x80
SO_ACCEPTCONN = 0x2 SO_ACCEPTCONN = 0x2

View file

@ -65,6 +65,7 @@ const (
ALG_OP_ENCRYPT = 0x1 ALG_OP_ENCRYPT = 0x1
ALG_SET_AEAD_ASSOCLEN = 0x4 ALG_SET_AEAD_ASSOCLEN = 0x4
ALG_SET_AEAD_AUTHSIZE = 0x5 ALG_SET_AEAD_AUTHSIZE = 0x5
ALG_SET_DRBG_ENTROPY = 0x6
ALG_SET_IV = 0x2 ALG_SET_IV = 0x2
ALG_SET_KEY = 0x1 ALG_SET_KEY = 0x1
ALG_SET_OP = 0x3 ALG_SET_OP = 0x3
@ -179,8 +180,10 @@ const (
BPF_F_ANY_ALIGNMENT = 0x2 BPF_F_ANY_ALIGNMENT = 0x2
BPF_F_QUERY_EFFECTIVE = 0x1 BPF_F_QUERY_EFFECTIVE = 0x1
BPF_F_REPLACE = 0x4 BPF_F_REPLACE = 0x4
BPF_F_SLEEPABLE = 0x10
BPF_F_STRICT_ALIGNMENT = 0x1 BPF_F_STRICT_ALIGNMENT = 0x1
BPF_F_TEST_RND_HI32 = 0x4 BPF_F_TEST_RND_HI32 = 0x4
BPF_F_TEST_RUN_ON_CPU = 0x1
BPF_F_TEST_STATE_FREQ = 0x8 BPF_F_TEST_STATE_FREQ = 0x8
BPF_H = 0x8 BPF_H = 0x8
BPF_IMM = 0x0 BPF_IMM = 0x0
@ -219,6 +222,7 @@ const (
BPF_NET_OFF = -0x100000 BPF_NET_OFF = -0x100000
BPF_OBJ_NAME_LEN = 0x10 BPF_OBJ_NAME_LEN = 0x10
BPF_OR = 0x40 BPF_OR = 0x40
BPF_PSEUDO_BTF_ID = 0x3
BPF_PSEUDO_CALL = 0x1 BPF_PSEUDO_CALL = 0x1
BPF_PSEUDO_MAP_FD = 0x1 BPF_PSEUDO_MAP_FD = 0x1
BPF_PSEUDO_MAP_VALUE = 0x2 BPF_PSEUDO_MAP_VALUE = 0x2
@ -309,6 +313,7 @@ const (
CAN_J1939 = 0x7 CAN_J1939 = 0x7
CAN_MAX_DLC = 0x8 CAN_MAX_DLC = 0x8
CAN_MAX_DLEN = 0x8 CAN_MAX_DLEN = 0x8
CAN_MAX_RAW_DLC = 0xf
CAN_MCNET = 0x5 CAN_MCNET = 0x5
CAN_MTU = 0x10 CAN_MTU = 0x10
CAN_NPROTO = 0x8 CAN_NPROTO = 0x8
@ -429,10 +434,13 @@ const (
DEBUGFS_MAGIC = 0x64626720 DEBUGFS_MAGIC = 0x64626720
DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d
DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e
DEVLINK_FLASH_OVERWRITE_IDENTIFIERS = 0x2
DEVLINK_FLASH_OVERWRITE_SETTINGS = 0x1
DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" DEVLINK_GENL_MCGRP_CONFIG_NAME = "config"
DEVLINK_GENL_NAME = "devlink" DEVLINK_GENL_NAME = "devlink"
DEVLINK_GENL_VERSION = 0x1 DEVLINK_GENL_VERSION = 0x1
DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14
DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS = 0x3
DEVMEM_MAGIC = 0x454d444d DEVMEM_MAGIC = 0x454d444d
DEVPTS_SUPER_MAGIC = 0x1cd1 DEVPTS_SUPER_MAGIC = 0x1cd1
DMA_BUF_MAGIC = 0x444d4142 DMA_BUF_MAGIC = 0x444d4142
@ -477,9 +485,9 @@ const (
DM_UUID_FLAG = 0x4000 DM_UUID_FLAG = 0x4000
DM_UUID_LEN = 0x81 DM_UUID_LEN = 0x81
DM_VERSION = 0xc138fd00 DM_VERSION = 0xc138fd00
DM_VERSION_EXTRA = "-ioctl (2020-02-27)" DM_VERSION_EXTRA = "-ioctl (2020-10-01)"
DM_VERSION_MAJOR = 0x4 DM_VERSION_MAJOR = 0x4
DM_VERSION_MINOR = 0x2a DM_VERSION_MINOR = 0x2b
DM_VERSION_PATCHLEVEL = 0x0 DM_VERSION_PATCHLEVEL = 0x0
DT_BLK = 0x6 DT_BLK = 0x6
DT_CHR = 0x2 DT_CHR = 0x2
@ -520,6 +528,119 @@ const (
EPOLL_CTL_DEL = 0x2 EPOLL_CTL_DEL = 0x2
EPOLL_CTL_MOD = 0x3 EPOLL_CTL_MOD = 0x3
EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2
ESP_V4_FLOW = 0xa
ESP_V6_FLOW = 0xc
ETHER_FLOW = 0x12
ETHTOOL_BUSINFO_LEN = 0x20
ETHTOOL_EROMVERS_LEN = 0x20
ETHTOOL_FEC_AUTO = 0x2
ETHTOOL_FEC_BASER = 0x10
ETHTOOL_FEC_LLRS = 0x20
ETHTOOL_FEC_NONE = 0x1
ETHTOOL_FEC_OFF = 0x4
ETHTOOL_FEC_RS = 0x8
ETHTOOL_FLAG_ALL = 0x7
ETHTOOL_FLAG_COMPACT_BITSETS = 0x1
ETHTOOL_FLAG_OMIT_REPLY = 0x2
ETHTOOL_FLAG_STATS = 0x4
ETHTOOL_FLASHDEV = 0x33
ETHTOOL_FLASH_MAX_FILENAME = 0x80
ETHTOOL_FWVERS_LEN = 0x20
ETHTOOL_F_COMPAT = 0x4
ETHTOOL_F_UNSUPPORTED = 0x1
ETHTOOL_F_WISH = 0x2
ETHTOOL_GCHANNELS = 0x3c
ETHTOOL_GCOALESCE = 0xe
ETHTOOL_GDRVINFO = 0x3
ETHTOOL_GEEE = 0x44
ETHTOOL_GEEPROM = 0xb
ETHTOOL_GENL_NAME = "ethtool"
ETHTOOL_GENL_VERSION = 0x1
ETHTOOL_GET_DUMP_DATA = 0x40
ETHTOOL_GET_DUMP_FLAG = 0x3f
ETHTOOL_GET_TS_INFO = 0x41
ETHTOOL_GFEATURES = 0x3a
ETHTOOL_GFECPARAM = 0x50
ETHTOOL_GFLAGS = 0x25
ETHTOOL_GGRO = 0x2b
ETHTOOL_GGSO = 0x23
ETHTOOL_GLINK = 0xa
ETHTOOL_GLINKSETTINGS = 0x4c
ETHTOOL_GMODULEEEPROM = 0x43
ETHTOOL_GMODULEINFO = 0x42
ETHTOOL_GMSGLVL = 0x7
ETHTOOL_GPAUSEPARAM = 0x12
ETHTOOL_GPERMADDR = 0x20
ETHTOOL_GPFLAGS = 0x27
ETHTOOL_GPHYSTATS = 0x4a
ETHTOOL_GREGS = 0x4
ETHTOOL_GRINGPARAM = 0x10
ETHTOOL_GRSSH = 0x46
ETHTOOL_GRXCLSRLALL = 0x30
ETHTOOL_GRXCLSRLCNT = 0x2e
ETHTOOL_GRXCLSRULE = 0x2f
ETHTOOL_GRXCSUM = 0x14
ETHTOOL_GRXFH = 0x29
ETHTOOL_GRXFHINDIR = 0x38
ETHTOOL_GRXNTUPLE = 0x36
ETHTOOL_GRXRINGS = 0x2d
ETHTOOL_GSET = 0x1
ETHTOOL_GSG = 0x18
ETHTOOL_GSSET_INFO = 0x37
ETHTOOL_GSTATS = 0x1d
ETHTOOL_GSTRINGS = 0x1b
ETHTOOL_GTSO = 0x1e
ETHTOOL_GTUNABLE = 0x48
ETHTOOL_GTXCSUM = 0x16
ETHTOOL_GUFO = 0x21
ETHTOOL_GWOL = 0x5
ETHTOOL_MCGRP_MONITOR_NAME = "monitor"
ETHTOOL_NWAY_RST = 0x9
ETHTOOL_PERQUEUE = 0x4b
ETHTOOL_PHYS_ID = 0x1c
ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff
ETHTOOL_PHY_EDPD_DISABLE = 0x0
ETHTOOL_PHY_EDPD_NO_TX = 0xfffe
ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff
ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0
ETHTOOL_PHY_GTUNABLE = 0x4e
ETHTOOL_PHY_STUNABLE = 0x4f
ETHTOOL_RESET = 0x34
ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2
ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1
ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff
ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000
ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20
ETHTOOL_SCHANNELS = 0x3d
ETHTOOL_SCOALESCE = 0xf
ETHTOOL_SEEE = 0x45
ETHTOOL_SEEPROM = 0xc
ETHTOOL_SET_DUMP = 0x3e
ETHTOOL_SFEATURES = 0x3b
ETHTOOL_SFECPARAM = 0x51
ETHTOOL_SFLAGS = 0x26
ETHTOOL_SGRO = 0x2c
ETHTOOL_SGSO = 0x24
ETHTOOL_SLINKSETTINGS = 0x4d
ETHTOOL_SMSGLVL = 0x8
ETHTOOL_SPAUSEPARAM = 0x13
ETHTOOL_SPFLAGS = 0x28
ETHTOOL_SRINGPARAM = 0x11
ETHTOOL_SRSSH = 0x47
ETHTOOL_SRXCLSRLDEL = 0x31
ETHTOOL_SRXCLSRLINS = 0x32
ETHTOOL_SRXCSUM = 0x15
ETHTOOL_SRXFH = 0x2a
ETHTOOL_SRXFHINDIR = 0x39
ETHTOOL_SRXNTUPLE = 0x35
ETHTOOL_SSET = 0x2
ETHTOOL_SSG = 0x19
ETHTOOL_STSO = 0x1f
ETHTOOL_STUNABLE = 0x49
ETHTOOL_STXCSUM = 0x17
ETHTOOL_SUFO = 0x22
ETHTOOL_SWOL = 0x6
ETHTOOL_TEST = 0x1a
ETH_P_1588 = 0x88f7 ETH_P_1588 = 0x88f7
ETH_P_8021AD = 0x88a8 ETH_P_8021AD = 0x88a8
ETH_P_8021AH = 0x88e7 ETH_P_8021AH = 0x88e7
@ -544,6 +665,7 @@ const (
ETH_P_CAIF = 0xf7 ETH_P_CAIF = 0xf7
ETH_P_CAN = 0xc ETH_P_CAN = 0xc
ETH_P_CANFD = 0xd ETH_P_CANFD = 0xd
ETH_P_CFM = 0x8902
ETH_P_CONTROL = 0x16 ETH_P_CONTROL = 0x16
ETH_P_CUST = 0x6006 ETH_P_CUST = 0x6006
ETH_P_DDCMP = 0x6 ETH_P_DDCMP = 0x6
@ -714,7 +836,6 @@ const (
FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0
FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1
FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3
FSCRYPT_POLICY_FLAGS_VALID = 0x1f
FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4
FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10
FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8
@ -745,7 +866,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x1f FS_POLICY_FLAGS_VALID = 0x7
FS_VERITY_FL = 0x100000 FS_VERITY_FL = 0x100000
FS_VERITY_HASH_ALG_SHA256 = 0x1 FS_VERITY_HASH_ALG_SHA256 = 0x1
FS_VERITY_HASH_ALG_SHA512 = 0x2 FS_VERITY_HASH_ALG_SHA512 = 0x2
@ -989,6 +1110,7 @@ const (
IPV6_DONTFRAG = 0x3e IPV6_DONTFRAG = 0x3e
IPV6_DROP_MEMBERSHIP = 0x15 IPV6_DROP_MEMBERSHIP = 0x15
IPV6_DSTOPTS = 0x3b IPV6_DSTOPTS = 0x3b
IPV6_FLOW = 0x11
IPV6_FREEBIND = 0x4e IPV6_FREEBIND = 0x4e
IPV6_HDRINCL = 0x24 IPV6_HDRINCL = 0x24
IPV6_HOPLIMIT = 0x34 IPV6_HOPLIMIT = 0x34
@ -1017,6 +1139,7 @@ const (
IPV6_PMTUDISC_WANT = 0x1 IPV6_PMTUDISC_WANT = 0x1
IPV6_RECVDSTOPTS = 0x3a IPV6_RECVDSTOPTS = 0x3a
IPV6_RECVERR = 0x19 IPV6_RECVERR = 0x19
IPV6_RECVERR_RFC4884 = 0x1f
IPV6_RECVFRAGSIZE = 0x4d IPV6_RECVFRAGSIZE = 0x4d
IPV6_RECVHOPLIMIT = 0x33 IPV6_RECVHOPLIMIT = 0x33
IPV6_RECVHOPOPTS = 0x35 IPV6_RECVHOPOPTS = 0x35
@ -1038,6 +1161,7 @@ const (
IPV6_TRANSPARENT = 0x4b IPV6_TRANSPARENT = 0x4b
IPV6_UNICAST_HOPS = 0x10 IPV6_UNICAST_HOPS = 0x10
IPV6_UNICAST_IF = 0x4c IPV6_UNICAST_IF = 0x4c
IPV6_USER_FLOW = 0xe
IPV6_V6ONLY = 0x1a IPV6_V6ONLY = 0x1a
IPV6_XFRM_POLICY = 0x23 IPV6_XFRM_POLICY = 0x23
IP_ADD_MEMBERSHIP = 0x23 IP_ADD_MEMBERSHIP = 0x23
@ -1080,6 +1204,7 @@ const (
IP_PMTUDISC_PROBE = 0x3 IP_PMTUDISC_PROBE = 0x3
IP_PMTUDISC_WANT = 0x1 IP_PMTUDISC_WANT = 0x1
IP_RECVERR = 0xb IP_RECVERR = 0xb
IP_RECVERR_RFC4884 = 0x1a
IP_RECVFRAGSIZE = 0x19 IP_RECVFRAGSIZE = 0x19
IP_RECVOPTS = 0x6 IP_RECVOPTS = 0x6
IP_RECVORIGDSTADDR = 0x14 IP_RECVORIGDSTADDR = 0x14
@ -1094,6 +1219,7 @@ const (
IP_TTL = 0x2 IP_TTL = 0x2
IP_UNBLOCK_SOURCE = 0x25 IP_UNBLOCK_SOURCE = 0x25
IP_UNICAST_IF = 0x32 IP_UNICAST_IF = 0x32
IP_USER_FLOW = 0xd
IP_XFRM_POLICY = 0x11 IP_XFRM_POLICY = 0x11
ISOFS_SUPER_MAGIC = 0x9660 ISOFS_SUPER_MAGIC = 0x9660
ISTRIP = 0x20 ISTRIP = 0x20
@ -1331,6 +1457,7 @@ const (
MS_NOREMOTELOCK = 0x8000000 MS_NOREMOTELOCK = 0x8000000
MS_NOSEC = 0x10000000 MS_NOSEC = 0x10000000
MS_NOSUID = 0x2 MS_NOSUID = 0x2
MS_NOSYMFOLLOW = 0x100
MS_NOUSER = -0x80000000 MS_NOUSER = -0x80000000
MS_POSIXACL = 0x10000 MS_POSIXACL = 0x10000
MS_PRIVATE = 0x40000 MS_PRIVATE = 0x40000
@ -1572,7 +1699,7 @@ const (
PERF_MEM_REMOTE_REMOTE = 0x1 PERF_MEM_REMOTE_REMOTE = 0x1
PERF_MEM_REMOTE_SHIFT = 0x25 PERF_MEM_REMOTE_SHIFT = 0x25
PERF_MEM_SNOOPX_FWD = 0x1 PERF_MEM_SNOOPX_FWD = 0x1
PERF_MEM_SNOOPX_SHIFT = 0x25 PERF_MEM_SNOOPX_SHIFT = 0x26
PERF_MEM_SNOOP_HIT = 0x4 PERF_MEM_SNOOP_HIT = 0x4
PERF_MEM_SNOOP_HITM = 0x10 PERF_MEM_SNOOP_HITM = 0x10
PERF_MEM_SNOOP_MISS = 0x8 PERF_MEM_SNOOP_MISS = 0x8
@ -1672,6 +1799,13 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_MTE_TAG_MASK = 0x7fff8
PR_MTE_TAG_SHIFT = 0x3
PR_MTE_TCF_ASYNC = 0x4
PR_MTE_TCF_MASK = 0x6
PR_MTE_TCF_NONE = 0x0
PR_MTE_TCF_SHIFT = 0x1
PR_MTE_TCF_SYNC = 0x2
PR_PAC_APDAKEY = 0x4 PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8 PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10 PR_PAC_APGAKEY = 0x10
@ -1709,6 +1843,7 @@ const (
PR_SET_SECCOMP = 0x16 PR_SET_SECCOMP = 0x16
PR_SET_SECUREBITS = 0x1c PR_SET_SECUREBITS = 0x1c
PR_SET_SPECULATION_CTRL = 0x35 PR_SET_SPECULATION_CTRL = 0x35
PR_SET_SYSCALL_USER_DISPATCH = 0x3b
PR_SET_TAGGED_ADDR_CTRL = 0x37 PR_SET_TAGGED_ADDR_CTRL = 0x37
PR_SET_THP_DISABLE = 0x29 PR_SET_THP_DISABLE = 0x29
PR_SET_TIMERSLACK = 0x1d PR_SET_TIMERSLACK = 0x1d
@ -1728,6 +1863,8 @@ const (
PR_SVE_SET_VL_ONEXEC = 0x40000 PR_SVE_SET_VL_ONEXEC = 0x40000
PR_SVE_VL_INHERIT = 0x20000 PR_SVE_VL_INHERIT = 0x20000
PR_SVE_VL_LEN_MASK = 0xffff PR_SVE_VL_LEN_MASK = 0xffff
PR_SYS_DISPATCH_OFF = 0x0
PR_SYS_DISPATCH_ON = 0x1
PR_TAGGED_ADDR_ENABLE = 0x1 PR_TAGGED_ADDR_ENABLE = 0x1
PR_TASK_PERF_EVENTS_DISABLE = 0x1f PR_TASK_PERF_EVENTS_DISABLE = 0x1f
PR_TASK_PERF_EVENTS_ENABLE = 0x20 PR_TASK_PERF_EVENTS_ENABLE = 0x20
@ -1973,12 +2110,13 @@ const (
RTM_SETLINK = 0x13 RTM_SETLINK = 0x13
RTM_SETNEIGHTBL = 0x43 RTM_SETNEIGHTBL = 0x43
RTNH_ALIGNTO = 0x4 RTNH_ALIGNTO = 0x4
RTNH_COMPARE_MASK = 0x19 RTNH_COMPARE_MASK = 0x59
RTNH_F_DEAD = 0x1 RTNH_F_DEAD = 0x1
RTNH_F_LINKDOWN = 0x10 RTNH_F_LINKDOWN = 0x10
RTNH_F_OFFLOAD = 0x8 RTNH_F_OFFLOAD = 0x8
RTNH_F_ONLINK = 0x4 RTNH_F_ONLINK = 0x4
RTNH_F_PERVASIVE = 0x2 RTNH_F_PERVASIVE = 0x2
RTNH_F_TRAP = 0x40
RTNH_F_UNRESOLVED = 0x20 RTNH_F_UNRESOLVED = 0x20
RTN_MAX = 0xb RTN_MAX = 0xb
RTPROT_BABEL = 0x2a RTPROT_BABEL = 0x2a
@ -2206,7 +2344,7 @@ const (
STATX_ATTR_APPEND = 0x20 STATX_ATTR_APPEND = 0x20
STATX_ATTR_AUTOMOUNT = 0x1000 STATX_ATTR_AUTOMOUNT = 0x1000
STATX_ATTR_COMPRESSED = 0x4 STATX_ATTR_COMPRESSED = 0x4
STATX_ATTR_DAX = 0x2000 STATX_ATTR_DAX = 0x200000
STATX_ATTR_ENCRYPTED = 0x800 STATX_ATTR_ENCRYPTED = 0x800
STATX_ATTR_IMMUTABLE = 0x10 STATX_ATTR_IMMUTABLE = 0x10
STATX_ATTR_MOUNT_ROOT = 0x2000 STATX_ATTR_MOUNT_ROOT = 0x2000
@ -2325,6 +2463,8 @@ const (
TCP_TX_DELAY = 0x25 TCP_TX_DELAY = 0x25
TCP_ULP = 0x1f TCP_ULP = 0x1f
TCP_USER_TIMEOUT = 0x12 TCP_USER_TIMEOUT = 0x12
TCP_V4_FLOW = 0x1
TCP_V6_FLOW = 0x5
TCP_WINDOW_CLAMP = 0xa TCP_WINDOW_CLAMP = 0xa
TCP_ZEROCOPY_RECEIVE = 0x23 TCP_ZEROCOPY_RECEIVE = 0x23
TFD_TIMER_ABSTIME = 0x1 TFD_TIMER_ABSTIME = 0x1
@ -2390,6 +2530,7 @@ const (
TIPC_NODE_STATE = 0x0 TIPC_NODE_STATE = 0x0
TIPC_OK = 0x0 TIPC_OK = 0x0
TIPC_PUBLISHED = 0x1 TIPC_PUBLISHED = 0x1
TIPC_REKEYING_NOW = 0xffffffff
TIPC_RESERVED_TYPES = 0x40 TIPC_RESERVED_TYPES = 0x40
TIPC_RETDATA = 0x2 TIPC_RETDATA = 0x2
TIPC_SERVICE_ADDR = 0x2 TIPC_SERVICE_ADDR = 0x2
@ -2446,10 +2587,12 @@ const (
VMADDR_CID_HOST = 0x2 VMADDR_CID_HOST = 0x2
VMADDR_CID_HYPERVISOR = 0x0 VMADDR_CID_HYPERVISOR = 0x0
VMADDR_CID_LOCAL = 0x1 VMADDR_CID_LOCAL = 0x1
VMADDR_FLAG_TO_HOST = 0x1
VMADDR_PORT_ANY = 0xffffffff VMADDR_PORT_ANY = 0xffffffff
VM_SOCKETS_INVALID_VERSION = 0xffffffff VM_SOCKETS_INVALID_VERSION = 0xffffffff
VQUIT = 0x1 VQUIT = 0x1
VT0 = 0x0 VT0 = 0x0
WAKE_MAGIC = 0x20
WALL = 0x40000000 WALL = 0x40000000
WCLONE = 0x80000000 WCLONE = 0x80000000
WCONTINUED = 0x8 WCONTINUED = 0x8

View file

@ -4,7 +4,7 @@
// +build 386,linux // +build 386,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/_const.go
package unix package unix
@ -165,6 +165,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
PPPIOCATTACH = 0x4004743d PPPIOCATTACH = 0x4004743d
PPPIOCATTCHAN = 0x40047438 PPPIOCATTCHAN = 0x40047438
PPPIOCBRIDGECHAN = 0x40047435
PPPIOCCONNECT = 0x4004743a PPPIOCCONNECT = 0x4004743a
PPPIOCDETACH = 0x4004743c PPPIOCDETACH = 0x4004743c
PPPIOCDISCONN = 0x7439 PPPIOCDISCONN = 0x7439
@ -192,6 +193,7 @@ const (
PPPIOCSPASS = 0x40087447 PPPIOCSPASS = 0x40087447
PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSRASYNCMAP = 0x40047454
PPPIOCSXASYNCMAP = 0x4020744f PPPIOCSXASYNCMAP = 0x4020744f
PPPIOCUNBRIDGECHAN = 0x7434
PPPIOCXFERUNIT = 0x744e PPPIOCXFERUNIT = 0x744e
PR_SET_PTRACER_ANY = 0xffffffff PR_SET_PTRACER_ANY = 0xffffffff
PTRACE_GETFPREGS = 0xe PTRACE_GETFPREGS = 0xe
@ -268,6 +270,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -290,6 +293,7 @@ const (
SO_PEERCRED = 0x11 SO_PEERCRED = 0x11
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build amd64,linux // +build amd64,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/_const.go
package unix package unix
@ -165,6 +165,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
PPPIOCATTACH = 0x4004743d PPPIOCATTACH = 0x4004743d
PPPIOCATTCHAN = 0x40047438 PPPIOCATTCHAN = 0x40047438
PPPIOCBRIDGECHAN = 0x40047435
PPPIOCCONNECT = 0x4004743a PPPIOCCONNECT = 0x4004743a
PPPIOCDETACH = 0x4004743c PPPIOCDETACH = 0x4004743c
PPPIOCDISCONN = 0x7439 PPPIOCDISCONN = 0x7439
@ -192,6 +193,7 @@ const (
PPPIOCSPASS = 0x40107447 PPPIOCSPASS = 0x40107447
PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSRASYNCMAP = 0x40047454
PPPIOCSXASYNCMAP = 0x4020744f PPPIOCSXASYNCMAP = 0x4020744f
PPPIOCUNBRIDGECHAN = 0x7434
PPPIOCXFERUNIT = 0x744e PPPIOCXFERUNIT = 0x744e
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
PTRACE_ARCH_PRCTL = 0x1e PTRACE_ARCH_PRCTL = 0x1e
@ -269,6 +271,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -291,6 +294,7 @@ const (
SO_PEERCRED = 0x11 SO_PEERCRED = 0x11
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build arm,linux // +build arm,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -163,6 +163,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
PPPIOCATTACH = 0x4004743d PPPIOCATTACH = 0x4004743d
PPPIOCATTCHAN = 0x40047438 PPPIOCATTCHAN = 0x40047438
PPPIOCBRIDGECHAN = 0x40047435
PPPIOCCONNECT = 0x4004743a PPPIOCCONNECT = 0x4004743a
PPPIOCDETACH = 0x4004743c PPPIOCDETACH = 0x4004743c
PPPIOCDISCONN = 0x7439 PPPIOCDISCONN = 0x7439
@ -190,6 +191,7 @@ const (
PPPIOCSPASS = 0x40087447 PPPIOCSPASS = 0x40087447
PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSRASYNCMAP = 0x40047454
PPPIOCSXASYNCMAP = 0x4020744f PPPIOCSXASYNCMAP = 0x4020744f
PPPIOCUNBRIDGECHAN = 0x7434
PPPIOCXFERUNIT = 0x744e PPPIOCXFERUNIT = 0x744e
PR_SET_PTRACER_ANY = 0xffffffff PR_SET_PTRACER_ANY = 0xffffffff
PTRACE_GETCRUNCHREGS = 0x19 PTRACE_GETCRUNCHREGS = 0x19
@ -275,6 +277,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -297,6 +300,7 @@ const (
SO_PEERCRED = 0x11 SO_PEERCRED = 0x11
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build arm64,linux // +build arm64,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go
package unix package unix
@ -166,6 +166,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
PPPIOCATTACH = 0x4004743d PPPIOCATTACH = 0x4004743d
PPPIOCATTCHAN = 0x40047438 PPPIOCATTCHAN = 0x40047438
PPPIOCBRIDGECHAN = 0x40047435
PPPIOCCONNECT = 0x4004743a PPPIOCCONNECT = 0x4004743a
PPPIOCDETACH = 0x4004743c PPPIOCDETACH = 0x4004743c
PPPIOCDISCONN = 0x7439 PPPIOCDISCONN = 0x7439
@ -193,9 +194,13 @@ const (
PPPIOCSPASS = 0x40107447 PPPIOCSPASS = 0x40107447
PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSRASYNCMAP = 0x40047454
PPPIOCSXASYNCMAP = 0x4020744f PPPIOCSXASYNCMAP = 0x4020744f
PPPIOCUNBRIDGECHAN = 0x7434
PPPIOCXFERUNIT = 0x744e PPPIOCXFERUNIT = 0x744e
PROT_BTI = 0x10 PROT_BTI = 0x10
PROT_MTE = 0x20
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
PTRACE_PEEKMTETAGS = 0x21
PTRACE_POKEMTETAGS = 0x22
PTRACE_SYSEMU = 0x1f PTRACE_SYSEMU = 0x1f
PTRACE_SYSEMU_SINGLESTEP = 0x20 PTRACE_SYSEMU_SINGLESTEP = 0x20
RLIMIT_AS = 0x9 RLIMIT_AS = 0x9
@ -262,6 +267,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -284,6 +290,7 @@ const (
SO_PEERCRED = 0x11 SO_PEERCRED = 0x11
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build mips,linux // +build mips,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -163,6 +163,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
PPPIOCATTACH = 0x8004743d PPPIOCATTACH = 0x8004743d
PPPIOCATTCHAN = 0x80047438 PPPIOCATTCHAN = 0x80047438
PPPIOCBRIDGECHAN = 0x80047435
PPPIOCCONNECT = 0x8004743a PPPIOCCONNECT = 0x8004743a
PPPIOCDETACH = 0x8004743c PPPIOCDETACH = 0x8004743c
PPPIOCDISCONN = 0x20007439 PPPIOCDISCONN = 0x20007439
@ -190,6 +191,7 @@ const (
PPPIOCSPASS = 0x80087447 PPPIOCSPASS = 0x80087447
PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSRASYNCMAP = 0x80047454
PPPIOCSXASYNCMAP = 0x8020744f PPPIOCSXASYNCMAP = 0x8020744f
PPPIOCUNBRIDGECHAN = 0x20007434
PPPIOCXFERUNIT = 0x2000744e PPPIOCXFERUNIT = 0x2000744e
PR_SET_PTRACER_ANY = 0xffffffff PR_SET_PTRACER_ANY = 0xffffffff
PTRACE_GETFPREGS = 0xe PTRACE_GETFPREGS = 0xe
@ -268,6 +270,7 @@ const (
SO_BROADCAST = 0x20 SO_BROADCAST = 0x20
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -290,6 +293,7 @@ const (
SO_PEERCRED = 0x12 SO_PEERCRED = 0x12
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1e SO_PEERSEC = 0x1e
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x1028 SO_PROTOCOL = 0x1028
SO_RCVBUF = 0x1002 SO_RCVBUF = 0x1002
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build mips64,linux // +build mips64,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -163,6 +163,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
PPPIOCATTACH = 0x8004743d PPPIOCATTACH = 0x8004743d
PPPIOCATTCHAN = 0x80047438 PPPIOCATTCHAN = 0x80047438
PPPIOCBRIDGECHAN = 0x80047435
PPPIOCCONNECT = 0x8004743a PPPIOCCONNECT = 0x8004743a
PPPIOCDETACH = 0x8004743c PPPIOCDETACH = 0x8004743c
PPPIOCDISCONN = 0x20007439 PPPIOCDISCONN = 0x20007439
@ -190,6 +191,7 @@ const (
PPPIOCSPASS = 0x80107447 PPPIOCSPASS = 0x80107447
PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSRASYNCMAP = 0x80047454
PPPIOCSXASYNCMAP = 0x8020744f PPPIOCSXASYNCMAP = 0x8020744f
PPPIOCUNBRIDGECHAN = 0x20007434
PPPIOCXFERUNIT = 0x2000744e PPPIOCXFERUNIT = 0x2000744e
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
PTRACE_GETFPREGS = 0xe PTRACE_GETFPREGS = 0xe
@ -268,6 +270,7 @@ const (
SO_BROADCAST = 0x20 SO_BROADCAST = 0x20
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -290,6 +293,7 @@ const (
SO_PEERCRED = 0x12 SO_PEERCRED = 0x12
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1e SO_PEERSEC = 0x1e
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x1028 SO_PROTOCOL = 0x1028
SO_RCVBUF = 0x1002 SO_RCVBUF = 0x1002
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build mips64le,linux // +build mips64le,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -163,6 +163,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
PPPIOCATTACH = 0x8004743d PPPIOCATTACH = 0x8004743d
PPPIOCATTCHAN = 0x80047438 PPPIOCATTCHAN = 0x80047438
PPPIOCBRIDGECHAN = 0x80047435
PPPIOCCONNECT = 0x8004743a PPPIOCCONNECT = 0x8004743a
PPPIOCDETACH = 0x8004743c PPPIOCDETACH = 0x8004743c
PPPIOCDISCONN = 0x20007439 PPPIOCDISCONN = 0x20007439
@ -190,6 +191,7 @@ const (
PPPIOCSPASS = 0x80107447 PPPIOCSPASS = 0x80107447
PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSRASYNCMAP = 0x80047454
PPPIOCSXASYNCMAP = 0x8020744f PPPIOCSXASYNCMAP = 0x8020744f
PPPIOCUNBRIDGECHAN = 0x20007434
PPPIOCXFERUNIT = 0x2000744e PPPIOCXFERUNIT = 0x2000744e
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
PTRACE_GETFPREGS = 0xe PTRACE_GETFPREGS = 0xe
@ -268,6 +270,7 @@ const (
SO_BROADCAST = 0x20 SO_BROADCAST = 0x20
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -290,6 +293,7 @@ const (
SO_PEERCRED = 0x12 SO_PEERCRED = 0x12
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1e SO_PEERSEC = 0x1e
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x1028 SO_PROTOCOL = 0x1028
SO_RCVBUF = 0x1002 SO_RCVBUF = 0x1002
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build mipsle,linux // +build mipsle,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -163,6 +163,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
PPPIOCATTACH = 0x8004743d PPPIOCATTACH = 0x8004743d
PPPIOCATTCHAN = 0x80047438 PPPIOCATTCHAN = 0x80047438
PPPIOCBRIDGECHAN = 0x80047435
PPPIOCCONNECT = 0x8004743a PPPIOCCONNECT = 0x8004743a
PPPIOCDETACH = 0x8004743c PPPIOCDETACH = 0x8004743c
PPPIOCDISCONN = 0x20007439 PPPIOCDISCONN = 0x20007439
@ -190,6 +191,7 @@ const (
PPPIOCSPASS = 0x80087447 PPPIOCSPASS = 0x80087447
PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSRASYNCMAP = 0x80047454
PPPIOCSXASYNCMAP = 0x8020744f PPPIOCSXASYNCMAP = 0x8020744f
PPPIOCUNBRIDGECHAN = 0x20007434
PPPIOCXFERUNIT = 0x2000744e PPPIOCXFERUNIT = 0x2000744e
PR_SET_PTRACER_ANY = 0xffffffff PR_SET_PTRACER_ANY = 0xffffffff
PTRACE_GETFPREGS = 0xe PTRACE_GETFPREGS = 0xe
@ -268,6 +270,7 @@ const (
SO_BROADCAST = 0x20 SO_BROADCAST = 0x20
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -290,6 +293,7 @@ const (
SO_PEERCRED = 0x12 SO_PEERCRED = 0x12
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1e SO_PEERSEC = 0x1e
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x1028 SO_PROTOCOL = 0x1028
SO_RCVBUF = 0x1002 SO_RCVBUF = 0x1002
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build ppc64,linux // +build ppc64,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -165,6 +165,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
PPPIOCATTACH = 0x8004743d PPPIOCATTACH = 0x8004743d
PPPIOCATTCHAN = 0x80047438 PPPIOCATTCHAN = 0x80047438
PPPIOCBRIDGECHAN = 0x80047435
PPPIOCCONNECT = 0x8004743a PPPIOCCONNECT = 0x8004743a
PPPIOCDETACH = 0x8004743c PPPIOCDETACH = 0x8004743c
PPPIOCDISCONN = 0x20007439 PPPIOCDISCONN = 0x20007439
@ -192,6 +193,7 @@ const (
PPPIOCSPASS = 0x80107447 PPPIOCSPASS = 0x80107447
PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSRASYNCMAP = 0x80047454
PPPIOCSXASYNCMAP = 0x8020744f PPPIOCSXASYNCMAP = 0x8020744f
PPPIOCUNBRIDGECHAN = 0x20007434
PPPIOCXFERUNIT = 0x2000744e PPPIOCXFERUNIT = 0x2000744e
PROT_SAO = 0x10 PROT_SAO = 0x10
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
@ -327,6 +329,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -349,6 +352,7 @@ const (
SO_PEERCRED = 0x15 SO_PEERCRED = 0x15
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build ppc64le,linux // +build ppc64le,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -165,6 +165,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
PPPIOCATTACH = 0x8004743d PPPIOCATTACH = 0x8004743d
PPPIOCATTCHAN = 0x80047438 PPPIOCATTCHAN = 0x80047438
PPPIOCBRIDGECHAN = 0x80047435
PPPIOCCONNECT = 0x8004743a PPPIOCCONNECT = 0x8004743a
PPPIOCDETACH = 0x8004743c PPPIOCDETACH = 0x8004743c
PPPIOCDISCONN = 0x20007439 PPPIOCDISCONN = 0x20007439
@ -192,6 +193,7 @@ const (
PPPIOCSPASS = 0x80107447 PPPIOCSPASS = 0x80107447
PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSRASYNCMAP = 0x80047454
PPPIOCSXASYNCMAP = 0x8020744f PPPIOCSXASYNCMAP = 0x8020744f
PPPIOCUNBRIDGECHAN = 0x20007434
PPPIOCXFERUNIT = 0x2000744e PPPIOCXFERUNIT = 0x2000744e
PROT_SAO = 0x10 PROT_SAO = 0x10
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
@ -327,6 +329,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -349,6 +352,7 @@ const (
SO_PEERCRED = 0x15 SO_PEERCRED = 0x15
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build riscv64,linux // +build riscv64,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -163,6 +163,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
PPPIOCATTACH = 0x4004743d PPPIOCATTACH = 0x4004743d
PPPIOCATTCHAN = 0x40047438 PPPIOCATTCHAN = 0x40047438
PPPIOCBRIDGECHAN = 0x40047435
PPPIOCCONNECT = 0x4004743a PPPIOCCONNECT = 0x4004743a
PPPIOCDETACH = 0x4004743c PPPIOCDETACH = 0x4004743c
PPPIOCDISCONN = 0x7439 PPPIOCDISCONN = 0x7439
@ -190,6 +191,7 @@ const (
PPPIOCSPASS = 0x40107447 PPPIOCSPASS = 0x40107447
PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSRASYNCMAP = 0x40047454
PPPIOCSXASYNCMAP = 0x4020744f PPPIOCSXASYNCMAP = 0x4020744f
PPPIOCUNBRIDGECHAN = 0x7434
PPPIOCXFERUNIT = 0x744e PPPIOCXFERUNIT = 0x744e
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
RLIMIT_AS = 0x9 RLIMIT_AS = 0x9
@ -256,6 +258,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -278,6 +281,7 @@ const (
SO_PEERCRED = 0x11 SO_PEERCRED = 0x11
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build s390x,linux // +build s390x,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/_const.go
package unix package unix
@ -163,6 +163,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x2405 PERF_EVENT_IOC_SET_OUTPUT = 0x2405
PPPIOCATTACH = 0x4004743d PPPIOCATTACH = 0x4004743d
PPPIOCATTCHAN = 0x40047438 PPPIOCATTCHAN = 0x40047438
PPPIOCBRIDGECHAN = 0x40047435
PPPIOCCONNECT = 0x4004743a PPPIOCCONNECT = 0x4004743a
PPPIOCDETACH = 0x4004743c PPPIOCDETACH = 0x4004743c
PPPIOCDISCONN = 0x7439 PPPIOCDISCONN = 0x7439
@ -190,6 +191,7 @@ const (
PPPIOCSPASS = 0x40107447 PPPIOCSPASS = 0x40107447
PPPIOCSRASYNCMAP = 0x40047454 PPPIOCSRASYNCMAP = 0x40047454
PPPIOCSXASYNCMAP = 0x4020744f PPPIOCSXASYNCMAP = 0x4020744f
PPPIOCUNBRIDGECHAN = 0x7434
PPPIOCXFERUNIT = 0x744e PPPIOCXFERUNIT = 0x744e
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
PTRACE_DISABLE_TE = 0x5010 PTRACE_DISABLE_TE = 0x5010
@ -329,6 +331,7 @@ const (
SO_BROADCAST = 0x6 SO_BROADCAST = 0x6
SO_BSDCOMPAT = 0xe SO_BSDCOMPAT = 0xe
SO_BUSY_POLL = 0x2e SO_BUSY_POLL = 0x2e
SO_BUSY_POLL_BUDGET = 0x46
SO_CNX_ADVICE = 0x35 SO_CNX_ADVICE = 0x35
SO_COOKIE = 0x39 SO_COOKIE = 0x39
SO_DETACH_REUSEPORT_BPF = 0x44 SO_DETACH_REUSEPORT_BPF = 0x44
@ -351,6 +354,7 @@ const (
SO_PEERCRED = 0x11 SO_PEERCRED = 0x11
SO_PEERGROUPS = 0x3b SO_PEERGROUPS = 0x3b
SO_PEERSEC = 0x1f SO_PEERSEC = 0x1f
SO_PREFER_BUSY_POLL = 0x45
SO_PROTOCOL = 0x26 SO_PROTOCOL = 0x26
SO_RCVBUF = 0x8 SO_RCVBUF = 0x8
SO_RCVBUFFORCE = 0x21 SO_RCVBUFFORCE = 0x21

View file

@ -4,7 +4,7 @@
// +build sparc64,linux // +build sparc64,linux
// Code generated by cmd/cgo -godefs; DO NOT EDIT. // Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/_const.go
package unix package unix
@ -168,6 +168,7 @@ const (
PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 PERF_EVENT_IOC_SET_OUTPUT = 0x20002405
PPPIOCATTACH = 0x8004743d PPPIOCATTACH = 0x8004743d
PPPIOCATTCHAN = 0x80047438 PPPIOCATTCHAN = 0x80047438
PPPIOCBRIDGECHAN = 0x80047435
PPPIOCCONNECT = 0x8004743a PPPIOCCONNECT = 0x8004743a
PPPIOCDETACH = 0x8004743c PPPIOCDETACH = 0x8004743c
PPPIOCDISCONN = 0x20007439 PPPIOCDISCONN = 0x20007439
@ -195,6 +196,7 @@ const (
PPPIOCSPASS = 0x80107447 PPPIOCSPASS = 0x80107447
PPPIOCSRASYNCMAP = 0x80047454 PPPIOCSRASYNCMAP = 0x80047454
PPPIOCSXASYNCMAP = 0x8020744f PPPIOCSXASYNCMAP = 0x8020744f
PPPIOCUNBRIDGECHAN = 0x20007434
PPPIOCXFERUNIT = 0x2000744e PPPIOCXFERUNIT = 0x2000744e
PR_SET_PTRACER_ANY = 0xffffffffffffffff PR_SET_PTRACER_ANY = 0xffffffffffffffff
PTRACE_GETFPAREGS = 0x14 PTRACE_GETFPAREGS = 0x14
@ -322,6 +324,7 @@ const (
SO_BROADCAST = 0x20 SO_BROADCAST = 0x20
SO_BSDCOMPAT = 0x400 SO_BSDCOMPAT = 0x400
SO_BUSY_POLL = 0x30 SO_BUSY_POLL = 0x30
SO_BUSY_POLL_BUDGET = 0x49
SO_CNX_ADVICE = 0x37 SO_CNX_ADVICE = 0x37
SO_COOKIE = 0x3b SO_COOKIE = 0x3b
SO_DETACH_REUSEPORT_BPF = 0x47 SO_DETACH_REUSEPORT_BPF = 0x47
@ -344,6 +347,7 @@ const (
SO_PEERCRED = 0x40 SO_PEERCRED = 0x40
SO_PEERGROUPS = 0x3d SO_PEERGROUPS = 0x3d
SO_PEERSEC = 0x1e SO_PEERSEC = 0x1e
SO_PREFER_BUSY_POLL = 0x48
SO_PROTOCOL = 0x1028 SO_PROTOCOL = 0x1028
SO_RCVBUF = 0x1002 SO_RCVBUF = 0x1002
SO_RCVBUFFORCE = 0x100b SO_RCVBUFFORCE = 0x100b

View file

@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe() (r int, w int, err error) { func pipe(p *[2]int32) (err error) {
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
r = int(r0)
w = int(r1)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
} }
@ -2381,7 +2379,7 @@ func libc_lstat64_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {
_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)

View file

@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe() (r int, w int, err error) { func pipe(p *[2]int32) (err error) {
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
r = int(r0)
w = int(r1)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
} }
@ -2381,7 +2379,7 @@ func libc_lstat64_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {
_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)

View file

@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe() (r int, w int, err error) { func pipe(p *[2]int32) (err error) {
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
r = int(r0)
w = int(r1)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
} }

View file

@ -462,10 +462,8 @@ func libc_munlockall_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe() (r int, w int, err error) { func pipe(p *[2]int32) (err error) {
r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) _, _, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), uintptr(unsafe.Pointer(p)), 0, 0)
r = int(r0)
w = int(r1)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
} }
@ -2381,7 +2379,7 @@ func libc_lstat_trampoline()
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {
_, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)

View file

@ -362,8 +362,10 @@ func pipe() (r int, w int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe2(p *[2]_C_int, flags int) (err error) { func pipe2(flags int) (r int, w int, err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) r0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(flags), 0, 0)
r = int(r0)
w = int(r1)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
} }

View file

@ -14,22 +14,19 @@ import (
//go:cgo_import_dynamic libc_writev writev "libc.so" //go:cgo_import_dynamic libc_writev writev "libc.so"
//go:cgo_import_dynamic libc_pwritev pwritev "libc.so" //go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" //go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so"
//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so"
//go:linkname procreadv libc_readv //go:linkname procreadv libc_readv
//go:linkname procpreadv libc_preadv //go:linkname procpreadv libc_preadv
//go:linkname procwritev libc_writev //go:linkname procwritev libc_writev
//go:linkname procpwritev libc_pwritev //go:linkname procpwritev libc_pwritev
//go:linkname procaccept4 libc_accept4 //go:linkname procaccept4 libc_accept4
//go:linkname procpipe2 libc_pipe2
var ( var (
procreadv, procreadv,
procpreadv, procpreadv,
procwritev, procwritev,
procpwritev, procpwritev,
procaccept4, procaccept4 syscallFunc
procpipe2 syscallFunc
) )
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
@ -102,13 +99,3 @@ func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int,
} }
return return
} }
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0)
if e1 != 0 {
err = e1
}
return
}

View file

@ -362,6 +362,16 @@ func pipe() (fd1 int, fd2 int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdents(fd int, buf []byte) (n int, err error) { func Getdents(fd int, buf []byte) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {

View file

@ -362,6 +362,16 @@ func pipe() (fd1 int, fd2 int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdents(fd int, buf []byte) (n int, err error) { func Getdents(fd int, buf []byte) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {

View file

@ -362,6 +362,16 @@ func pipe() (fd1 int, fd2 int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdents(fd int, buf []byte) (n int, err error) { func Getdents(fd int, buf []byte) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {

View file

@ -362,6 +362,16 @@ func pipe() (fd1 int, fd2 int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdents(fd int, buf []byte) (n int, err error) { func Getdents(fd int, buf []byte) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {

View file

@ -11,6 +11,7 @@ import (
) )
//go:cgo_import_dynamic libc_pipe pipe "libc.so" //go:cgo_import_dynamic libc_pipe pipe "libc.so"
//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so"
//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" //go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so"
//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" //go:cgo_import_dynamic libc_getcwd getcwd "libc.so"
//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" //go:cgo_import_dynamic libc_getgroups getgroups "libc.so"
@ -114,6 +115,7 @@ import (
//go:cgo_import_dynamic libc_statvfs statvfs "libc.so" //go:cgo_import_dynamic libc_statvfs statvfs "libc.so"
//go:cgo_import_dynamic libc_symlink symlink "libc.so" //go:cgo_import_dynamic libc_symlink symlink "libc.so"
//go:cgo_import_dynamic libc_sync sync "libc.so" //go:cgo_import_dynamic libc_sync sync "libc.so"
//go:cgo_import_dynamic libc_sysconf sysconf "libc.so"
//go:cgo_import_dynamic libc_times times "libc.so" //go:cgo_import_dynamic libc_times times "libc.so"
//go:cgo_import_dynamic libc_truncate truncate "libc.so" //go:cgo_import_dynamic libc_truncate truncate "libc.so"
//go:cgo_import_dynamic libc_fsync fsync "libc.so" //go:cgo_import_dynamic libc_fsync fsync "libc.so"
@ -140,6 +142,7 @@ import (
//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so"
//go:linkname procpipe libc_pipe //go:linkname procpipe libc_pipe
//go:linkname procpipe2 libc_pipe2
//go:linkname procgetsockname libc_getsockname //go:linkname procgetsockname libc_getsockname
//go:linkname procGetcwd libc_getcwd //go:linkname procGetcwd libc_getcwd
//go:linkname procgetgroups libc_getgroups //go:linkname procgetgroups libc_getgroups
@ -243,6 +246,7 @@ import (
//go:linkname procStatvfs libc_statvfs //go:linkname procStatvfs libc_statvfs
//go:linkname procSymlink libc_symlink //go:linkname procSymlink libc_symlink
//go:linkname procSync libc_sync //go:linkname procSync libc_sync
//go:linkname procSysconf libc_sysconf
//go:linkname procTimes libc_times //go:linkname procTimes libc_times
//go:linkname procTruncate libc_truncate //go:linkname procTruncate libc_truncate
//go:linkname procFsync libc_fsync //go:linkname procFsync libc_fsync
@ -270,6 +274,7 @@ import (
var ( var (
procpipe, procpipe,
procpipe2,
procgetsockname, procgetsockname,
procGetcwd, procGetcwd,
procgetgroups, procgetgroups,
@ -373,6 +378,7 @@ var (
procStatvfs, procStatvfs,
procSymlink, procSymlink,
procSync, procSync,
procSysconf,
procTimes, procTimes,
procTruncate, procTruncate,
procFsync, procFsync,
@ -412,6 +418,16 @@ func pipe(p *[2]_C_int) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0)
if e1 != 0 {
err = e1
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
if e1 != 0 { if e1 != 0 {
@ -1674,6 +1690,17 @@ func Sync() (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Sysconf(which int) (n int64, err error) {
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0)
n = int64(r0)
if e1 != 0 {
err = e1
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Times(tms *Tms) (ticks uintptr, err error) { func Times(tms *Tms) (ticks uintptr, err error) {
r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)
ticks = uintptr(r0) ticks = uintptr(r0)

View file

@ -435,4 +435,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -357,4 +357,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -399,4 +399,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -302,4 +302,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -420,4 +420,6 @@ const (
SYS_OPENAT2 = 4437 SYS_OPENAT2 = 4437
SYS_PIDFD_GETFD = 4438 SYS_PIDFD_GETFD = 4438
SYS_FACCESSAT2 = 4439 SYS_FACCESSAT2 = 4439
SYS_PROCESS_MADVISE = 4440
SYS_EPOLL_PWAIT2 = 4441
) )

View file

@ -350,4 +350,6 @@ const (
SYS_OPENAT2 = 5437 SYS_OPENAT2 = 5437
SYS_PIDFD_GETFD = 5438 SYS_PIDFD_GETFD = 5438
SYS_FACCESSAT2 = 5439 SYS_FACCESSAT2 = 5439
SYS_PROCESS_MADVISE = 5440
SYS_EPOLL_PWAIT2 = 5441
) )

View file

@ -350,4 +350,6 @@ const (
SYS_OPENAT2 = 5437 SYS_OPENAT2 = 5437
SYS_PIDFD_GETFD = 5438 SYS_PIDFD_GETFD = 5438
SYS_FACCESSAT2 = 5439 SYS_FACCESSAT2 = 5439
SYS_PROCESS_MADVISE = 5440
SYS_EPOLL_PWAIT2 = 5441
) )

View file

@ -420,4 +420,6 @@ const (
SYS_OPENAT2 = 4437 SYS_OPENAT2 = 4437
SYS_PIDFD_GETFD = 4438 SYS_PIDFD_GETFD = 4438
SYS_FACCESSAT2 = 4439 SYS_FACCESSAT2 = 4439
SYS_PROCESS_MADVISE = 4440
SYS_EPOLL_PWAIT2 = 4441
) )

View file

@ -399,4 +399,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -399,4 +399,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -301,4 +301,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -364,4 +364,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -378,4 +378,6 @@ const (
SYS_OPENAT2 = 437 SYS_OPENAT2 = 437
SYS_PIDFD_GETFD = 438 SYS_PIDFD_GETFD = 438
SYS_FACCESSAT2 = 439 SYS_FACCESSAT2 = 439
SYS_PROCESS_MADVISE = 440
SYS_EPOLL_PWAIT2 = 441
) )

View file

@ -219,6 +219,7 @@ const (
SizeofSockaddrUnix = 0x401 SizeofSockaddrUnix = 0x401
SizeofSockaddrDatalink = 0x80 SizeofSockaddrDatalink = 0x80
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIovec = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPv6Mreq = 0x14 SizeofIPv6Mreq = 0x14
SizeofIPv6MTUInfo = 0x20 SizeofIPv6MTUInfo = 0x20

View file

@ -223,6 +223,7 @@ const (
SizeofSockaddrUnix = 0x401 SizeofSockaddrUnix = 0x401
SizeofSockaddrDatalink = 0x80 SizeofSockaddrDatalink = 0x80
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIovec = 0x10
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPv6Mreq = 0x14 SizeofIPv6Mreq = 0x14
SizeofIPv6MTUInfo = 0x20 SizeofIPv6MTUInfo = 0x20

View file

@ -210,6 +210,13 @@ type RawSockaddrCtl struct {
type _Socklen uint32 type _Socklen uint32
type Xucred struct {
Version uint32
Uid uint32
Ngroups int16
Groups [16]uint32
}
type Linger struct { type Linger struct {
Onoff int32 Onoff int32
Linger int32 Linger int32
@ -273,6 +280,7 @@ const (
SizeofSockaddrUnix = 0x6a SizeofSockaddrUnix = 0x6a
SizeofSockaddrDatalink = 0x14 SizeofSockaddrDatalink = 0x14
SizeofSockaddrCtl = 0x20 SizeofSockaddrCtl = 0x20
SizeofXucred = 0x4c
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIovec = 0x10 SizeofIovec = 0x10
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8

View file

@ -210,6 +210,13 @@ type RawSockaddrCtl struct {
type _Socklen uint32 type _Socklen uint32
type Xucred struct {
Version uint32
Uid uint32
Ngroups int16
Groups [16]uint32
}
type Linger struct { type Linger struct {
Onoff int32 Onoff int32
Linger int32 Linger int32
@ -273,6 +280,7 @@ const (
SizeofSockaddrUnix = 0x6a SizeofSockaddrUnix = 0x6a
SizeofSockaddrDatalink = 0x14 SizeofSockaddrDatalink = 0x14
SizeofSockaddrCtl = 0x20 SizeofSockaddrCtl = 0x20
SizeofXucred = 0x4c
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIovec = 0x10 SizeofIovec = 0x10
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8

Some files were not shown because too many files have changed in this diff Show more