]> Cypherpunks repositories - gostls13.git/commitdiff
all: update vendored dependencies [generated]
authorDmitri Shuralyov <dmitshur@golang.org>
Sat, 9 Aug 2025 02:06:27 +0000 (22:06 -0400)
committerGopher Robot <gobot@golang.org>
Wed, 13 Aug 2025 14:15:41 +0000 (07:15 -0700)
The tree has opened for Go 1.26 development. This is a time to update
all golang.org/x/... module versions that contribute packages to the
std and cmd modules in the standard library to latest master versions.

For #36905.

[git-generate]
go install golang.org/x/build/cmd/updatestd@latest
go install golang.org/x/tools/cmd/bundle@latest
updatestd -goroot=$(pwd) -branch=master

# Update a cmd/vet test case.
patch <<EOF
--- src/cmd/vet/testdata/assign/assign.go
+++ src/cmd/vet/testdata/assign/assign.go
@@ -18 +18 @@ func (s *ST) SetX(x int, ch chan int) {
- x = x // ERROR "self-assignment of x to x"
+ x = x // ERROR "self-assignment of x"
@@ -20 +20 @@ func (s *ST) SetX(x int, ch chan int) {
- s.x = s.x // ERROR "self-assignment of s.x to s.x"
+ s.x = s.x // ERROR "self-assignment of s.x"
@@ -22 +22 @@ func (s *ST) SetX(x int, ch chan int) {
- s.l[0] = s.l[0] // ERROR "self-assignment of s.l.0. to s.l.0."
+ s.l[0] = s.l[0] // ERROR "self-assignment of s.l.0."
EOF

Change-Id: I3fc77d49fa7b47803d363287910b0e37bedefb60
Reviewed-on: https://go-review.googlesource.com/c/go/+/694536
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>

65 files changed:
src/cmd/go.mod
src/cmd/go.sum
src/cmd/vendor/golang.org/x/sync/errgroup/errgroup.go
src/cmd/vendor/golang.org/x/sys/unix/mkerrors.sh
src/cmd/vendor/golang.org/x/sys/unix/syscall_darwin.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
src/cmd/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
src/cmd/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
src/cmd/vendor/golang.org/x/term/term_windows.go
src/cmd/vendor/golang.org/x/term/terminal.go
src/cmd/vendor/golang.org/x/tools/go/analysis/internal/analysisflags/flags.go
src/cmd/vendor/golang.org/x/tools/go/analysis/passes/assign/assign.go
src/cmd/vendor/golang.org/x/tools/go/ast/inspector/inspector.go
src/cmd/vendor/golang.org/x/tools/go/ast/inspector/typeof.go
src/cmd/vendor/golang.org/x/tools/internal/typesinternal/typeindex/typeindex.go
src/cmd/vendor/modules.txt
src/cmd/vet/testdata/assign/assign.go
src/go.mod
src/go.sum
src/net/http/h2_bundle.go
src/vendor/modules.txt

index 5624b81cc51bacb05ab53e4280ea08576f4e27e9..dcea08e01589e126bb7c8d6e9b93470d4c464282 100644 (file)
@@ -1,21 +1,21 @@
 module cmd
 
-go 1.25
+go 1.26
 
 require (
        github.com/google/pprof v0.0.0-20250208200701-d0013a598941
-       golang.org/x/arch v0.18.1-0.20250605182141-b2f4e2807dec
-       golang.org/x/build v0.0.0-20250606033421-8c8ff6f34a83
-       golang.org/x/mod v0.25.0
-       golang.org/x/sync v0.15.0
-       golang.org/x/sys v0.33.0
-       golang.org/x/telemetry v0.0.0-20250606142133-60998feb31a8
-       golang.org/x/term v0.32.0
-       golang.org/x/tools v0.34.0
+       golang.org/x/arch v0.20.1-0.20250808194827-46ba08e3ae58
+       golang.org/x/build v0.0.0-20250806225920-b7c66c047964
+       golang.org/x/mod v0.27.0
+       golang.org/x/sync v0.16.0
+       golang.org/x/sys v0.35.0
+       golang.org/x/telemetry v0.0.0-20250807160809-1a19826ec488
+       golang.org/x/term v0.34.0
+       golang.org/x/tools v0.36.1-0.20250808220315-8866876b956f
 )
 
 require (
        github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd // indirect
-       golang.org/x/text v0.26.0 // indirect
+       golang.org/x/text v0.28.0 // indirect
        rsc.io/markdown v0.0.0-20240306144322-0bf8f97ee8ef // indirect
 )
index d5d1553e5b782995e15846c0452f601f087e3dca..de01e8e294cc5750c74ef03c2c024bb0b697d213 100644 (file)
@@ -6,23 +6,23 @@ github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd h1:EVX1s+X
 github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw=
 github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68=
 github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-golang.org/x/arch v0.18.1-0.20250605182141-b2f4e2807dec h1:fCOjXc18tBlkVy4m+VuL1WU8VTukYOGtAk7nC5QYPRY=
-golang.org/x/arch v0.18.1-0.20250605182141-b2f4e2807dec/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk=
-golang.org/x/build v0.0.0-20250606033421-8c8ff6f34a83 h1:IiFSc399rOkpudtnsTDKdtfFEsvd+dGfNfl+ytV267c=
-golang.org/x/build v0.0.0-20250606033421-8c8ff6f34a83/go.mod h1:SDzKvZFXqZyl3tLink1AnKsAocWm0yFc3UfmxR6aIOw=
-golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w=
-golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
-golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
-golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
-golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
-golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
-golang.org/x/telemetry v0.0.0-20250606142133-60998feb31a8 h1:jBJ3nsFeGb1DzjhOg2ZgZTpnDnOZfHId7RNlBJUtkOM=
-golang.org/x/telemetry v0.0.0-20250606142133-60998feb31a8/go.mod h1:mUcjA5g0luJpMYCLjhH91f4t4RAUNp+zq9ZmUoqPD7M=
-golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
-golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
-golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
-golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
-golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo=
-golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
+golang.org/x/arch v0.20.1-0.20250808194827-46ba08e3ae58 h1:uxPa6+/WsUfzikIAPMqpTho10y4qtYpINBurU+6NrHE=
+golang.org/x/arch v0.20.1-0.20250808194827-46ba08e3ae58/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk=
+golang.org/x/build v0.0.0-20250806225920-b7c66c047964 h1:yRs1K51GKq7hsIO+YHJ8LsslrvwFceNPIv0tYjpcBd0=
+golang.org/x/build v0.0.0-20250806225920-b7c66c047964/go.mod h1:i9Vx7+aOQUpYJRxSO+OpRStVBCVL/9ccI51xblWm5WY=
+golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
+golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
+golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
+golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
+golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/telemetry v0.0.0-20250807160809-1a19826ec488 h1:3doPGa+Gg4snce233aCWnbZVFsyFMo/dR40KK/6skyE=
+golang.org/x/telemetry v0.0.0-20250807160809-1a19826ec488/go.mod h1:fGb/2+tgXXjhjHsTNdVEEMZNWA0quBnfrO+AfoDSAKw=
+golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
+golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
+golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
+golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
+golang.org/x/tools v0.36.1-0.20250808220315-8866876b956f h1:9m2Iptt9ZZU5llKDJy1XUl5d13PN1ZYV16KwOvE6jOw=
+golang.org/x/tools v0.36.1-0.20250808220315-8866876b956f/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
 rsc.io/markdown v0.0.0-20240306144322-0bf8f97ee8ef h1:mqLYrXCXYEZOop9/Dbo6RPX11539nwiCNBb1icVPmw8=
 rsc.io/markdown v0.0.0-20240306144322-0bf8f97ee8ef/go.mod h1:8xcPgWmwlZONN1D9bjxtHEjrUtSEa3fakVF8iaewYKQ=
index cb6bb9ad3ba9f8c5a36b2b68429d33a5ffc1430a..1d8cffae8cfc872e5c3748e4394da5ec1a763ccf 100644 (file)
@@ -12,8 +12,6 @@ package errgroup
 import (
        "context"
        "fmt"
-       "runtime"
-       "runtime/debug"
        "sync"
 )
 
@@ -33,10 +31,6 @@ type Group struct {
 
        errOnce sync.Once
        err     error
-
-       mu         sync.Mutex
-       panicValue any  // = PanicError | PanicValue; non-nil if some Group.Go goroutine panicked.
-       abnormal   bool // some Group.Go goroutine terminated abnormally (panic or goexit).
 }
 
 func (g *Group) done() {
@@ -56,22 +50,13 @@ func WithContext(ctx context.Context) (*Group, context.Context) {
        return &Group{cancel: cancel}, ctx
 }
 
-// Wait blocks until all function calls from the Go method have returned
-// normally, then returns the first non-nil error (if any) from them.
-//
-// If any of the calls panics, Wait panics with a [PanicValue];
-// and if any of them calls [runtime.Goexit], Wait calls runtime.Goexit.
+// Wait blocks until all function calls from the Go method have returned, then
+// returns the first non-nil error (if any) from them.
 func (g *Group) Wait() error {
        g.wg.Wait()
        if g.cancel != nil {
                g.cancel(g.err)
        }
-       if g.panicValue != nil {
-               panic(g.panicValue)
-       }
-       if g.abnormal {
-               runtime.Goexit()
-       }
        return g.err
 }
 
@@ -81,53 +66,31 @@ func (g *Group) Wait() error {
 // It blocks until the new goroutine can be added without the number of
 // goroutines in the group exceeding the configured limit.
 //
-// The first goroutine in the group that returns a non-nil error, panics, or
-// invokes [runtime.Goexit] will cancel the associated Context, if any.
+// The first goroutine in the group that returns a non-nil error will
+// cancel the associated Context, if any. The error will be returned
+// by Wait.
 func (g *Group) Go(f func() error) {
        if g.sem != nil {
                g.sem <- token{}
        }
 
-       g.add(f)
-}
-
-func (g *Group) add(f func() error) {
        g.wg.Add(1)
        go func() {
                defer g.done()
-               normalReturn := false
-               defer func() {
-                       if normalReturn {
-                               return
-                       }
-                       v := recover()
-                       g.mu.Lock()
-                       defer g.mu.Unlock()
-                       if !g.abnormal {
-                               if g.cancel != nil {
-                                       g.cancel(g.err)
-                               }
-                               g.abnormal = true
-                       }
-                       if v != nil && g.panicValue == nil {
-                               switch v := v.(type) {
-                               case error:
-                                       g.panicValue = PanicError{
-                                               Recovered: v,
-                                               Stack:     debug.Stack(),
-                                       }
-                               default:
-                                       g.panicValue = PanicValue{
-                                               Recovered: v,
-                                               Stack:     debug.Stack(),
-                                       }
-                               }
-                       }
-               }()
 
-               err := f()
-               normalReturn = true
-               if err != nil {
+               // It is tempting to propagate panics from f()
+               // up to the goroutine that calls Wait, but
+               // it creates more problems than it solves:
+               // - it delays panics arbitrarily,
+               //   making bugs harder to detect;
+               // - it turns f's panic stack into a mere value,
+               //   hiding it from crash-monitoring tools;
+               // - it risks deadlocks that hide the panic entirely,
+               //   if f's panic leaves the program in a state
+               //   that prevents the Wait call from being reached.
+               // See #53757, #74275, #74304, #74306.
+
+               if err := f(); err != nil {
                        g.errOnce.Do(func() {
                                g.err = err
                                if g.cancel != nil {
@@ -152,7 +115,19 @@ func (g *Group) TryGo(f func() error) bool {
                }
        }
 
-       g.add(f)
+       g.wg.Add(1)
+       go func() {
+               defer g.done()
+
+               if err := f(); err != nil {
+                       g.errOnce.Do(func() {
+                               g.err = err
+                               if g.cancel != nil {
+                                       g.cancel(g.err)
+                               }
+                       })
+               }
+       }()
        return true
 }
 
@@ -174,34 +149,3 @@ func (g *Group) SetLimit(n int) {
        }
        g.sem = make(chan token, n)
 }
-
-// PanicError wraps an error recovered from an unhandled panic
-// when calling a function passed to Go or TryGo.
-type PanicError struct {
-       Recovered error
-       Stack     []byte // result of call to [debug.Stack]
-}
-
-func (p PanicError) Error() string {
-       if len(p.Stack) > 0 {
-               return fmt.Sprintf("recovered from errgroup.Group: %v\n%s", p.Recovered, p.Stack)
-       }
-       return fmt.Sprintf("recovered from errgroup.Group: %v", p.Recovered)
-}
-
-func (p PanicError) Unwrap() error { return p.Recovered }
-
-// PanicValue wraps a value that does not implement the error interface,
-// recovered from an unhandled panic when calling a function passed to Go or
-// TryGo.
-type PanicValue struct {
-       Recovered any
-       Stack     []byte // result of call to [debug.Stack]
-}
-
-func (p PanicValue) String() string {
-       if len(p.Stack) > 0 {
-               return fmt.Sprintf("recovered from errgroup.Group: %v\n%s", p.Recovered, p.Stack)
-       }
-       return fmt.Sprintf("recovered from errgroup.Group: %v", p.Recovered)
-}
index 6ab02b6c3122afd5e2ea1a7cf7f31a43342746fb..d1c8b2640ebd4bfb0adb7efb435b3992f369e67e 100644 (file)
@@ -349,6 +349,9 @@ struct ltchars {
 #define _HIDIOCGRAWPHYS                HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN)
 #define _HIDIOCGRAWUNIQ                HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN)
 
+// Renamed in v6.16, commit c6d732c38f93 ("net: ethtool: remove duplicate defines for family info")
+#define ETHTOOL_FAMILY_NAME    ETHTOOL_GENL_NAME
+#define ETHTOOL_FAMILY_VERSION ETHTOOL_GENL_VERSION
 '
 
 includes_NetBSD='
index 798f61ad3bf97d34df8c993500c12166f90039c3..7838ca5db200b23cf3962773cdd6552a0f9a43fd 100644 (file)
@@ -602,14 +602,9 @@ func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocI
        return
 }
 
-// sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error)
 const minIovec = 8
 
 func Readv(fd int, iovs [][]byte) (n int, err error) {
-       if !darwinKernelVersionMin(11, 0, 0) {
-               return 0, ENOSYS
-       }
-
        iovecs := make([]Iovec, 0, minIovec)
        iovecs = appendBytes(iovecs, iovs)
        n, err = readv(fd, iovecs)
@@ -618,9 +613,6 @@ func Readv(fd int, iovs [][]byte) (n int, err error) {
 }
 
 func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
-       if !darwinKernelVersionMin(11, 0, 0) {
-               return 0, ENOSYS
-       }
        iovecs := make([]Iovec, 0, minIovec)
        iovecs = appendBytes(iovecs, iovs)
        n, err = preadv(fd, iovecs, offset)
@@ -629,10 +621,6 @@ func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
 }
 
 func Writev(fd int, iovs [][]byte) (n int, err error) {
-       if !darwinKernelVersionMin(11, 0, 0) {
-               return 0, ENOSYS
-       }
-
        iovecs := make([]Iovec, 0, minIovec)
        iovecs = appendBytes(iovecs, iovs)
        if raceenabled {
@@ -644,10 +632,6 @@ func Writev(fd int, iovs [][]byte) (n int, err error) {
 }
 
 func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
-       if !darwinKernelVersionMin(11, 0, 0) {
-               return 0, ENOSYS
-       }
-
        iovecs := make([]Iovec, 0, minIovec)
        iovecs = appendBytes(iovecs, iovs)
        if raceenabled {
@@ -707,45 +691,7 @@ func readvRacedetect(iovecs []Iovec, n int, err error) {
        }
 }
 
-func darwinMajorMinPatch() (maj, min, patch int, err error) {
-       var un Utsname
-       err = Uname(&un)
-       if err != nil {
-               return
-       }
-
-       var mmp [3]int
-       c := 0
-Loop:
-       for _, b := range un.Release[:] {
-               switch {
-               case b >= '0' && b <= '9':
-                       mmp[c] = 10*mmp[c] + int(b-'0')
-               case b == '.':
-                       c++
-                       if c > 2 {
-                               return 0, 0, 0, ENOTSUP
-                       }
-               case b == 0:
-                       break Loop
-               default:
-                       return 0, 0, 0, ENOTSUP
-               }
-       }
-       if c != 2 {
-               return 0, 0, 0, ENOTSUP
-       }
-       return mmp[0], mmp[1], mmp[2], nil
-}
-
-func darwinKernelVersionMin(maj, min, patch int) bool {
-       actualMaj, actualMin, actualPatch, err := darwinMajorMinPatch()
-       if err != nil {
-               return false
-       }
-       return actualMaj > maj || actualMaj == maj && (actualMin > min || actualMin == min && actualPatch >= patch)
-}
-
+//sys  connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error)
 //sys  sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)
 
 //sys  shmat(id int, addr uintptr, flag int) (ret uintptr, err error)
index 4f432bfe8feeee77862ace1bbfbed983d72f6e76..b6db27d937c8fa49caaf62a3c6171965fd16c21d 100644 (file)
@@ -319,6 +319,7 @@ const (
        AUDIT_INTEGRITY_POLICY_RULE                 = 0x70f
        AUDIT_INTEGRITY_RULE                        = 0x70d
        AUDIT_INTEGRITY_STATUS                      = 0x70a
+       AUDIT_INTEGRITY_USERSPACE                   = 0x710
        AUDIT_IPC                                   = 0x517
        AUDIT_IPC_SET_PERM                          = 0x51f
        AUDIT_IPE_ACCESS                            = 0x58c
@@ -327,6 +328,8 @@ const (
        AUDIT_KERNEL                                = 0x7d0
        AUDIT_KERNEL_OTHER                          = 0x524
        AUDIT_KERN_MODULE                           = 0x532
+       AUDIT_LANDLOCK_ACCESS                       = 0x58f
+       AUDIT_LANDLOCK_DOMAIN                       = 0x590
        AUDIT_LAST_FEATURE                          = 0x1
        AUDIT_LAST_KERN_ANOM_MSG                    = 0x707
        AUDIT_LAST_USER_MSG                         = 0x4af
@@ -491,6 +494,7 @@ const (
        BPF_F_BEFORE                                = 0x8
        BPF_F_ID                                    = 0x20
        BPF_F_NETFILTER_IP_DEFRAG                   = 0x1
+       BPF_F_PREORDER                              = 0x40
        BPF_F_QUERY_EFFECTIVE                       = 0x1
        BPF_F_REDIRECT_FLAGS                        = 0x19
        BPF_F_REPLACE                               = 0x4
@@ -527,6 +531,7 @@ const (
        BPF_LDX                                     = 0x1
        BPF_LEN                                     = 0x80
        BPF_LL_OFF                                  = -0x200000
+       BPF_LOAD_ACQ                                = 0x100
        BPF_LSH                                     = 0x60
        BPF_MAJOR_VERSION                           = 0x1
        BPF_MAXINSNS                                = 0x1000
@@ -554,6 +559,7 @@ const (
        BPF_RET                                     = 0x6
        BPF_RSH                                     = 0x70
        BPF_ST                                      = 0x2
+       BPF_STORE_REL                               = 0x110
        BPF_STX                                     = 0x3
        BPF_SUB                                     = 0x10
        BPF_TAG_SIZE                                = 0x8
@@ -843,9 +849,9 @@ const (
        DM_UUID_FLAG                                = 0x4000
        DM_UUID_LEN                                 = 0x81
        DM_VERSION                                  = 0xc138fd00
-       DM_VERSION_EXTRA                            = "-ioctl (2023-03-01)"
+       DM_VERSION_EXTRA                            = "-ioctl (2025-04-28)"
        DM_VERSION_MAJOR                            = 0x4
-       DM_VERSION_MINOR                            = 0x30
+       DM_VERSION_MINOR                            = 0x32
        DM_VERSION_PATCHLEVEL                       = 0x0
        DT_BLK                                      = 0x6
        DT_CHR                                      = 0x2
@@ -936,11 +942,10 @@ const (
        EPOLL_CTL_MOD                               = 0x3
        EPOLL_IOC_TYPE                              = 0x8a
        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_FAMILY_NAME                         = "ethtool"
+       ETHTOOL_FAMILY_VERSION                      = 0x1
        ETHTOOL_FEC_AUTO                            = 0x2
        ETHTOOL_FEC_BASER                           = 0x10
        ETHTOOL_FEC_LLRS                            = 0x20
@@ -1203,13 +1208,18 @@ const (
        FAN_DENY                                    = 0x2
        FAN_ENABLE_AUDIT                            = 0x40
        FAN_EPIDFD                                  = -0x2
+       FAN_ERRNO_BITS                              = 0x8
+       FAN_ERRNO_MASK                              = 0xff
+       FAN_ERRNO_SHIFT                             = 0x18
        FAN_EVENT_INFO_TYPE_DFID                    = 0x3
        FAN_EVENT_INFO_TYPE_DFID_NAME               = 0x2
        FAN_EVENT_INFO_TYPE_ERROR                   = 0x5
        FAN_EVENT_INFO_TYPE_FID                     = 0x1
+       FAN_EVENT_INFO_TYPE_MNT                     = 0x7
        FAN_EVENT_INFO_TYPE_NEW_DFID_NAME           = 0xc
        FAN_EVENT_INFO_TYPE_OLD_DFID_NAME           = 0xa
        FAN_EVENT_INFO_TYPE_PIDFD                   = 0x4
+       FAN_EVENT_INFO_TYPE_RANGE                   = 0x6
        FAN_EVENT_METADATA_LEN                      = 0x18
        FAN_EVENT_ON_CHILD                          = 0x8000000
        FAN_FS_ERROR                                = 0x8000
@@ -1224,9 +1234,12 @@ const (
        FAN_MARK_IGNORED_SURV_MODIFY                = 0x40
        FAN_MARK_IGNORE_SURV                        = 0x440
        FAN_MARK_INODE                              = 0x0
+       FAN_MARK_MNTNS                              = 0x110
        FAN_MARK_MOUNT                              = 0x10
        FAN_MARK_ONLYDIR                            = 0x8
        FAN_MARK_REMOVE                             = 0x2
+       FAN_MNT_ATTACH                              = 0x1000000
+       FAN_MNT_DETACH                              = 0x2000000
        FAN_MODIFY                                  = 0x2
        FAN_MOVE                                    = 0xc0
        FAN_MOVED_FROM                              = 0x40
@@ -1240,6 +1253,7 @@ const (
        FAN_OPEN_EXEC                               = 0x1000
        FAN_OPEN_EXEC_PERM                          = 0x40000
        FAN_OPEN_PERM                               = 0x10000
+       FAN_PRE_ACCESS                              = 0x100000
        FAN_Q_OVERFLOW                              = 0x4000
        FAN_RENAME                                  = 0x10000000
        FAN_REPORT_DFID_NAME                        = 0xc00
@@ -1247,6 +1261,7 @@ const (
        FAN_REPORT_DIR_FID                          = 0x400
        FAN_REPORT_FD_ERROR                         = 0x2000
        FAN_REPORT_FID                              = 0x200
+       FAN_REPORT_MNT                              = 0x4000
        FAN_REPORT_NAME                             = 0x800
        FAN_REPORT_PIDFD                            = 0x80
        FAN_REPORT_TARGET_FID                       = 0x1000
@@ -1266,6 +1281,7 @@ const (
        FIB_RULE_PERMANENT                          = 0x1
        FIB_RULE_UNRESOLVED                         = 0x4
        FIDEDUPERANGE                               = 0xc0189436
+       FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED             = 0x1
        FSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8
        FSCRYPT_KEY_DESC_PREFIX                     = "fscrypt:"
        FSCRYPT_KEY_DESC_PREFIX_SIZE                = 0x8
@@ -1574,7 +1590,6 @@ const (
        IPV6_DONTFRAG                               = 0x3e
        IPV6_DROP_MEMBERSHIP                        = 0x15
        IPV6_DSTOPTS                                = 0x3b
-       IPV6_FLOW                                   = 0x11
        IPV6_FREEBIND                               = 0x4e
        IPV6_HDRINCL                                = 0x24
        IPV6_HOPLIMIT                               = 0x34
@@ -1625,7 +1640,6 @@ const (
        IPV6_TRANSPARENT                            = 0x4b
        IPV6_UNICAST_HOPS                           = 0x10
        IPV6_UNICAST_IF                             = 0x4c
-       IPV6_USER_FLOW                              = 0xe
        IPV6_V6ONLY                                 = 0x1a
        IPV6_VERSION                                = 0x60
        IPV6_VERSION_MASK                           = 0xf0
@@ -1687,7 +1701,6 @@ const (
        IP_TTL                                      = 0x2
        IP_UNBLOCK_SOURCE                           = 0x25
        IP_UNICAST_IF                               = 0x32
-       IP_USER_FLOW                                = 0xd
        IP_XFRM_POLICY                              = 0x11
        ISOFS_SUPER_MAGIC                           = 0x9660
        ISTRIP                                      = 0x20
@@ -1809,7 +1822,11 @@ const (
        LANDLOCK_ACCESS_FS_WRITE_FILE               = 0x2
        LANDLOCK_ACCESS_NET_BIND_TCP                = 0x1
        LANDLOCK_ACCESS_NET_CONNECT_TCP             = 0x2
+       LANDLOCK_CREATE_RULESET_ERRATA              = 0x2
        LANDLOCK_CREATE_RULESET_VERSION             = 0x1
+       LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON      = 0x2
+       LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF    = 0x1
+       LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF   = 0x4
        LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET         = 0x1
        LANDLOCK_SCOPE_SIGNAL                       = 0x2
        LINUX_REBOOT_CMD_CAD_OFF                    = 0x0
@@ -2485,6 +2502,10 @@ const (
        PR_FP_EXC_UND                               = 0x40000
        PR_FP_MODE_FR                               = 0x1
        PR_FP_MODE_FRE                              = 0x2
+       PR_FUTEX_HASH                               = 0x4e
+       PR_FUTEX_HASH_GET_IMMUTABLE                 = 0x3
+       PR_FUTEX_HASH_GET_SLOTS                     = 0x2
+       PR_FUTEX_HASH_SET_SLOTS                     = 0x1
        PR_GET_AUXV                                 = 0x41555856
        PR_GET_CHILD_SUBREAPER                      = 0x25
        PR_GET_DUMPABLE                             = 0x3
@@ -2644,6 +2665,10 @@ const (
        PR_TAGGED_ADDR_ENABLE                       = 0x1
        PR_TASK_PERF_EVENTS_DISABLE                 = 0x1f
        PR_TASK_PERF_EVENTS_ENABLE                  = 0x20
+       PR_TIMER_CREATE_RESTORE_IDS                 = 0x4d
+       PR_TIMER_CREATE_RESTORE_IDS_GET             = 0x2
+       PR_TIMER_CREATE_RESTORE_IDS_OFF             = 0x0
+       PR_TIMER_CREATE_RESTORE_IDS_ON              = 0x1
        PR_TIMING_STATISTICAL                       = 0x0
        PR_TIMING_TIMESTAMP                         = 0x1
        PR_TSC_ENABLE                               = 0x1
@@ -2724,6 +2749,7 @@ const (
        PTRACE_SETREGSET                            = 0x4205
        PTRACE_SETSIGINFO                           = 0x4203
        PTRACE_SETSIGMASK                           = 0x420b
+       PTRACE_SET_SYSCALL_INFO                     = 0x4212
        PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4210
        PTRACE_SINGLESTEP                           = 0x9
        PTRACE_SYSCALL                              = 0x18
@@ -2787,7 +2813,7 @@ const (
        RTAX_UNSPEC                                 = 0x0
        RTAX_WINDOW                                 = 0x3
        RTA_ALIGNTO                                 = 0x4
-       RTA_MAX                                     = 0x1e
+       RTA_MAX                                     = 0x1f
        RTCF_DIRECTSRC                              = 0x4000000
        RTCF_DOREDIRECT                             = 0x1000000
        RTCF_LOG                                    = 0x2000000
@@ -2864,10 +2890,12 @@ const (
        RTM_DELACTION                               = 0x31
        RTM_DELADDR                                 = 0x15
        RTM_DELADDRLABEL                            = 0x49
+       RTM_DELANYCAST                              = 0x3d
        RTM_DELCHAIN                                = 0x65
        RTM_DELLINK                                 = 0x11
        RTM_DELLINKPROP                             = 0x6d
        RTM_DELMDB                                  = 0x55
+       RTM_DELMULTICAST                            = 0x39
        RTM_DELNEIGH                                = 0x1d
        RTM_DELNETCONF                              = 0x51
        RTM_DELNEXTHOP                              = 0x69
@@ -2917,11 +2945,13 @@ const (
        RTM_NEWACTION                               = 0x30
        RTM_NEWADDR                                 = 0x14
        RTM_NEWADDRLABEL                            = 0x48
+       RTM_NEWANYCAST                              = 0x3c
        RTM_NEWCACHEREPORT                          = 0x60
        RTM_NEWCHAIN                                = 0x64
        RTM_NEWLINK                                 = 0x10
        RTM_NEWLINKPROP                             = 0x6c
        RTM_NEWMDB                                  = 0x54
+       RTM_NEWMULTICAST                            = 0x38
        RTM_NEWNDUSEROPT                            = 0x44
        RTM_NEWNEIGH                                = 0x1c
        RTM_NEWNEIGHTBL                             = 0x40
@@ -2970,6 +3000,7 @@ const (
        RTPROT_NTK                                  = 0xf
        RTPROT_OPENR                                = 0x63
        RTPROT_OSPF                                 = 0xbc
+       RTPROT_OVN                                  = 0x54
        RTPROT_RA                                   = 0x9
        RTPROT_REDIRECT                             = 0x1
        RTPROT_RIP                                  = 0xbd
@@ -2987,11 +3018,12 @@ const (
        RUSAGE_THREAD                               = 0x1
        RWF_APPEND                                  = 0x10
        RWF_ATOMIC                                  = 0x40
+       RWF_DONTCACHE                               = 0x80
        RWF_DSYNC                                   = 0x2
        RWF_HIPRI                                   = 0x1
        RWF_NOAPPEND                                = 0x20
        RWF_NOWAIT                                  = 0x8
-       RWF_SUPPORTED                               = 0x7f
+       RWF_SUPPORTED                               = 0xff
        RWF_SYNC                                    = 0x4
        RWF_WRITE_LIFE_NOT_SET                      = 0x0
        SCHED_BATCH                                 = 0x3
@@ -3271,6 +3303,7 @@ const (
        STATX_BTIME                                 = 0x800
        STATX_CTIME                                 = 0x80
        STATX_DIOALIGN                              = 0x2000
+       STATX_DIO_READ_ALIGN                        = 0x20000
        STATX_GID                                   = 0x10
        STATX_INO                                   = 0x100
        STATX_MNT_ID                                = 0x1000
@@ -3322,7 +3355,7 @@ const (
        TASKSTATS_GENL_NAME                         = "TASKSTATS"
        TASKSTATS_GENL_VERSION                      = 0x1
        TASKSTATS_TYPE_MAX                          = 0x6
-       TASKSTATS_VERSION                           = 0xe
+       TASKSTATS_VERSION                           = 0x10
        TCIFLUSH                                    = 0x0
        TCIOFF                                      = 0x2
        TCIOFLUSH                                   = 0x2
@@ -3392,8 +3425,6 @@ const (
        TCP_TX_DELAY                                = 0x25
        TCP_ULP                                     = 0x1f
        TCP_USER_TIMEOUT                            = 0x12
-       TCP_V4_FLOW                                 = 0x1
-       TCP_V6_FLOW                                 = 0x5
        TCP_WINDOW_CLAMP                            = 0xa
        TCP_ZEROCOPY_RECEIVE                        = 0x23
        TFD_TIMER_ABSTIME                           = 0x1
@@ -3503,6 +3534,7 @@ const (
        TP_STATUS_WRONG_FORMAT                      = 0x4
        TRACEFS_MAGIC                               = 0x74726163
        TS_COMM_LEN                                 = 0x20
+       UBI_IOCECNFO                                = 0xc01c6f06
        UDF_SUPER_MAGIC                             = 0x15013346
        UDP_CORK                                    = 0x1
        UDP_ENCAP                                   = 0x64
@@ -3515,8 +3547,6 @@ const (
        UDP_NO_CHECK6_RX                            = 0x66
        UDP_NO_CHECK6_TX                            = 0x65
        UDP_SEGMENT                                 = 0x67
-       UDP_V4_FLOW                                 = 0x2
-       UDP_V6_FLOW                                 = 0x6
        UMOUNT_NOFOLLOW                             = 0x8
        USBDEVICE_SUPER_MAGIC                       = 0x9fa2
        UTIME_NOW                                   = 0x3fffffff
@@ -3559,7 +3589,7 @@ const (
        WDIOS_TEMPPANIC                             = 0x4
        WDIOS_UNKNOWN                               = -0x1
        WEXITED                                     = 0x4
-       WGALLOWEDIP_A_MAX                           = 0x3
+       WGALLOWEDIP_A_MAX                           = 0x4
        WGDEVICE_A_MAX                              = 0x8
        WGPEER_A_MAX                                = 0xa
        WG_CMD_MAX                                  = 0x1
@@ -3673,6 +3703,7 @@ const (
        XDP_SHARED_UMEM                             = 0x1
        XDP_STATISTICS                              = 0x7
        XDP_TXMD_FLAGS_CHECKSUM                     = 0x2
+       XDP_TXMD_FLAGS_LAUNCH_TIME                  = 0x4
        XDP_TXMD_FLAGS_TIMESTAMP                    = 0x1
        XDP_TX_METADATA                             = 0x2
        XDP_TX_RING                                 = 0x3
index 75207613c785dbe3fb5e9afd152330e4ff342de3..1c37f9fbc45c2f46153accb9340079079cb854f2 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0xfd12
        ECCGETLAYOUT                     = 0x81484d11
        ECCGETSTATS                      = 0x80104d12
        ECHOCTL                          = 0x200
@@ -360,6 +361,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x10
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x11
@@ -372,6 +374,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x12
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x14
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x14
index c68acda53522d124fc1ef7c7dc889394ca4103ab..6f54d34aefc9c2880b9e7a55f38ed100cb933a4f 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0xfd12
        ECCGETLAYOUT                     = 0x81484d11
        ECCGETSTATS                      = 0x80104d12
        ECHOCTL                          = 0x200
@@ -361,6 +362,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x10
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x11
@@ -373,6 +375,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x12
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x14
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x14
index a8c607ab86b51b1e69629a7131b674a533c1a05f..783ec5c126f092c1d2501253b946d5ef79734255 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0xfd12
        ECCGETLAYOUT                     = 0x81484d11
        ECCGETSTATS                      = 0x80104d12
        ECHOCTL                          = 0x200
@@ -366,6 +367,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x10
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x11
@@ -378,6 +380,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x12
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x14
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x14
index 18563dd8d33a0f8e7a343377cd529ddf3eeb47fc..ca83d3ba162c42f68eaa29afaf150f803733d007 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0xfd12
        ECCGETLAYOUT                     = 0x81484d11
        ECCGETSTATS                      = 0x80104d12
        ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x10
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x11
@@ -371,6 +373,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x12
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x14
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x14
index 22912cdaa94483d6a5a2759d4d05b72663fce96b..607e611c0cbe35fbc215f84229aeaa5721a8199e 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0xfd12
        ECCGETLAYOUT                     = 0x81484d11
        ECCGETSTATS                      = 0x80104d12
        ECHOCTL                          = 0x200
@@ -353,6 +354,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x10
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x11
@@ -365,6 +367,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x12
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x14
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x14
index 29344eb37ab55a5982a044ccd388638be2ce0f23..b9cb5bd3c09e029c6b1736864264e0f492188186 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
        SO_OOBINLINE                     = 0x100
        SO_PASSCRED                      = 0x11
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x12
@@ -371,6 +373,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x1004
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x1006
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x1006
index 20d51fb96a897f5c675d91b1107efa1b0956c3b0..65b078a6382e7bf7e7f950ce198320028a54cc56 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
        SO_OOBINLINE                     = 0x100
        SO_PASSCRED                      = 0x11
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x12
@@ -371,6 +373,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x1004
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x1006
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x1006
index 321b60902ae5cd5686f44b8dcf9d742a6df9d30c..5298a3033d0a0804d6f6a3f3c0aa8f9f98339775 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
        SO_OOBINLINE                     = 0x100
        SO_PASSCRED                      = 0x11
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x12
@@ -371,6 +373,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x1004
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x1006
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x1006
index 9bacdf1e27910f1e8f2cb8c582b37f7c54467224..7bc557c876183778db8b6114f237cdab29cb2ee5 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x200
@@ -359,6 +360,7 @@ const (
        SO_OOBINLINE                     = 0x100
        SO_PASSCRED                      = 0x11
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x12
@@ -371,6 +373,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x1004
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x1006
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x1006
index c2242726156a94e77d1b3a6b5c8f5e0f61b643f7..152399bb04a1c095baa1104bc99c16ce14a5b785 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x300
        CSIZE                            = 0x300
        CSTOPB                           = 0x400
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x40
@@ -414,6 +415,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x14
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x15
@@ -426,6 +428,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x10
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x12
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x12
index 6270c8ee13e3f5ac37b6954b36ca972696ad092c..1a1ce2409cf0d0c09f4bfd353c1fcc2757f3f4e1 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x300
        CSIZE                            = 0x300
        CSTOPB                           = 0x400
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x40
@@ -418,6 +419,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x14
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x15
@@ -430,6 +432,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x10
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x12
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x12
index 9966c1941f8301450c052e12184340b465ad204e..4231a1fb5787f204a08757b7f01772685950be07 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x300
        CSIZE                            = 0x300
        CSTOPB                           = 0x400
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x40
@@ -418,6 +419,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x14
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x15
@@ -430,6 +432,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x10
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x12
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x12
index 848e5fcc42e6f2f5dcc59d5a5d79199e57a856cb..21c0e9526656fbc3b511dfc0c97538d9f1c0db7c 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0xfd12
        ECCGETLAYOUT                     = 0x81484d11
        ECCGETSTATS                      = 0x80104d12
        ECHOCTL                          = 0x200
@@ -350,6 +351,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x10
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x11
@@ -362,6 +364,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x12
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x14
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x14
index 669b2adb80b778d9daf8400dd00cbab41c0ea5d1..f00d1cd7cf486dddf525c392634120bc5f9512e3 100644 (file)
@@ -68,6 +68,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0xfd12
        ECCGETLAYOUT                     = 0x81484d11
        ECCGETSTATS                      = 0x80104d12
        ECHOCTL                          = 0x200
@@ -422,6 +423,7 @@ const (
        SO_OOBINLINE                     = 0xa
        SO_PASSCRED                      = 0x10
        SO_PASSPIDFD                     = 0x4c
+       SO_PASSRIGHTS                    = 0x53
        SO_PASSSEC                       = 0x22
        SO_PEEK_OFF                      = 0x2a
        SO_PEERCRED                      = 0x11
@@ -434,6 +436,7 @@ const (
        SO_RCVBUFFORCE                   = 0x21
        SO_RCVLOWAT                      = 0x12
        SO_RCVMARK                       = 0x4b
+       SO_RCVPRIORITY                   = 0x52
        SO_RCVTIMEO                      = 0x14
        SO_RCVTIMEO_NEW                  = 0x42
        SO_RCVTIMEO_OLD                  = 0x14
index 4834e57514e44a7f8ca60a6a29e241ac1dba1c77..bc8d539e6af7d692867cfc3753e731989de48fbf 100644 (file)
@@ -71,6 +71,7 @@ const (
        CS8                              = 0x30
        CSIZE                            = 0x30
        CSTOPB                           = 0x40
+       DM_MPATH_PROBE_PATHS             = 0x2000fd12
        ECCGETLAYOUT                     = 0x41484d11
        ECCGETSTATS                      = 0x40104d12
        ECHOCTL                          = 0x200
@@ -461,6 +462,7 @@ const (
        SO_OOBINLINE                     = 0x100
        SO_PASSCRED                      = 0x2
        SO_PASSPIDFD                     = 0x55
+       SO_PASSRIGHTS                    = 0x5c
        SO_PASSSEC                       = 0x1f
        SO_PEEK_OFF                      = 0x26
        SO_PEERCRED                      = 0x40
@@ -473,6 +475,7 @@ const (
        SO_RCVBUFFORCE                   = 0x100b
        SO_RCVLOWAT                      = 0x800
        SO_RCVMARK                       = 0x54
+       SO_RCVPRIORITY                   = 0x5b
        SO_RCVTIMEO                      = 0x2000
        SO_RCVTIMEO_NEW                  = 0x44
        SO_RCVTIMEO_OLD                  = 0x2000
index c79aaff306ae3eebf5d338ac84c4d478f566c485..aca56ee494747a1ba3319d29a8ec9892d1833d15 100644 (file)
@@ -462,4 +462,5 @@ const (
        SYS_GETXATTRAT                   = 464
        SYS_LISTXATTRAT                  = 465
        SYS_REMOVEXATTRAT                = 466
+       SYS_OPEN_TREE_ATTR               = 467
 )
index 5eb450695e95a819f1756ff2241adda0588cf628..2ea1ef58c3ecc1d209387f153c0c41bbe3137d46 100644 (file)
@@ -385,4 +385,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index 05e5029744586103a94d9482fe3dac1bb9ca607f..d22c8af31968e918d95afb12e0f92bcda8b4a2f5 100644 (file)
@@ -426,4 +426,5 @@ const (
        SYS_GETXATTRAT                   = 464
        SYS_LISTXATTRAT                  = 465
        SYS_REMOVEXATTRAT                = 466
+       SYS_OPEN_TREE_ATTR               = 467
 )
index 38c53ec51bb3e6b6fff2b168f1351758d99b6b05..5ee264ae974329688c075a260e56d9f719868dc7 100644 (file)
@@ -329,4 +329,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index 31d2e71a18e17f4cd6fdd3a16f8ecffa1c2cdc91..f9f03ebf5fa1b2f6f1ccfde8bb6afef022288bd7 100644 (file)
@@ -325,4 +325,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index f4184a336b0e02d1ff0a976a4d47d01667072ff7..87c2118e84967b28e3303ce3695e18c2fb99c022 100644 (file)
@@ -446,4 +446,5 @@ const (
        SYS_GETXATTRAT                   = 4464
        SYS_LISTXATTRAT                  = 4465
        SYS_REMOVEXATTRAT                = 4466
+       SYS_OPEN_TREE_ATTR               = 4467
 )
index 05b9962278f2760f8134c2396859cb9c142fa0a2..391ad102fb68e4c6f530e1b0c71d5668afa38b6f 100644 (file)
@@ -376,4 +376,5 @@ const (
        SYS_GETXATTRAT              = 5464
        SYS_LISTXATTRAT             = 5465
        SYS_REMOVEXATTRAT           = 5466
+       SYS_OPEN_TREE_ATTR          = 5467
 )
index 43a256e9e6758502f2f5883e3c43c29bb05f2bff..5656157757a9deb3ecae6befdb675ba5aa25f425 100644 (file)
@@ -376,4 +376,5 @@ const (
        SYS_GETXATTRAT              = 5464
        SYS_LISTXATTRAT             = 5465
        SYS_REMOVEXATTRAT           = 5466
+       SYS_OPEN_TREE_ATTR          = 5467
 )
index eea5ddfc220774443034d5ad1b052c17347d626e..0482b52e3c3866ef90acc371a160e169a71b6ecc 100644 (file)
@@ -446,4 +446,5 @@ const (
        SYS_GETXATTRAT                   = 4464
        SYS_LISTXATTRAT                  = 4465
        SYS_REMOVEXATTRAT                = 4466
+       SYS_OPEN_TREE_ATTR               = 4467
 )
index 0d777bfbb1408e2c32b03fdc2b5652157b3872a8..71806f08f3870cd90cf95f94a1a6fa4fe2367400 100644 (file)
@@ -453,4 +453,5 @@ const (
        SYS_GETXATTRAT                   = 464
        SYS_LISTXATTRAT                  = 465
        SYS_REMOVEXATTRAT                = 466
+       SYS_OPEN_TREE_ATTR               = 467
 )
index b44636502561e6953318bb9cc942be9616340bc9..e35a7105829d47dc978e093a6be55c6ea7fa17f0 100644 (file)
@@ -425,4 +425,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index 0c7d21c18816539b4d6856dbcf44f56b4217c421..2aea476705e1e3e1951923803cae7a466c73ff67 100644 (file)
@@ -425,4 +425,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index 8405391698787a00552d807260232ad8680fd332..6c9bb4e5607816523854c8f508caf6601b710629 100644 (file)
@@ -330,4 +330,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index fcf1b790d6cfd31996ab2f95beb8f965657e70be..680bc9915a314aee9278482e9e1fe9300757c580 100644 (file)
@@ -391,4 +391,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index 52d15b5f9d4597c74ff988c7893a0f2710963e3f..620f271052f986ec33fb283094fcb7cb2b90ecfb 100644 (file)
@@ -404,4 +404,5 @@ const (
        SYS_GETXATTRAT              = 464
        SYS_LISTXATTRAT             = 465
        SYS_REMOVEXATTRAT           = 466
+       SYS_OPEN_TREE_ATTR          = 467
 )
index a46abe64720547a72a90330c2aa29113b4ef0552..cd236443f64530161e575e46f5a00c0717e4a56b 100644 (file)
@@ -114,8 +114,10 @@ type Statx_t struct {
        Atomic_write_unit_min     uint32
        Atomic_write_unit_max     uint32
        Atomic_write_segments_max uint32
+       Dio_read_offset_align     uint32
+       Atomic_write_unit_max_opt uint32
        _                         [1]uint32
-       _                         [9]uint64
+       _                         [8]uint64
 }
 
 type Fsid struct {
@@ -199,7 +201,8 @@ type FscryptAddKeyArg struct {
        Key_spec FscryptKeySpecifier
        Raw_size uint32
        Key_id   uint32
-       _        [8]uint32
+       Flags    uint32
+       _        [7]uint32
 }
 
 type FscryptRemoveKeyArg struct {
@@ -2226,8 +2229,11 @@ const (
        NFT_PAYLOAD_LL_HEADER             = 0x0
        NFT_PAYLOAD_NETWORK_HEADER        = 0x1
        NFT_PAYLOAD_TRANSPORT_HEADER      = 0x2
+       NFT_PAYLOAD_INNER_HEADER          = 0x3
+       NFT_PAYLOAD_TUN_HEADER            = 0x4
        NFT_PAYLOAD_CSUM_NONE             = 0x0
        NFT_PAYLOAD_CSUM_INET             = 0x1
+       NFT_PAYLOAD_CSUM_SCTP             = 0x2
        NFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1
        NFTA_PAYLOAD_UNSPEC               = 0x0
        NFTA_PAYLOAD_DREG                 = 0x1
@@ -2314,6 +2320,11 @@ const (
        NFT_CT_AVGPKT                     = 0x10
        NFT_CT_ZONE                       = 0x11
        NFT_CT_EVENTMASK                  = 0x12
+       NFT_CT_SRC_IP                     = 0x13
+       NFT_CT_DST_IP                     = 0x14
+       NFT_CT_SRC_IP6                    = 0x15
+       NFT_CT_DST_IP6                    = 0x16
+       NFT_CT_ID                         = 0x17
        NFTA_CT_UNSPEC                    = 0x0
        NFTA_CT_DREG                      = 0x1
        NFTA_CT_KEY                       = 0x2
@@ -2594,8 +2605,8 @@ const (
        SOF_TIMESTAMPING_BIND_PHC     = 0x8000
        SOF_TIMESTAMPING_OPT_ID_TCP   = 0x10000
 
-       SOF_TIMESTAMPING_LAST = 0x20000
-       SOF_TIMESTAMPING_MASK = 0x3ffff
+       SOF_TIMESTAMPING_LAST = 0x40000
+       SOF_TIMESTAMPING_MASK = 0x7ffff
 
        SCM_TSTAMP_SND   = 0x0
        SCM_TSTAMP_SCHED = 0x1
@@ -3802,7 +3813,16 @@ const (
        ETHTOOL_MSG_PSE_GET                       = 0x24
        ETHTOOL_MSG_PSE_SET                       = 0x25
        ETHTOOL_MSG_RSS_GET                       = 0x26
-       ETHTOOL_MSG_USER_MAX                      = 0x2d
+       ETHTOOL_MSG_PLCA_GET_CFG                  = 0x27
+       ETHTOOL_MSG_PLCA_SET_CFG                  = 0x28
+       ETHTOOL_MSG_PLCA_GET_STATUS               = 0x29
+       ETHTOOL_MSG_MM_GET                        = 0x2a
+       ETHTOOL_MSG_MM_SET                        = 0x2b
+       ETHTOOL_MSG_MODULE_FW_FLASH_ACT           = 0x2c
+       ETHTOOL_MSG_PHY_GET                       = 0x2d
+       ETHTOOL_MSG_TSCONFIG_GET                  = 0x2e
+       ETHTOOL_MSG_TSCONFIG_SET                  = 0x2f
+       ETHTOOL_MSG_USER_MAX                      = 0x2f
        ETHTOOL_MSG_KERNEL_NONE                   = 0x0
        ETHTOOL_MSG_STRSET_GET_REPLY              = 0x1
        ETHTOOL_MSG_LINKINFO_GET_REPLY            = 0x2
@@ -3842,7 +3862,17 @@ const (
        ETHTOOL_MSG_MODULE_NTF                    = 0x24
        ETHTOOL_MSG_PSE_GET_REPLY                 = 0x25
        ETHTOOL_MSG_RSS_GET_REPLY                 = 0x26
-       ETHTOOL_MSG_KERNEL_MAX                    = 0x2e
+       ETHTOOL_MSG_PLCA_GET_CFG_REPLY            = 0x27
+       ETHTOOL_MSG_PLCA_GET_STATUS_REPLY         = 0x28
+       ETHTOOL_MSG_PLCA_NTF                      = 0x29
+       ETHTOOL_MSG_MM_GET_REPLY                  = 0x2a
+       ETHTOOL_MSG_MM_NTF                        = 0x2b
+       ETHTOOL_MSG_MODULE_FW_FLASH_NTF           = 0x2c
+       ETHTOOL_MSG_PHY_GET_REPLY                 = 0x2d
+       ETHTOOL_MSG_PHY_NTF                       = 0x2e
+       ETHTOOL_MSG_TSCONFIG_GET_REPLY            = 0x2f
+       ETHTOOL_MSG_TSCONFIG_SET_REPLY            = 0x30
+       ETHTOOL_MSG_KERNEL_MAX                    = 0x30
        ETHTOOL_FLAG_COMPACT_BITSETS              = 0x1
        ETHTOOL_FLAG_OMIT_REPLY                   = 0x2
        ETHTOOL_FLAG_STATS                        = 0x4
@@ -3949,7 +3979,12 @@ const (
        ETHTOOL_A_RINGS_TCP_DATA_SPLIT            = 0xb
        ETHTOOL_A_RINGS_CQE_SIZE                  = 0xc
        ETHTOOL_A_RINGS_TX_PUSH                   = 0xd
-       ETHTOOL_A_RINGS_MAX                       = 0x10
+       ETHTOOL_A_RINGS_RX_PUSH                   = 0xe
+       ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN           = 0xf
+       ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX       = 0x10
+       ETHTOOL_A_RINGS_HDS_THRESH                = 0x11
+       ETHTOOL_A_RINGS_HDS_THRESH_MAX            = 0x12
+       ETHTOOL_A_RINGS_MAX                       = 0x12
        ETHTOOL_A_CHANNELS_UNSPEC                 = 0x0
        ETHTOOL_A_CHANNELS_HEADER                 = 0x1
        ETHTOOL_A_CHANNELS_RX_MAX                 = 0x2
@@ -4015,7 +4050,9 @@ const (
        ETHTOOL_A_TSINFO_TX_TYPES                 = 0x3
        ETHTOOL_A_TSINFO_RX_FILTERS               = 0x4
        ETHTOOL_A_TSINFO_PHC_INDEX                = 0x5
-       ETHTOOL_A_TSINFO_MAX                      = 0x6
+       ETHTOOL_A_TSINFO_STATS                    = 0x6
+       ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER        = 0x7
+       ETHTOOL_A_TSINFO_MAX                      = 0x9
        ETHTOOL_A_CABLE_TEST_UNSPEC               = 0x0
        ETHTOOL_A_CABLE_TEST_HEADER               = 0x1
        ETHTOOL_A_CABLE_TEST_MAX                  = 0x1
@@ -4101,6 +4138,19 @@ const (
        ETHTOOL_A_TUNNEL_INFO_MAX                 = 0x2
 )
 
+const (
+       TCP_V4_FLOW    = 0x1
+       UDP_V4_FLOW    = 0x2
+       TCP_V6_FLOW    = 0x5
+       UDP_V6_FLOW    = 0x6
+       ESP_V4_FLOW    = 0xa
+       ESP_V6_FLOW    = 0xc
+       IP_USER_FLOW   = 0xd
+       IPV6_USER_FLOW = 0xe
+       IPV6_FLOW      = 0x11
+       ETHER_FLOW     = 0x12
+)
+
 const SPEED_UNKNOWN = -0x1
 
 type EthtoolDrvinfo struct {
@@ -4613,6 +4663,7 @@ const (
        NL80211_ATTR_AKM_SUITES                                 = 0x4c
        NL80211_ATTR_AP_ISOLATE                                 = 0x60
        NL80211_ATTR_AP_SETTINGS_FLAGS                          = 0x135
+       NL80211_ATTR_ASSOC_SPP_AMSDU                            = 0x14a
        NL80211_ATTR_AUTH_DATA                                  = 0x9c
        NL80211_ATTR_AUTH_TYPE                                  = 0x35
        NL80211_ATTR_BANDS                                      = 0xef
@@ -4623,6 +4674,7 @@ const (
        NL80211_ATTR_BSS_BASIC_RATES                            = 0x24
        NL80211_ATTR_BSS                                        = 0x2f
        NL80211_ATTR_BSS_CTS_PROT                               = 0x1c
+       NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA                  = 0x147
        NL80211_ATTR_BSS_HT_OPMODE                              = 0x6d
        NL80211_ATTR_BSSID                                      = 0xf5
        NL80211_ATTR_BSS_SELECT                                 = 0xe3
@@ -4682,6 +4734,7 @@ const (
        NL80211_ATTR_DTIM_PERIOD                                = 0xd
        NL80211_ATTR_DURATION                                   = 0x57
        NL80211_ATTR_EHT_CAPABILITY                             = 0x136
+       NL80211_ATTR_EMA_RNR_ELEMS                              = 0x145
        NL80211_ATTR_EML_CAPABILITY                             = 0x13d
        NL80211_ATTR_EXT_CAPA                                   = 0xa9
        NL80211_ATTR_EXT_CAPA_MASK                              = 0xaa
@@ -4717,6 +4770,7 @@ const (
        NL80211_ATTR_HIDDEN_SSID                                = 0x7e
        NL80211_ATTR_HT_CAPABILITY                              = 0x1f
        NL80211_ATTR_HT_CAPABILITY_MASK                         = 0x94
+       NL80211_ATTR_HW_TIMESTAMP_ENABLED                       = 0x144
        NL80211_ATTR_IE_ASSOC_RESP                              = 0x80
        NL80211_ATTR_IE                                         = 0x2a
        NL80211_ATTR_IE_PROBE_RESP                              = 0x7f
@@ -4747,9 +4801,10 @@ const (
        NL80211_ATTR_MAC_HINT                                   = 0xc8
        NL80211_ATTR_MAC_MASK                                   = 0xd7
        NL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca
-       NL80211_ATTR_MAX                                        = 0x14d
+       NL80211_ATTR_MAX                                        = 0x151
        NL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4
        NL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce
+       NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS                     = 0x143
        NL80211_ATTR_MAX_MATCH_SETS                             = 0x85
        NL80211_ATTR_MAX_NUM_AKM_SUITES                         = 0x13c
        NL80211_ATTR_MAX_NUM_PMKIDS                             = 0x56
@@ -4774,9 +4829,12 @@ const (
        NL80211_ATTR_MGMT_SUBTYPE                               = 0x29
        NL80211_ATTR_MLD_ADDR                                   = 0x13a
        NL80211_ATTR_MLD_CAPA_AND_OPS                           = 0x13e
+       NL80211_ATTR_MLO_LINK_DISABLED                          = 0x146
        NL80211_ATTR_MLO_LINK_ID                                = 0x139
        NL80211_ATTR_MLO_LINKS                                  = 0x138
        NL80211_ATTR_MLO_SUPPORT                                = 0x13b
+       NL80211_ATTR_MLO_TTLM_DLINK                             = 0x148
+       NL80211_ATTR_MLO_TTLM_ULINK                             = 0x149
        NL80211_ATTR_MNTR_FLAGS                                 = 0x17
        NL80211_ATTR_MPATH_INFO                                 = 0x1b
        NL80211_ATTR_MPATH_NEXT_HOP                             = 0x1a
@@ -4809,12 +4867,14 @@ const (
        NL80211_ATTR_PORT_AUTHORIZED                            = 0x103
        NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN                    = 0x5
        NL80211_ATTR_POWER_RULE_MAX_EIRP                        = 0x6
+       NL80211_ATTR_POWER_RULE_PSD                             = 0x8
        NL80211_ATTR_PREV_BSSID                                 = 0x4f
        NL80211_ATTR_PRIVACY                                    = 0x46
        NL80211_ATTR_PROBE_RESP                                 = 0x91
        NL80211_ATTR_PROBE_RESP_OFFLOAD                         = 0x90
        NL80211_ATTR_PROTOCOL_FEATURES                          = 0xad
        NL80211_ATTR_PS_STATE                                   = 0x5d
+       NL80211_ATTR_PUNCT_BITMAP                               = 0x142
        NL80211_ATTR_QOS_MAP                                    = 0xc7
        NL80211_ATTR_RADAR_BACKGROUND                           = 0x134
        NL80211_ATTR_RADAR_EVENT                                = 0xa8
@@ -4943,7 +5003,9 @@ const (
        NL80211_ATTR_WIPHY_FREQ                                 = 0x26
        NL80211_ATTR_WIPHY_FREQ_HINT                            = 0xc9
        NL80211_ATTR_WIPHY_FREQ_OFFSET                          = 0x122
+       NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS               = 0x14c
        NL80211_ATTR_WIPHY_NAME                                 = 0x2
+       NL80211_ATTR_WIPHY_RADIOS                               = 0x14b
        NL80211_ATTR_WIPHY_RETRY_LONG                           = 0x3e
        NL80211_ATTR_WIPHY_RETRY_SHORT                          = 0x3d
        NL80211_ATTR_WIPHY_RTS_THRESHOLD                        = 0x40
@@ -4978,6 +5040,8 @@ const (
        NL80211_BAND_ATTR_IFTYPE_DATA                           = 0x9
        NL80211_BAND_ATTR_MAX                                   = 0xd
        NL80211_BAND_ATTR_RATES                                 = 0x2
+       NL80211_BAND_ATTR_S1G_CAPA                              = 0xd
+       NL80211_BAND_ATTR_S1G_MCS_NSS_SET                       = 0xc
        NL80211_BAND_ATTR_VHT_CAPA                              = 0x8
        NL80211_BAND_ATTR_VHT_MCS_SET                           = 0x7
        NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC                    = 0x8
@@ -5001,6 +5065,10 @@ const (
        NL80211_BSS_BEACON_INTERVAL                             = 0x4
        NL80211_BSS_BEACON_TSF                                  = 0xd
        NL80211_BSS_BSSID                                       = 0x1
+       NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH                = 0x2
+       NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY                  = 0x1
+       NL80211_BSS_CANNOT_USE_REASONS                          = 0x18
+       NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH                 = 0x2
        NL80211_BSS_CAPABILITY                                  = 0x5
        NL80211_BSS_CHAIN_SIGNAL                                = 0x13
        NL80211_BSS_CHAN_WIDTH_10                               = 0x1
@@ -5032,6 +5100,9 @@ const (
        NL80211_BSS_STATUS                                      = 0x9
        NL80211_BSS_STATUS_IBSS_JOINED                          = 0x2
        NL80211_BSS_TSF                                         = 0x3
+       NL80211_BSS_USE_FOR                                     = 0x17
+       NL80211_BSS_USE_FOR_MLD_LINK                            = 0x2
+       NL80211_BSS_USE_FOR_NORMAL                              = 0x1
        NL80211_CHAN_HT20                                       = 0x1
        NL80211_CHAN_HT40MINUS                                  = 0x2
        NL80211_CHAN_HT40PLUS                                   = 0x3
@@ -5117,7 +5188,8 @@ const (
        NL80211_CMD_LEAVE_IBSS                                  = 0x2c
        NL80211_CMD_LEAVE_MESH                                  = 0x45
        NL80211_CMD_LEAVE_OCB                                   = 0x6d
-       NL80211_CMD_MAX                                         = 0x9b
+       NL80211_CMD_LINKS_REMOVED                               = 0x9a
+       NL80211_CMD_MAX                                         = 0x9d
        NL80211_CMD_MICHAEL_MIC_FAILURE                         = 0x29
        NL80211_CMD_MODIFY_LINK_STA                             = 0x97
        NL80211_CMD_NAN_MATCH                                   = 0x78
@@ -5161,6 +5233,7 @@ const (
        NL80211_CMD_SET_COALESCE                                = 0x65
        NL80211_CMD_SET_CQM                                     = 0x3f
        NL80211_CMD_SET_FILS_AAD                                = 0x92
+       NL80211_CMD_SET_HW_TIMESTAMP                            = 0x99
        NL80211_CMD_SET_INTERFACE                               = 0x6
        NL80211_CMD_SET_KEY                                     = 0xa
        NL80211_CMD_SET_MAC_ACL                                 = 0x5d
@@ -5180,6 +5253,7 @@ const (
        NL80211_CMD_SET_SAR_SPECS                               = 0x8c
        NL80211_CMD_SET_STATION                                 = 0x12
        NL80211_CMD_SET_TID_CONFIG                              = 0x89
+       NL80211_CMD_SET_TID_TO_LINK_MAPPING                     = 0x9b
        NL80211_CMD_SET_TX_BITRATE_MASK                         = 0x39
        NL80211_CMD_SET_WDS_PEER                                = 0x42
        NL80211_CMD_SET_WIPHY                                   = 0x2
@@ -5247,6 +5321,7 @@ const (
        NL80211_EXT_FEATURE_AIRTIME_FAIRNESS                    = 0x21
        NL80211_EXT_FEATURE_AP_PMKSA_CACHING                    = 0x22
        NL80211_EXT_FEATURE_AQL                                 = 0x28
+       NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA           = 0x40
        NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT            = 0x2e
        NL80211_EXT_FEATURE_BEACON_PROTECTION                   = 0x29
        NL80211_EXT_FEATURE_BEACON_RATE_HE                      = 0x36
@@ -5262,6 +5337,7 @@ const (
        NL80211_EXT_FEATURE_CQM_RSSI_LIST                       = 0xd
        NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT             = 0x1b
        NL80211_EXT_FEATURE_DEL_IBSS_STA                        = 0x2c
+       NL80211_EXT_FEATURE_DFS_CONCURRENT                      = 0x43
        NL80211_EXT_FEATURE_DFS_OFFLOAD                         = 0x19
        NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER                = 0x20
        NL80211_EXT_FEATURE_EXT_KEY_ID                          = 0x24
@@ -5281,9 +5357,12 @@ const (
        NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION  = 0x14
        NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE          = 0x13
        NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION        = 0x31
+       NL80211_EXT_FEATURE_OWE_OFFLOAD_AP                      = 0x42
+       NL80211_EXT_FEATURE_OWE_OFFLOAD                         = 0x41
        NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE                 = 0x3d
        NL80211_EXT_FEATURE_PROTECTED_TWT                       = 0x2b
        NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE         = 0x39
+       NL80211_EXT_FEATURE_PUNCT                               = 0x3e
        NL80211_EXT_FEATURE_RADAR_BACKGROUND                    = 0x3c
        NL80211_EXT_FEATURE_RRM                                 = 0x1
        NL80211_EXT_FEATURE_SAE_OFFLOAD_AP                      = 0x33
@@ -5295,8 +5374,10 @@ const (
        NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23
        NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI            = 0xc
        NL80211_EXT_FEATURE_SECURE_LTF                          = 0x37
+       NL80211_EXT_FEATURE_SECURE_NAN                          = 0x3f
        NL80211_EXT_FEATURE_SECURE_RTT                          = 0x38
        NL80211_EXT_FEATURE_SET_SCAN_DWELL                      = 0x5
+       NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT                   = 0x44
        NL80211_EXT_FEATURE_STA_TX_PWR                          = 0x25
        NL80211_EXT_FEATURE_TXQS                                = 0x1c
        NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP              = 0x35
@@ -5343,7 +5424,10 @@ const (
        NL80211_FREQUENCY_ATTR_2MHZ                             = 0x16
        NL80211_FREQUENCY_ATTR_4MHZ                             = 0x17
        NL80211_FREQUENCY_ATTR_8MHZ                             = 0x18
+       NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP                = 0x21
+       NL80211_FREQUENCY_ATTR_CAN_MONITOR                      = 0x20
        NL80211_FREQUENCY_ATTR_DFS_CAC_TIME                     = 0xd
+       NL80211_FREQUENCY_ATTR_DFS_CONCURRENT                   = 0x1d
        NL80211_FREQUENCY_ATTR_DFS_STATE                        = 0x7
        NL80211_FREQUENCY_ATTR_DFS_TIME                         = 0x8
        NL80211_FREQUENCY_ATTR_DISABLED                         = 0x2
@@ -5351,12 +5435,14 @@ const (
        NL80211_FREQUENCY_ATTR_GO_CONCURRENT                    = 0xf
        NL80211_FREQUENCY_ATTR_INDOOR_ONLY                      = 0xe
        NL80211_FREQUENCY_ATTR_IR_CONCURRENT                    = 0xf
-       NL80211_FREQUENCY_ATTR_MAX                              = 0x21
+       NL80211_FREQUENCY_ATTR_MAX                              = 0x22
        NL80211_FREQUENCY_ATTR_MAX_TX_POWER                     = 0x6
        NL80211_FREQUENCY_ATTR_NO_10MHZ                         = 0x11
        NL80211_FREQUENCY_ATTR_NO_160MHZ                        = 0xc
        NL80211_FREQUENCY_ATTR_NO_20MHZ                         = 0x10
        NL80211_FREQUENCY_ATTR_NO_320MHZ                        = 0x1a
+       NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT               = 0x1f
+       NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT               = 0x1e
        NL80211_FREQUENCY_ATTR_NO_80MHZ                         = 0xb
        NL80211_FREQUENCY_ATTR_NO_EHT                           = 0x1b
        NL80211_FREQUENCY_ATTR_NO_HE                            = 0x13
@@ -5364,8 +5450,11 @@ const (
        NL80211_FREQUENCY_ATTR_NO_HT40_PLUS                     = 0xa
        NL80211_FREQUENCY_ATTR_NO_IBSS                          = 0x3
        NL80211_FREQUENCY_ATTR_NO_IR                            = 0x3
+       NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT                = 0x1f
+       NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT                = 0x1e
        NL80211_FREQUENCY_ATTR_OFFSET                           = 0x14
        NL80211_FREQUENCY_ATTR_PASSIVE_SCAN                     = 0x3
+       NL80211_FREQUENCY_ATTR_PSD                              = 0x1c
        NL80211_FREQUENCY_ATTR_RADAR                            = 0x5
        NL80211_FREQUENCY_ATTR_WMM                              = 0x12
        NL80211_FTM_RESP_ATTR_CIVICLOC                          = 0x3
@@ -5430,6 +5519,7 @@ const (
        NL80211_IFTYPE_STATION                                  = 0x2
        NL80211_IFTYPE_UNSPECIFIED                              = 0x0
        NL80211_IFTYPE_WDS                                      = 0x5
+       NL80211_KCK_EXT_LEN_32                                  = 0x20
        NL80211_KCK_EXT_LEN                                     = 0x18
        NL80211_KCK_LEN                                         = 0x10
        NL80211_KEK_EXT_LEN                                     = 0x20
@@ -5458,9 +5548,10 @@ const (
        NL80211_MAX_SUPP_HT_RATES                               = 0x4d
        NL80211_MAX_SUPP_RATES                                  = 0x20
        NL80211_MAX_SUPP_REG_RULES                              = 0x80
+       NL80211_MAX_SUPP_SELECTORS                              = 0x80
        NL80211_MBSSID_CONFIG_ATTR_EMA                          = 0x5
        NL80211_MBSSID_CONFIG_ATTR_INDEX                        = 0x3
-       NL80211_MBSSID_CONFIG_ATTR_MAX                          = 0x5
+       NL80211_MBSSID_CONFIG_ATTR_MAX                          = 0x6
        NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY  = 0x2
        NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES               = 0x1
        NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX                   = 0x4
@@ -5703,11 +5794,16 @@ const (
        NL80211_RADAR_PRE_CAC_EXPIRED                           = 0x4
        NL80211_RATE_INFO_10_MHZ_WIDTH                          = 0xb
        NL80211_RATE_INFO_160_MHZ_WIDTH                         = 0xa
+       NL80211_RATE_INFO_16_MHZ_WIDTH                          = 0x1d
+       NL80211_RATE_INFO_1_MHZ_WIDTH                           = 0x19
+       NL80211_RATE_INFO_2_MHZ_WIDTH                           = 0x1a
        NL80211_RATE_INFO_320_MHZ_WIDTH                         = 0x12
        NL80211_RATE_INFO_40_MHZ_WIDTH                          = 0x3
+       NL80211_RATE_INFO_4_MHZ_WIDTH                           = 0x1b
        NL80211_RATE_INFO_5_MHZ_WIDTH                           = 0xc
        NL80211_RATE_INFO_80_MHZ_WIDTH                          = 0x8
        NL80211_RATE_INFO_80P80_MHZ_WIDTH                       = 0x9
+       NL80211_RATE_INFO_8_MHZ_WIDTH                           = 0x1c
        NL80211_RATE_INFO_BITRATE32                             = 0x5
        NL80211_RATE_INFO_BITRATE                               = 0x1
        NL80211_RATE_INFO_EHT_GI_0_8                            = 0x0
@@ -5753,6 +5849,8 @@ const (
        NL80211_RATE_INFO_HE_RU_ALLOC                           = 0x11
        NL80211_RATE_INFO_MAX                                   = 0x1d
        NL80211_RATE_INFO_MCS                                   = 0x2
+       NL80211_RATE_INFO_S1G_MCS                               = 0x17
+       NL80211_RATE_INFO_S1G_NSS                               = 0x18
        NL80211_RATE_INFO_SHORT_GI                              = 0x4
        NL80211_RATE_INFO_VHT_MCS                               = 0x6
        NL80211_RATE_INFO_VHT_NSS                               = 0x7
@@ -5770,14 +5868,19 @@ const (
        NL80211_REKEY_DATA_KEK                                  = 0x1
        NL80211_REKEY_DATA_REPLAY_CTR                           = 0x3
        NL80211_REPLAY_CTR_LEN                                  = 0x8
+       NL80211_RRF_ALLOW_6GHZ_VLP_AP                           = 0x1000000
        NL80211_RRF_AUTO_BW                                     = 0x800
        NL80211_RRF_DFS                                         = 0x10
+       NL80211_RRF_DFS_CONCURRENT                              = 0x200000
        NL80211_RRF_GO_CONCURRENT                               = 0x1000
        NL80211_RRF_IR_CONCURRENT                               = 0x1000
        NL80211_RRF_NO_160MHZ                                   = 0x10000
        NL80211_RRF_NO_320MHZ                                   = 0x40000
+       NL80211_RRF_NO_6GHZ_AFC_CLIENT                          = 0x800000
+       NL80211_RRF_NO_6GHZ_VLP_CLIENT                          = 0x400000
        NL80211_RRF_NO_80MHZ                                    = 0x8000
        NL80211_RRF_NO_CCK                                      = 0x2
+       NL80211_RRF_NO_EHT                                      = 0x80000
        NL80211_RRF_NO_HE                                       = 0x20000
        NL80211_RRF_NO_HT40                                     = 0x6000
        NL80211_RRF_NO_HT40MINUS                                = 0x2000
@@ -5788,7 +5891,10 @@ const (
        NL80211_RRF_NO_IR                                       = 0x80
        NL80211_RRF_NO_OFDM                                     = 0x1
        NL80211_RRF_NO_OUTDOOR                                  = 0x8
+       NL80211_RRF_NO_UHB_AFC_CLIENT                           = 0x800000
+       NL80211_RRF_NO_UHB_VLP_CLIENT                           = 0x400000
        NL80211_RRF_PASSIVE_SCAN                                = 0x80
+       NL80211_RRF_PSD                                         = 0x100000
        NL80211_RRF_PTMP_ONLY                                   = 0x40
        NL80211_RRF_PTP_ONLY                                    = 0x20
        NL80211_RXMGMT_FLAG_ANSWERED                            = 0x1
@@ -5849,6 +5955,7 @@ const (
        NL80211_STA_FLAG_MAX_OLD_API                            = 0x6
        NL80211_STA_FLAG_MFP                                    = 0x4
        NL80211_STA_FLAG_SHORT_PREAMBLE                         = 0x2
+       NL80211_STA_FLAG_SPP_AMSDU                              = 0x8
        NL80211_STA_FLAG_TDLS_PEER                              = 0x6
        NL80211_STA_FLAG_WME                                    = 0x3
        NL80211_STA_INFO_ACK_SIGNAL_AVG                         = 0x23
@@ -6007,6 +6114,13 @@ const (
        NL80211_VHT_CAPABILITY_LEN                              = 0xc
        NL80211_VHT_NSS_MAX                                     = 0x8
        NL80211_WIPHY_NAME_MAXLEN                               = 0x40
+       NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE                     = 0x2
+       NL80211_WIPHY_RADIO_ATTR_INDEX                          = 0x1
+       NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION          = 0x3
+       NL80211_WIPHY_RADIO_ATTR_MAX                            = 0x4
+       NL80211_WIPHY_RADIO_FREQ_ATTR_END                       = 0x2
+       NL80211_WIPHY_RADIO_FREQ_ATTR_MAX                       = 0x2
+       NL80211_WIPHY_RADIO_FREQ_ATTR_START                     = 0x1
        NL80211_WMMR_AIFSN                                      = 0x3
        NL80211_WMMR_CW_MAX                                     = 0x2
        NL80211_WMMR_CW_MIN                                     = 0x1
@@ -6038,6 +6152,7 @@ const (
        NL80211_WOWLAN_TRIG_PKT_PATTERN                         = 0x4
        NL80211_WOWLAN_TRIG_RFKILL_RELEASE                      = 0x9
        NL80211_WOWLAN_TRIG_TCP_CONNECTION                      = 0xe
+       NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC         = 0x14
        NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211                    = 0xa
        NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN                = 0xb
        NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023                     = 0xc
index fd402da43fce18a993f6ec554d7936594abbeedf..485f2d3a1bc8c539c701b4f4afd530fdc0eaa6cf 100644 (file)
@@ -282,7 +282,7 @@ type Taskstats struct {
        Ac_exitcode               uint32
        Ac_flag                   uint8
        Ac_nice                   uint8
-       _                         [4]byte
+       _                         [6]byte
        Cpu_count                 uint64
        Cpu_delay_total           uint64
        Blkio_count               uint64
@@ -338,6 +338,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint32
index eb7a5e1864adae057314f1a4007adcabe376a202..ecbd1ad8bc54b529693d49141f693732224ca21a 100644 (file)
@@ -351,6 +351,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index d78ac108b6c263fa7466ced80303c7838745d75a..02f0463a44b241d1071c65569f29d6f84e7ac703 100644 (file)
@@ -91,7 +91,7 @@ type Stat_t struct {
        Gid     uint32
        Rdev    uint64
        _       uint16
-       _       [4]byte
+       _       [6]byte
        Size    int64
        Blksize int32
        _       [4]byte
@@ -273,7 +273,7 @@ type Taskstats struct {
        Ac_exitcode               uint32
        Ac_flag                   uint8
        Ac_nice                   uint8
-       _                         [4]byte
+       _                         [6]byte
        Cpu_count                 uint64
        Cpu_delay_total           uint64
        Blkio_count               uint64
@@ -329,6 +329,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint32
index cd06d47f1f7c76e70ca481f25b17aa5b3c0b0c02..6f4d400d2417cc42cdd68f9d6d4df7624fec907c 100644 (file)
@@ -330,6 +330,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index 2f28fe26c1a533d7d5b988c6615163e0c26d3c15..cd532cfa558990a87fc637585c2224afc8f8c955 100644 (file)
@@ -331,6 +331,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index 71d6cac2f1aabdb4c4d01c529cb81cd1a23d8cf6..41336208517524b1c74c041e4bc77e548697d060 100644 (file)
@@ -278,7 +278,7 @@ type Taskstats struct {
        Ac_exitcode               uint32
        Ac_flag                   uint8
        Ac_nice                   uint8
-       _                         [4]byte
+       _                         [6]byte
        Cpu_count                 uint64
        Cpu_delay_total           uint64
        Blkio_count               uint64
@@ -334,6 +334,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint32
index 8596d45356387339625784fe527ce211010f5177..eaa37eb718e2d3eb14f2052c46c148adcf4a8013 100644 (file)
@@ -333,6 +333,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index cd60ea18662bfc9389fc47b21247438f8ae066b4..98ae6a1e4ac4d9e23fbff812a50d9fe839d6e358 100644 (file)
@@ -333,6 +333,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index b0ae420c489d6bbd779af1654ce3c8de9456a03f..cae1961594d24b1108cd73e1ceba3163a1fac44d 100644 (file)
@@ -278,7 +278,7 @@ type Taskstats struct {
        Ac_exitcode               uint32
        Ac_flag                   uint8
        Ac_nice                   uint8
-       _                         [4]byte
+       _                         [6]byte
        Cpu_count                 uint64
        Cpu_delay_total           uint64
        Blkio_count               uint64
@@ -334,6 +334,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint32
index 8359728759bcfd3056781eea34bda15f2baad939..6ce3b4e02830ee1c9598212d402a13b62607f9d6 100644 (file)
@@ -90,7 +90,7 @@ type Stat_t struct {
        Gid     uint32
        Rdev    uint64
        _       uint16
-       _       [4]byte
+       _       [6]byte
        Size    int64
        Blksize int32
        _       [4]byte
@@ -285,7 +285,7 @@ type Taskstats struct {
        Ac_exitcode               uint32
        Ac_flag                   uint8
        Ac_nice                   uint8
-       _                         [4]byte
+       _                         [6]byte
        Cpu_count                 uint64
        Cpu_delay_total           uint64
        Blkio_count               uint64
@@ -341,6 +341,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint32
index 69eb6a5c6892f527b6bdac2424915de142d6125c..c7429c6a1461ea1ce128d1f4f48bb4cf44db238d 100644 (file)
@@ -340,6 +340,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index 5f583cb62bf304c9d82386aad07e8c481df6183b..4bf4baf4cac56cb9868d3d8d8f301b58d8fc4b42 100644 (file)
@@ -340,6 +340,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index ad05b51a60364994ecb52341160202a800f98ddc..e9709d70afbd873ec8839537500c6be2feffe7d6 100644 (file)
@@ -358,6 +358,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index cf3ce90037704d303eadbfebdb87edb0de4c3d6a..fb44268ca7da3d572328bf634d1d27929c50bc92 100644 (file)
@@ -353,6 +353,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index 590b56739c5b3356de134089d3c26e64f8f5dd95..9c38265c74aff67109b881f268725559eb994518 100644 (file)
@@ -335,6 +335,22 @@ type Taskstats struct {
        Wpcopy_delay_total        uint64
        Irq_count                 uint64
        Irq_delay_total           uint64
+       Cpu_delay_max             uint64
+       Cpu_delay_min             uint64
+       Blkio_delay_max           uint64
+       Blkio_delay_min           uint64
+       Swapin_delay_max          uint64
+       Swapin_delay_min          uint64
+       Freepages_delay_max       uint64
+       Freepages_delay_min       uint64
+       Thrashing_delay_max       uint64
+       Thrashing_delay_min       uint64
+       Compact_delay_max         uint64
+       Compact_delay_min         uint64
+       Wpcopy_delay_max          uint64
+       Wpcopy_delay_min          uint64
+       Irq_delay_max             uint64
+       Irq_delay_min             uint64
 }
 
 type cpuMask uint64
index df6bf948e14070273aa1343097ef1b90dd47e92b..0ddd81c02a69cc7d202b21996cbf9af2b0d0e52b 100644 (file)
@@ -20,12 +20,14 @@ func isTerminal(fd int) bool {
        return err == nil
 }
 
+// This is intended to be used on a console input handle.
+// See https://learn.microsoft.com/en-us/windows/console/setconsolemode
 func makeRaw(fd int) (*State, error) {
        var st uint32
        if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {
                return nil, err
        }
-       raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT)
+       raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT)
        raw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT
        if err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil {
                return nil, err
index 13e9a64ad10a7e7da3804081a44b06a1cb0d6afd..bddb2e2aebd4a194afd0c7186289dcdeb1718a0b 100644 (file)
@@ -146,6 +146,7 @@ const (
        keyCtrlD     = 4
        keyCtrlU     = 21
        keyEnter     = '\r'
+       keyLF        = '\n'
        keyEscape    = 27
        keyBackspace = 127
        keyUnknown   = 0xd800 /* UTF-16 surrogate area */ + iota
@@ -497,7 +498,7 @@ func (t *Terminal) historyAdd(entry string) {
 // handleKey processes the given key and, optionally, returns a line of text
 // that the user has entered.
 func (t *Terminal) handleKey(key rune) (line string, ok bool) {
-       if t.pasteActive && key != keyEnter {
+       if t.pasteActive && key != keyEnter && key != keyLF {
                t.addKeyToLine(key)
                return
        }
@@ -567,7 +568,7 @@ func (t *Terminal) handleKey(key rune) (line string, ok bool) {
                                t.setLine(runes, len(runes))
                        }
                }
-       case keyEnter:
+       case keyEnter, keyLF:
                t.moveCursorToPos(len(t.line))
                t.queue([]rune("\r\n"))
                line = string(t.line)
@@ -812,6 +813,10 @@ func (t *Terminal) readLine() (line string, err error) {
                        if !t.pasteActive {
                                lineIsPasted = false
                        }
+                       // If we have CR, consume LF if present (CRLF sequence) to avoid returning an extra empty line.
+                       if key == keyEnter && len(rest) > 0 && rest[0] == keyLF {
+                               rest = rest[1:]
+                       }
                        line, lineOk = t.handleKey(key)
                }
                if len(rest) > 0 {
index 6aefef258158524951fc1c2eb1b7741c3b539786..18e01c40def3aa4884c16cf3b19aa29c49c5ade1 100644 (file)
@@ -318,24 +318,32 @@ var vetLegacyFlags = map[string]string{
 // If contextLines is nonnegative, it also prints the
 // offending line plus this many lines of context.
 func PrintPlain(out io.Writer, fset *token.FileSet, contextLines int, diag analysis.Diagnostic) {
-       posn := fset.Position(diag.Pos)
-       fmt.Fprintf(out, "%s: %s\n", posn, diag.Message)
-
-       // show offending line plus N lines of context.
-       if contextLines >= 0 {
-               posn := fset.Position(diag.Pos)
-               end := fset.Position(diag.End)
-               if !end.IsValid() {
-                       end = posn
-               }
-               data, _ := os.ReadFile(posn.Filename)
-               lines := strings.Split(string(data), "\n")
-               for i := posn.Line - contextLines; i <= end.Line+contextLines; i++ {
-                       if 1 <= i && i <= len(lines) {
-                               fmt.Fprintf(out, "%d\t%s\n", i, lines[i-1])
+       print := func(pos, end token.Pos, message string) {
+               posn := fset.Position(pos)
+               fmt.Fprintf(out, "%s: %s\n", posn, message)
+
+               // show offending line plus N lines of context.
+               if contextLines >= 0 {
+                       end := fset.Position(end)
+                       if !end.IsValid() {
+                               end = posn
+                       }
+                       // TODO(adonovan): highlight the portion of the line indicated
+                       // by pos...end using ASCII art, terminal colors, etc?
+                       data, _ := os.ReadFile(posn.Filename)
+                       lines := strings.Split(string(data), "\n")
+                       for i := posn.Line - contextLines; i <= end.Line+contextLines; i++ {
+                               if 1 <= i && i <= len(lines) {
+                                       fmt.Fprintf(out, "%d\t%s\n", i, lines[i-1])
+                               }
                        }
                }
        }
+
+       print(diag.Pos, diag.End, diag.Message)
+       for _, rel := range diag.Related {
+               print(rel.Pos, rel.End, "\t"+rel.Message)
+       }
 }
 
 // A JSONTree is a mapping from package ID to analysis name to result.
index 1413ee13d293e02a12984468d621ab2b589c6756..1914bb476168bac45125359854b0dcc9672c3dec 100644 (file)
@@ -9,11 +9,11 @@ package assign
 
 import (
        _ "embed"
-       "fmt"
        "go/ast"
        "go/token"
        "go/types"
        "reflect"
+       "strings"
 
        "golang.org/x/tools/go/analysis"
        "golang.org/x/tools/go/analysis/passes/inspect"
@@ -48,31 +48,84 @@ func run(pass *analysis.Pass) (any, error) {
                        // If LHS and RHS have different cardinality, they can't be the same.
                        return
                }
+
+               // Delete redundant LHS, RHS pairs, taking care
+               // to include intervening commas.
+               var (
+                       exprs                    []string // expressions appearing on both sides (x = x)
+                       edits                    []analysis.TextEdit
+                       runStartLHS, runStartRHS token.Pos // non-zero => within a run
+               )
                for i, lhs := range stmt.Lhs {
                        rhs := stmt.Rhs[i]
-                       if analysisutil.HasSideEffects(pass.TypesInfo, lhs) ||
-                               analysisutil.HasSideEffects(pass.TypesInfo, rhs) ||
-                               isMapIndex(pass.TypesInfo, lhs) {
-                               continue // expressions may not be equal
-                       }
-                       if reflect.TypeOf(lhs) != reflect.TypeOf(rhs) {
-                               continue // short-circuit the heavy-weight gofmt check
+                       isSelfAssign := false
+                       var le string
+
+                       if !analysisutil.HasSideEffects(pass.TypesInfo, lhs) &&
+                               !analysisutil.HasSideEffects(pass.TypesInfo, rhs) &&
+                               !isMapIndex(pass.TypesInfo, lhs) &&
+                               reflect.TypeOf(lhs) == reflect.TypeOf(rhs) { // short-circuit the heavy-weight gofmt check
+
+                               le = analysisinternal.Format(pass.Fset, lhs)
+                               re := analysisinternal.Format(pass.Fset, rhs)
+                               if le == re {
+                                       isSelfAssign = true
+                               }
                        }
-                       le := analysisinternal.Format(pass.Fset, lhs)
-                       re := analysisinternal.Format(pass.Fset, rhs)
-                       if le == re {
-                               pass.Report(analysis.Diagnostic{
-                                       Pos: stmt.Pos(), Message: fmt.Sprintf("self-assignment of %s to %s", re, le),
-                                       SuggestedFixes: []analysis.SuggestedFix{{
-                                               Message: "Remove self-assignment",
-                                               TextEdits: []analysis.TextEdit{{
-                                                       Pos: stmt.Pos(),
-                                                       End: stmt.End(),
-                                               }}},
-                                       },
-                               })
+
+                       if isSelfAssign {
+                               exprs = append(exprs, le)
+                               if !runStartLHS.IsValid() {
+                                       // Start of a new run of self-assignments.
+                                       if i > 0 {
+                                               runStartLHS = stmt.Lhs[i-1].End()
+                                               runStartRHS = stmt.Rhs[i-1].End()
+                                       } else {
+                                               runStartLHS = lhs.Pos()
+                                               runStartRHS = rhs.Pos()
+                                       }
+                               }
+                       } else if runStartLHS.IsValid() {
+                               // End of a run of self-assignments.
+                               endLHS, endRHS := stmt.Lhs[i-1].End(), stmt.Rhs[i-1].End()
+                               if runStartLHS == stmt.Lhs[0].Pos() {
+                                       endLHS, endRHS = lhs.Pos(), rhs.Pos()
+                               }
+                               edits = append(edits,
+                                       analysis.TextEdit{Pos: runStartLHS, End: endLHS},
+                                       analysis.TextEdit{Pos: runStartRHS, End: endRHS},
+                               )
+                               runStartLHS, runStartRHS = 0, 0
                        }
                }
+
+               // If a run of self-assignments continues to the end of the statement, close it.
+               if runStartLHS.IsValid() {
+                       last := len(stmt.Lhs) - 1
+                       edits = append(edits,
+                               analysis.TextEdit{Pos: runStartLHS, End: stmt.Lhs[last].End()},
+                               analysis.TextEdit{Pos: runStartRHS, End: stmt.Rhs[last].End()},
+                       )
+               }
+
+               if len(exprs) == 0 {
+                       return
+               }
+
+               if len(exprs) == len(stmt.Lhs) {
+                       // If every part of the statement is a self-assignment,
+                       // remove the whole statement.
+                       edits = []analysis.TextEdit{{Pos: stmt.Pos(), End: stmt.End()}}
+               }
+
+               pass.Report(analysis.Diagnostic{
+                       Pos:     stmt.Pos(),
+                       Message: "self-assignment of " + strings.Join(exprs, ", "),
+                       SuggestedFixes: []analysis.SuggestedFix{{
+                               Message:   "Remove self-assignment",
+                               TextEdits: edits,
+                       }},
+               })
        })
 
        return nil, nil
index bc44b2c8e7e47ac5f8814c32296c41f65d47ccd3..a703cdfcf9092e28f421f81b8314dcd6f4130133 100644 (file)
@@ -85,6 +85,7 @@ type event struct {
 
 // TODO: Experiment with storing only the second word of event.node (unsafe.Pointer).
 // Type can be recovered from the sole bit in typ.
+// [Tried this, wasn't faster. --adonovan]
 
 // Preorder visits all the nodes of the files supplied to New in
 // depth-first order. It calls f(n) for each node n before it visits
index e936c67c985a0b21b9a77138228cb0beccdea57f..9852331a3dbe3f2d81b0b88acec21ca0b493c50f 100644 (file)
@@ -12,8 +12,6 @@ package inspector
 import (
        "go/ast"
        "math"
-
-       _ "unsafe"
 )
 
 const (
@@ -217,7 +215,6 @@ func typeOf(n ast.Node) uint64 {
        return 0
 }
 
-//go:linkname maskOf golang.org/x/tools/go/ast/inspector.maskOf
 func maskOf(nodes []ast.Node) uint64 {
        if len(nodes) == 0 {
                return math.MaxUint64 // match all node types
index e03deef4409716a9031ca6d576d535bd080815de..01ad7b9cf760799b85340ed8a09b83ce90c33873 100644 (file)
@@ -59,24 +59,59 @@ func New(inspect *inspector.Inspector, pkg *types.Package, info *types.Info) *In
                                        addPackage(obj.Pkg())
                                }
 
-                               us, ok := ix.uses[obj]
-                               if !ok {
-                                       us = &uses{}
-                                       us.code = us.initial[:0]
-                                       ix.uses[obj] = us
-                               }
-                               delta := cur.Index() - us.last
-                               if delta < 0 {
-                                       panic("non-monotonic")
+                               for {
+                                       us, ok := ix.uses[obj]
+                                       if !ok {
+                                               us = &uses{}
+                                               us.code = us.initial[:0]
+                                               ix.uses[obj] = us
+                                       }
+                                       delta := cur.Index() - us.last
+                                       if delta < 0 {
+                                               panic("non-monotonic")
+                                       }
+                                       us.code = binary.AppendUvarint(us.code, uint64(delta))
+                                       us.last = cur.Index()
+
+                                       // If n is a selection of a field or method of an instantiated
+                                       // type, also record a use of the generic field or method.
+                                       obj, ok = objectOrigin(obj)
+                                       if !ok {
+                                               break
+                                       }
                                }
-                               us.code = binary.AppendUvarint(us.code, uint64(delta))
-                               us.last = cur.Index()
                        }
                }
        }
        return ix
 }
 
+// objectOrigin returns the generic object for obj if it is a field or
+// method of an instantied type; zero otherwise.
+//
+// (This operation is appropriate only for selections.
+// Lexically resolved references always resolve to the generic.
+// Although Named and Alias types also use Origin to express
+// an instance/generic distinction, that's in the domain
+// of Types; their TypeName objects always refer to the generic.)
+func objectOrigin(obj types.Object) (types.Object, bool) {
+       var origin types.Object
+       switch obj := obj.(type) {
+       case *types.Func:
+               if obj.Signature().Recv() != nil {
+                       origin = obj.Origin() // G[int].method -> G[T].method
+               }
+       case *types.Var:
+               if obj.IsField() {
+                       origin = obj.Origin() // G[int].field  -> G[T].field
+               }
+       }
+       if origin != nil && origin != obj {
+               return origin, true
+       }
+       return nil, false
+}
+
 // An Index holds an index mapping [types.Object] symbols to their syntax.
 // In effect, it is the inverse of [types.Info].
 type Index struct {
@@ -106,6 +141,10 @@ type uses struct {
 
 // Uses returns the sequence of Cursors of [*ast.Ident]s in this package
 // that refer to obj. If obj is nil, the sequence is empty.
+//
+// Uses, unlike the Uses field of [types.Info], records additional
+// entries mapping fields and methods of generic types to references
+// through their corresponding instantiated objects.
 func (ix *Index) Uses(obj types.Object) iter.Seq[inspector.Cursor] {
        return func(yield func(inspector.Cursor) bool) {
                if uses := ix.uses[obj]; uses != nil {
index 6e5783fdd4767a6e9ad9ac5147a80002ba0b0116..964a4ffa629edb9729988f2c303a47cc3c8f2ee1 100644 (file)
@@ -16,7 +16,7 @@ github.com/google/pprof/third_party/svgpan
 # github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd
 ## explicit; go 1.13
 github.com/ianlancetaylor/demangle
-# golang.org/x/arch v0.18.1-0.20250605182141-b2f4e2807dec
+# golang.org/x/arch v0.20.1-0.20250808194827-46ba08e3ae58
 ## explicit; go 1.23.0
 golang.org/x/arch/arm/armasm
 golang.org/x/arch/arm64/arm64asm
@@ -25,10 +25,10 @@ golang.org/x/arch/ppc64/ppc64asm
 golang.org/x/arch/riscv64/riscv64asm
 golang.org/x/arch/s390x/s390xasm
 golang.org/x/arch/x86/x86asm
-# golang.org/x/build v0.0.0-20250606033421-8c8ff6f34a83
+# golang.org/x/build v0.0.0-20250806225920-b7c66c047964
 ## explicit; go 1.23.0
 golang.org/x/build/relnote
-# golang.org/x/mod v0.25.0
+# golang.org/x/mod v0.27.0
 ## explicit; go 1.23.0
 golang.org/x/mod/internal/lazyregexp
 golang.org/x/mod/modfile
@@ -39,16 +39,16 @@ golang.org/x/mod/sumdb/dirhash
 golang.org/x/mod/sumdb/note
 golang.org/x/mod/sumdb/tlog
 golang.org/x/mod/zip
-# golang.org/x/sync v0.15.0
+# golang.org/x/sync v0.16.0
 ## explicit; go 1.23.0
 golang.org/x/sync/errgroup
 golang.org/x/sync/semaphore
-# golang.org/x/sys v0.33.0
+# golang.org/x/sys v0.35.0
 ## explicit; go 1.23.0
 golang.org/x/sys/plan9
 golang.org/x/sys/unix
 golang.org/x/sys/windows
-# golang.org/x/telemetry v0.0.0-20250606142133-60998feb31a8
+# golang.org/x/telemetry v0.0.0-20250807160809-1a19826ec488
 ## explicit; go 1.23.0
 golang.org/x/telemetry
 golang.org/x/telemetry/counter
@@ -60,10 +60,10 @@ golang.org/x/telemetry/internal/crashmonitor
 golang.org/x/telemetry/internal/mmap
 golang.org/x/telemetry/internal/telemetry
 golang.org/x/telemetry/internal/upload
-# golang.org/x/term v0.32.0
+# golang.org/x/term v0.34.0
 ## explicit; go 1.23.0
 golang.org/x/term
-# golang.org/x/text v0.26.0
+# golang.org/x/text v0.28.0
 ## explicit; go 1.23.0
 golang.org/x/text/cases
 golang.org/x/text/internal
@@ -73,7 +73,7 @@ golang.org/x/text/internal/tag
 golang.org/x/text/language
 golang.org/x/text/transform
 golang.org/x/text/unicode/norm
-# golang.org/x/tools v0.34.0
+# golang.org/x/tools v0.36.1-0.20250808220315-8866876b956f
 ## explicit; go 1.23.0
 golang.org/x/tools/cmd/bisect
 golang.org/x/tools/cover
index 112614e562c683bd6320ce223b8ffa36180d6dbb..38e1b1ab0d9d80f736de57b2dc06e30d1dd514b2 100644 (file)
@@ -15,11 +15,11 @@ type ST struct {
 
 func (s *ST) SetX(x int, ch chan int) {
        // Accidental self-assignment; it should be "s.x = x"
-       x = x // ERROR "self-assignment of x to x"
+       x = x // ERROR "self-assignment of x"
        // Another mistake
-       s.x = s.x // ERROR "self-assignment of s.x to s.x"
+       s.x = s.x // ERROR "self-assignment of s.x"
 
-       s.l[0] = s.l[0] // ERROR "self-assignment of s.l.0. to s.l.0."
+       s.l[0] = s.l[0] // ERROR "self-assignment of s.l.0."
 
        // Bail on any potential side effects to avoid false positives
        s.l[num()] = s.l[num()]
index b81f19068aef2336b87e54c3c0b4592997f8b811..51c38f3bc0310db32c1da3abda9b81288909bbcf 100644 (file)
@@ -1,13 +1,13 @@
 module std
 
-go 1.25
+go 1.26
 
 require (
-       golang.org/x/crypto v0.39.0
-       golang.org/x/net v0.41.0
+       golang.org/x/crypto v0.41.0
+       golang.org/x/net v0.43.0
 )
 
 require (
-       golang.org/x/sys v0.33.0 // indirect
-       golang.org/x/text v0.26.0 // indirect
+       golang.org/x/sys v0.35.0 // indirect
+       golang.org/x/text v0.28.0 // indirect
 )
index 410eb8648a710ad4442f3b1c4e3e6409013558c4..3bc4cb53724095fc681df8ca2465fa3112b967bf 100644 (file)
@@ -1,8 +1,8 @@
-golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
-golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
-golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
-golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
-golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
-golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
-golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
-golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
+golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
+golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
+golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
+golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
+golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
+golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
+golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
index 7ca0b13b3dc08420f3a5eaf46b700ac523ab3730..a57d6131343638bb6c71b6945e2ad4715ab0166a 100644 (file)
@@ -13,8 +13,6 @@
 //
 // See https://http2.github.io/ for more information on HTTP/2.
 //
-// See https://http2.golang.org/ for a test server running this code.
-//
 // Copyright 2024 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.
index 8507f01b12f51824dbef11629417726ea94927d7..645cec45e2f7ebfe15238ef5646f3ffd2f204772 100644 (file)
@@ -1,4 +1,4 @@
-# golang.org/x/crypto v0.39.0
+# golang.org/x/crypto v0.41.0
 ## explicit; go 1.23.0
 golang.org/x/crypto/chacha20
 golang.org/x/crypto/chacha20poly1305
@@ -6,7 +6,7 @@ golang.org/x/crypto/cryptobyte
 golang.org/x/crypto/cryptobyte/asn1
 golang.org/x/crypto/internal/alias
 golang.org/x/crypto/internal/poly1305
-# golang.org/x/net v0.41.0
+# golang.org/x/net v0.43.0
 ## explicit; go 1.23.0
 golang.org/x/net/dns/dnsmessage
 golang.org/x/net/http/httpguts
@@ -15,10 +15,10 @@ golang.org/x/net/http2/hpack
 golang.org/x/net/idna
 golang.org/x/net/lif
 golang.org/x/net/nettest
-# golang.org/x/sys v0.33.0
+# golang.org/x/sys v0.35.0
 ## explicit; go 1.23.0
 golang.org/x/sys/cpu
-# golang.org/x/text v0.26.0
+# golang.org/x/text v0.28.0
 ## explicit; go 1.23.0
 golang.org/x/text/secure/bidirule
 golang.org/x/text/transform