diff --git a/cpu/cpu.go b/cpu/cpu.go
index 6354199..f1ce515 100644
--- a/cpu/cpu.go
+++ b/cpu/cpu.go
@@ -152,13 +152,17 @@
 // The booleans in Loong64 contain the correspondingly named cpu feature bit.
 // The struct is padded to avoid false sharing.
 var Loong64 struct {
-	_         CacheLinePad
-	HasLSX    bool // support 128-bit vector extension
-	HasLASX   bool // support 256-bit vector extension
-	HasCRC32  bool // support CRC instruction
-	HasLAM_BH bool // support AM{SWAP/ADD}[_DB].{B/H} instruction
-	HasLAMCAS bool // support AMCAS[_DB].{B/H/W/D} instruction
-	_         CacheLinePad
+	_              CacheLinePad
+	HasLSX         bool // support 128-bit vector extension
+	HasLASX        bool // support 256-bit vector extension
+	HasCRC32       bool // support CRC instruction
+	HasLAMCAS      bool // support AMCAS[_DB].{B/H/W/D}
+	HasLAM_BH      bool // support AM{SWAP/ADD}[_DB].{B/H} instruction
+	HasLLACQ_SCREL bool // support LLACQ.{W/D}, SCREL.{W/D} instruction
+	HasSCQ         bool // support SC.Q instruction
+	HasDBAR_HINTS  bool // supports finer-grained DBAR hints
+
+	_ CacheLinePad
 }
 
 // MIPS64X contains the supported CPU features of the current mips64/mips64le
@@ -232,6 +236,7 @@
 	HasZba            bool // Address generation instructions extension
 	HasZbb            bool // Basic bit-manipulation extension
 	HasZbs            bool // Single-bit instructions extension
+	HasZbc            bool // Carryless multiplication extension
 	HasZvbb           bool // Vector Basic Bit-manipulation
 	HasZvbc           bool // Vector Carryless Multiplication
 	HasZvkb           bool // Vector Cryptography Bit-manipulation
diff --git a/cpu/cpu_linux_riscv64.go b/cpu/cpu_linux_riscv64.go
index ad74153..f4fb52e 100644
--- a/cpu/cpu_linux_riscv64.go
+++ b/cpu/cpu_linux_riscv64.go
@@ -58,6 +58,7 @@
 	riscv_HWPROBE_EXT_ZBA         = 0x8
 	riscv_HWPROBE_EXT_ZBB         = 0x10
 	riscv_HWPROBE_EXT_ZBS         = 0x20
+	riscv_HWPROBE_EXT_ZBC         = 0x80
 	riscv_HWPROBE_EXT_ZVBB        = 0x20000
 	riscv_HWPROBE_EXT_ZVBC        = 0x40000
 	riscv_HWPROBE_EXT_ZVKB        = 0x80000
@@ -108,6 +109,7 @@
 			RISCV64.HasZba = isSet(v, riscv_HWPROBE_EXT_ZBA)
 			RISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB)
 			RISCV64.HasZbs = isSet(v, riscv_HWPROBE_EXT_ZBS)
+			RISCV64.HasZbc = isSet(v, riscv_HWPROBE_EXT_ZBC)
 			RISCV64.HasZvbb = isSet(v, riscv_HWPROBE_EXT_ZVBB)
 			RISCV64.HasZvbc = isSet(v, riscv_HWPROBE_EXT_ZVBC)
 			RISCV64.HasZvkb = isSet(v, riscv_HWPROBE_EXT_ZVKB)
diff --git a/cpu/cpu_loong64.go b/cpu/cpu_loong64.go
index 45ecb29..8c234b4 100644
--- a/cpu/cpu_loong64.go
+++ b/cpu/cpu_loong64.go
@@ -15,8 +15,13 @@
 	cpucfg1_CRC32 = 1 << 25
 
 	// CPUCFG2 bits
-	cpucfg2_LAM_BH = 1 << 27
-	cpucfg2_LAMCAS = 1 << 28
+	cpucfg2_LAM_BH      = 1 << 27
+	cpucfg2_LAMCAS      = 1 << 28
+	cpucfg2_LLACQ_SCREL = 1 << 29
+	cpucfg2_SCQ         = 1 << 30
+
+	// CPUCFG3 bits
+	cpucfg3_DBAR_HINTS = 1 << 17
 )
 
 func initOptions() {
@@ -26,6 +31,9 @@
 		{Name: "crc32", Feature: &Loong64.HasCRC32},
 		{Name: "lam_bh", Feature: &Loong64.HasLAM_BH},
 		{Name: "lamcas", Feature: &Loong64.HasLAMCAS},
+		{Name: "llacq_screl", Feature: &Loong64.HasLLACQ_SCREL},
+		{Name: "scq", Feature: &Loong64.HasSCQ},
+		{Name: "dbar_hints", Feature: &Loong64.HasDBAR_HINTS},
 	}
 
 	// The CPUCFG data on Loong64 only reflects the hardware capabilities,
@@ -37,10 +45,14 @@
 	// through CPUCFG
 	cfg1 := get_cpucfg(1)
 	cfg2 := get_cpucfg(2)
+	cfg3 := get_cpucfg(3)
 
 	Loong64.HasCRC32 = cfgIsSet(cfg1, cpucfg1_CRC32)
 	Loong64.HasLAMCAS = cfgIsSet(cfg2, cpucfg2_LAMCAS)
 	Loong64.HasLAM_BH = cfgIsSet(cfg2, cpucfg2_LAM_BH)
+	Loong64.HasLLACQ_SCREL = cfgIsSet(cfg2, cpucfg2_LLACQ_SCREL)
+	Loong64.HasSCQ = cfgIsSet(cfg2, cpucfg2_SCQ)
+	Loong64.HasDBAR_HINTS = cfgIsSet(cfg3, cpucfg3_DBAR_HINTS)
 }
 
 func get_cpucfg(reg uint32) uint32
diff --git a/cpu/cpu_riscv64.go b/cpu/cpu_riscv64.go
index 0f617ae..d4e9885 100644
--- a/cpu/cpu_riscv64.go
+++ b/cpu/cpu_riscv64.go
@@ -16,6 +16,7 @@
 		{Name: "zba", Feature: &RISCV64.HasZba},
 		{Name: "zbb", Feature: &RISCV64.HasZbb},
 		{Name: "zbs", Feature: &RISCV64.HasZbs},
+		{Name: "zbc", Feature: &RISCV64.HasZbc},
 		// RISC-V Cryptography Extensions
 		{Name: "zvbb", Feature: &RISCV64.HasZvbb},
 		{Name: "zvbc", Feature: &RISCV64.HasZvbc},
diff --git a/unix/linux/Dockerfile b/unix/linux/Dockerfile
index 5cad3ff..226600f 100644
--- a/unix/linux/Dockerfile
+++ b/unix/linux/Dockerfile
@@ -15,8 +15,8 @@
 # Get the git sources. If not cached, this takes O(5 minutes).
 WORKDIR /git
 RUN git config --global advice.detachedHead false
-# Linux Kernel: Released 27 Jul 2025
-RUN git clone --branch v6.16 --depth 1 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
+# Linux Kernel: Released 13 Apr 2026
+RUN git clone --branch v7.0 --depth 1 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
 # GNU C library: Released 29 Jan 2025
 RUN git clone --branch release/2.41/master --depth 1 https://sourceware.org/git/glibc.git
 
diff --git a/unix/linux/types.go b/unix/linux/types.go
index 308d65a..426ca29 100644
--- a/unix/linux/types.go
+++ b/unix/linux/types.go
@@ -117,6 +117,7 @@
 #include <linux/fs.h>
 #include <linux/fsverity.h>
 #include <linux/genetlink.h>
+#include <linux/gpio.h>
 #include <linux/hdreg.h>
 #include <linux/hidraw.h>
 #include <linux/icmp.h>
@@ -564,6 +565,8 @@
 
 type Timespec C.struct_timespec
 
+type KernelTimespec C.struct___kernel_timespec
+
 type Timeval C.struct_timeval
 
 type Timex C.struct_timex
@@ -6295,3 +6298,34 @@
 	MPOL_PREFERRED_MANY      = C.MPOL_PREFERRED_MANY
 	MPOL_WEIGHTED_INTERLEAVE = C.MPOL_WEIGHTED_INTERLEAVE
 )
+
+// GPIO API
+const (
+	GPIO_GET_CHIPINFO_IOCTL          = C.GPIO_GET_CHIPINFO_IOCTL
+	GPIO_V2_GET_LINEINFO_IOCTL       = C.GPIO_V2_GET_LINEINFO_IOCTL
+	GPIO_V2_GET_LINE_IOCTL           = C.GPIO_V2_GET_LINE_IOCTL
+	GPIO_V2_LINE_GET_VALUES_IOCTL    = C.GPIO_V2_LINE_GET_VALUES_IOCTL
+	GPIO_V2_LINE_SET_VALUES_IOCTL    = C.GPIO_V2_LINE_SET_VALUES_IOCTL
+	GPIO_V2_GET_LINEINFO_WATCH_IOCTL = C.GPIO_V2_GET_LINEINFO_WATCH_IOCTL
+	GPIO_GET_LINEINFO_UNWATCH_IOCTL  = C.GPIO_GET_LINEINFO_UNWATCH_IOCTL
+)
+const (
+	GPIO_V2_LINE_ATTR_ID_FLAGS         = C.GPIO_V2_LINE_ATTR_ID_FLAGS
+	GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = C.GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES
+	GPIO_V2_LINE_ATTR_ID_DEBOUNCE      = C.GPIO_V2_LINE_ATTR_ID_DEBOUNCE
+	GPIO_V2_LINE_CHANGED_REQUESTED     = C.GPIO_V2_LINE_CHANGED_REQUESTED
+	GPIO_V2_LINE_CHANGED_RELEASED      = C.GPIO_V2_LINE_CHANGED_RELEASED
+	GPIO_V2_LINE_CHANGED_CONFIG        = C.GPIO_V2_LINE_CHANGED_CONFIG
+	GPIO_V2_LINE_EVENT_RISING_EDGE     = C.GPIO_V2_LINE_EVENT_RISING_EDGE
+	GPIO_V2_LINE_EVENT_FALLING_EDGE    = C.GPIO_V2_LINE_EVENT_FALLING_EDGE
+)
+
+type GPIOChipInfo C.struct_gpiochip_info
+type GPIOV2LineValues C.struct_gpio_v2_line_values
+type GPIOV2LineAttribute C.struct_gpio_v2_line_attribute
+type GPIOV2LineConfigAttribute C.struct_gpio_v2_line_config_attribute
+type GPIOV2LineConfig C.struct_gpio_v2_line_config
+type GPIOV2LineRequest C.struct_gpio_v2_line_request
+type GPIOV2LineInfo C.struct_gpio_v2_line_info
+type GPIOV2LineInfoChanged C.struct_gpio_v2_line_info_changed
+type GPIOV2LineEvent C.struct_gpio_v2_line_event
diff --git a/unix/mkerrors.sh b/unix/mkerrors.sh
index fd39be4..fa74cfe 100755
--- a/unix/mkerrors.sh
+++ b/unix/mkerrors.sh
@@ -354,6 +354,9 @@
 // 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
+
+// Removed in v6.17, commit 760e6f7befba ("futex: Remove support for IMMUTABLE")
+#define PR_FUTEX_HASH_GET_IMMUTABLE 3
 '
 
 includes_NetBSD='
diff --git a/unix/mkpost.go b/unix/mkpost.go
index 5aa20c6..26ee5d2 100644
--- a/unix/mkpost.go
+++ b/unix/mkpost.go
@@ -194,6 +194,15 @@
 		b = bytes.Replace(b, s, newNames, 1)
 	}
 
+	// Convert []int8 to []byte in GPIO structs
+	convertGPIONames := regexp.MustCompile(`(Name|Label|Consumer)(\s+)\[(\d+)\]u?int8`)
+	gpioTypes := regexp.MustCompile(`type GPIO\S+ struct {[^}]*}`)
+	gpioStructs := gpioTypes.FindAll(b, -1)
+	for _, s := range gpioStructs {
+		newNames := convertGPIONames.ReplaceAll(s, []byte("$1$2[$3]byte"))
+		b = bytes.Replace(b, s, newNames, 1)
+	}
+
 	// Convert []int8 to []byte in ctl_info ioctl interface
 	convertCtlInfoName := regexp.MustCompile(`(Name)(\s+)\[(\d+)\]int8`)
 	ctlInfoType := regexp.MustCompile(`type CtlInfo struct {[^}]*}`)
diff --git a/unix/readv_unix.go b/unix/readv_unix.go
new file mode 100644
index 0000000..38a2be9
--- /dev/null
+++ b/unix/readv_unix.go
@@ -0,0 +1,103 @@
+// Copyright 2026 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build darwin || linux || openbsd
+
+package unix
+
+import "unsafe"
+
+// minIovec is the size of the small initial allocation used by
+// Readv, Writev, etc.
+//
+// This small allocation gets stack allocated, which lets the
+// common use case of len(iovs) <= minIovec avoid more expensive
+// heap allocations.
+const minIovec = 8
+
+// appendBytes converts bs to Iovecs and appends them to vecs.
+func appendBytes(vecs []Iovec, bs [][]byte) []Iovec {
+	for _, b := range bs {
+		var v Iovec
+		v.SetLen(len(b))
+		if len(b) > 0 {
+			v.Base = &b[0]
+		} else {
+			v.Base = (*byte)(unsafe.Pointer(&_zero))
+		}
+		vecs = append(vecs, v)
+	}
+	return vecs
+}
+
+// writevRaceDetect tells the race detector that the program
+// has read the first n bytes stored in iovecs.
+func writevRaceDetect(iovecs []Iovec, n int) {
+	if !raceenabled {
+		return
+	}
+	for i := 0; n > 0 && i < len(iovecs); i++ {
+		m := min(int(iovecs[i].Len), n)
+		n -= m
+		if m > 0 {
+			raceReadRange(unsafe.Pointer(iovecs[i].Base), m)
+		}
+	}
+}
+
+// readvRaceDetect tells the race detector that the program
+// has written to the first n bytes stored in iovecs.
+func readvRaceDetect(iovecs []Iovec, n int, err error) {
+	if !raceenabled {
+		return
+	}
+	for i := 0; n > 0 && i < len(iovecs); i++ {
+		m := min(int(iovecs[i].Len), n)
+		n -= m
+		if m > 0 {
+			raceWriteRange(unsafe.Pointer(iovecs[i].Base), m)
+		}
+	}
+	if err == nil {
+		raceAcquire(unsafe.Pointer(&ioSync))
+	}
+}
+
+func Readv(fd int, iovs [][]byte) (n int, err error) {
+	iovecs := make([]Iovec, 0, minIovec)
+	iovecs = appendBytes(iovecs, iovs)
+	n, err = readv(fd, iovecs)
+	readvRaceDetect(iovecs, n, err)
+	return n, err
+}
+
+func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
+	iovecs := make([]Iovec, 0, minIovec)
+	iovecs = appendBytes(iovecs, iovs)
+	n, err = preadv(fd, iovecs, offset)
+	readvRaceDetect(iovecs, n, err)
+	return n, err
+}
+
+func Writev(fd int, iovs [][]byte) (n int, err error) {
+	iovecs := make([]Iovec, 0, minIovec)
+	iovecs = appendBytes(iovecs, iovs)
+	if raceenabled {
+		raceReleaseMerge(unsafe.Pointer(&ioSync))
+	}
+	n, err = writev(fd, iovecs)
+	writevRaceDetect(iovecs, n)
+	return n, err
+}
+
+func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
+	iovecs := make([]Iovec, 0, minIovec)
+	iovecs = appendBytes(iovecs, iovs)
+	if raceenabled {
+		raceReleaseMerge(unsafe.Pointer(&ioSync))
+	}
+	n, err = pwritev(fd, iovecs, offset)
+	writevRaceDetect(iovecs, n)
+	return n, err
+}
diff --git a/unix/readv_unix_test.go b/unix/readv_unix_test.go
new file mode 100644
index 0000000..2193c42
--- /dev/null
+++ b/unix/readv_unix_test.go
@@ -0,0 +1,137 @@
+// Copyright 2026 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build darwin || linux || openbsd
+
+package unix_test
+
+import (
+	"os"
+	"path/filepath"
+	"testing"
+
+	"golang.org/x/sys/unix"
+)
+
+func TestWritevReadv(t *testing.T) {
+	r, w, err := os.Pipe()
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer r.Close()
+	defer w.Close()
+
+	data := [][]byte{[]byte("hello"), []byte(", "), []byte("world")}
+	wn, err := unix.Writev(int(w.Fd()), data)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if wn != 12 {
+		t.Fatalf("Writev wrote %d bytes, want 12", wn)
+	}
+	w.Close()
+
+	buf1 := make([]byte, 5)
+	buf2 := make([]byte, 2)
+	buf3 := make([]byte, 5)
+	rn, err := unix.Readv(int(r.Fd()), [][]byte{buf1, buf2, buf3})
+	if err != nil {
+		t.Fatal(err)
+	}
+	if rn != 12 {
+		t.Fatalf("Readv read %d bytes, want 12", rn)
+	}
+	if string(buf1) != "hello" || string(buf2) != ", " || string(buf3[:5]) != "world" {
+		t.Fatalf("Readv got %q %q %q, want %q %q %q",
+			buf1, buf2, buf3, "hello", ", ", "world")
+	}
+}
+
+func TestPwritevPreadv(t *testing.T) {
+	path := filepath.Join(t.TempDir(), "preadv_test")
+	f, err := os.Create(path)
+	if err != nil {
+		t.Fatal(err)
+	}
+	t.Cleanup(func() { f.Close() })
+
+	const off = 16
+	data := [][]byte{[]byte("foo"), []byte("bar")}
+	wn, err := unix.Pwritev(int(f.Fd()), data, off)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if wn != 6 {
+		t.Fatalf("Pwritev wrote %d bytes, want 6", wn)
+	}
+
+	got1 := make([]byte, 3)
+	got2 := make([]byte, 3)
+	rn, err := unix.Preadv(int(f.Fd()), [][]byte{got1, got2}, off)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if rn != 6 {
+		t.Fatalf("Preadv read %d bytes, want 6", rn)
+	}
+	if string(got1) != "foo" || string(got2) != "bar" {
+		t.Fatalf("Preadv got %q %q, want %q %q", got1, got2, "foo", "bar")
+	}
+}
+
+func TestPwritevOffset(t *testing.T) {
+	// Regression guard: off_t encoding must not overflow on large offsets.
+	// Mirrors the Linux test for golang.org/issues/57291.
+	path := filepath.Join(t.TempDir(), "offset_test")
+	f, err := os.Create(path)
+	if err != nil {
+		t.Fatal(err)
+	}
+	t.Cleanup(func() { f.Close() })
+
+	const off = 20
+	b := [][]byte{{byte(0)}}
+	n, err := unix.Pwritev(int(f.Fd()), b, off)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if n != 1 {
+		t.Fatalf("Pwritev wrote %d bytes, want 1", n)
+	}
+	info, err := f.Stat()
+	if err != nil {
+		t.Fatal(err)
+	}
+	if want := int64(off + 1); info.Size() != want {
+		t.Fatalf("file size %d, want %d", info.Size(), want)
+	}
+}
+
+func TestWritevReadvAllocations(t *testing.T) {
+	// Verify no heap allocations when iovec count <= minIovec (8).
+	// Allocations in this path indicate a regression in the fast path.
+	f, err := os.Create(filepath.Join(t.TempDir(), "alloc_test"))
+	if err != nil {
+		t.Fatal(err)
+	}
+	t.Cleanup(func() { f.Close() })
+
+	iovs := make([][]byte, 8)
+	for i := range iovs {
+		iovs[i] = []byte{'A'}
+	}
+
+	check := func(name string, fn func()) {
+		t.Helper()
+		n := int(testing.AllocsPerRun(100, fn))
+		if n != 0 {
+			t.Errorf("%s: got %d allocations, want 0", name, n)
+		}
+	}
+
+	check("Writev", func() { unix.Writev(int(f.Fd()), iovs) })
+	check("Pwritev", func() { unix.Pwritev(int(f.Fd()), iovs, 0) })
+	check("Readv", func() { unix.Readv(int(f.Fd()), iovs) })
+	check("Preadv", func() { unix.Preadv(int(f.Fd()), iovs, 0) })
+}
diff --git a/unix/syscall_darwin.go b/unix/syscall_darwin.go
index 7838ca5..38590ca 100644
--- a/unix/syscall_darwin.go
+++ b/unix/syscall_darwin.go
@@ -602,95 +602,6 @@
 	return
 }
 
-const minIovec = 8
-
-func Readv(fd int, iovs [][]byte) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
-	n, err = readv(fd, iovecs)
-	readvRacedetect(iovecs, n, err)
-	return n, err
-}
-
-func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
-	n, err = preadv(fd, iovecs, offset)
-	readvRacedetect(iovecs, n, err)
-	return n, err
-}
-
-func Writev(fd int, iovs [][]byte) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
-	if raceenabled {
-		raceReleaseMerge(unsafe.Pointer(&ioSync))
-	}
-	n, err = writev(fd, iovecs)
-	writevRacedetect(iovecs, n)
-	return n, err
-}
-
-func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
-	if raceenabled {
-		raceReleaseMerge(unsafe.Pointer(&ioSync))
-	}
-	n, err = pwritev(fd, iovecs, offset)
-	writevRacedetect(iovecs, n)
-	return n, err
-}
-
-func appendBytes(vecs []Iovec, bs [][]byte) []Iovec {
-	for _, b := range bs {
-		var v Iovec
-		v.SetLen(len(b))
-		if len(b) > 0 {
-			v.Base = &b[0]
-		} else {
-			v.Base = (*byte)(unsafe.Pointer(&_zero))
-		}
-		vecs = append(vecs, v)
-	}
-	return vecs
-}
-
-func writevRacedetect(iovecs []Iovec, n int) {
-	if !raceenabled {
-		return
-	}
-	for i := 0; n > 0 && i < len(iovecs); i++ {
-		m := int(iovecs[i].Len)
-		if m > n {
-			m = n
-		}
-		n -= m
-		if m > 0 {
-			raceReadRange(unsafe.Pointer(iovecs[i].Base), m)
-		}
-	}
-}
-
-func readvRacedetect(iovecs []Iovec, n int, err error) {
-	if !raceenabled {
-		return
-	}
-	for i := 0; n > 0 && i < len(iovecs); i++ {
-		m := int(iovecs[i].Len)
-		if m > n {
-			m = n
-		}
-		n -= m
-		if m > 0 {
-			raceWriteRange(unsafe.Pointer(iovecs[i].Base), m)
-		}
-	}
-	if err == nil {
-		raceAcquire(unsafe.Pointer(&ioSync))
-	}
-}
-
 //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)
 
diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go
index f7b82bc..ce4d7ab 100644
--- a/unix/syscall_linux.go
+++ b/unix/syscall_linux.go
@@ -2150,33 +2150,10 @@
 //sys	exitThread(code int) (err error) = SYS_EXIT
 //sys	readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV
 //sys	writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV
-//sys	preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV
-//sys	pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV
-//sys	preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2
-//sys	pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2
-
-// minIovec is the size of the small initial allocation used by
-// Readv, Writev, etc.
-//
-// This small allocation gets stack allocated, which lets the
-// common use case of len(iovs) <= minIovs avoid more expensive
-// heap allocations.
-const minIovec = 8
-
-// appendBytes converts bs to Iovecs and appends them to vecs.
-func appendBytes(vecs []Iovec, bs [][]byte) []Iovec {
-	for _, b := range bs {
-		var v Iovec
-		v.SetLen(len(b))
-		if len(b) > 0 {
-			v.Base = &b[0]
-		} else {
-			v.Base = (*byte)(unsafe.Pointer(&_zero))
-		}
-		vecs = append(vecs, v)
-	}
-	return vecs
-}
+//sys	preadvSyscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV
+//sys	pwritevSyscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV
+//sys	preadv2Syscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2
+//sys	pwritev2Syscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2
 
 // offs2lohi splits offs into its low and high order bits.
 func offs2lohi(offs int64) (lo, hi uintptr) {
@@ -2184,69 +2161,23 @@
 	return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet
 }
 
-func Readv(fd int, iovs [][]byte) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
-	n, err = readv(fd, iovecs)
-	readvRacedetect(iovecs, n, err)
-	return n, err
-}
-
-func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
 	lo, hi := offs2lohi(offset)
-	n, err = preadv(fd, iovecs, lo, hi)
-	readvRacedetect(iovecs, n, err)
-	return n, err
+	return preadvSyscall(fd, iovecs, lo, hi)
 }
 
 func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
 	iovecs := make([]Iovec, 0, minIovec)
 	iovecs = appendBytes(iovecs, iovs)
 	lo, hi := offs2lohi(offset)
-	n, err = preadv2(fd, iovecs, lo, hi, flags)
-	readvRacedetect(iovecs, n, err)
+	n, err = preadv2Syscall(fd, iovecs, lo, hi, flags)
+	readvRaceDetect(iovecs, n, err)
 	return n, err
 }
 
-func readvRacedetect(iovecs []Iovec, n int, err error) {
-	if !raceenabled {
-		return
-	}
-	for i := 0; n > 0 && i < len(iovecs); i++ {
-		m := min(int(iovecs[i].Len), n)
-		n -= m
-		if m > 0 {
-			raceWriteRange(unsafe.Pointer(iovecs[i].Base), m)
-		}
-	}
-	if err == nil {
-		raceAcquire(unsafe.Pointer(&ioSync))
-	}
-}
-
-func Writev(fd int, iovs [][]byte) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
-	if raceenabled {
-		raceReleaseMerge(unsafe.Pointer(&ioSync))
-	}
-	n, err = writev(fd, iovecs)
-	writevRacedetect(iovecs, n)
-	return n, err
-}
-
-func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
-	iovecs := make([]Iovec, 0, minIovec)
-	iovecs = appendBytes(iovecs, iovs)
-	if raceenabled {
-		raceReleaseMerge(unsafe.Pointer(&ioSync))
-	}
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
 	lo, hi := offs2lohi(offset)
-	n, err = pwritev(fd, iovecs, lo, hi)
-	writevRacedetect(iovecs, n)
-	return n, err
+	return pwritevSyscall(fd, iovecs, lo, hi)
 }
 
 func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
@@ -2256,24 +2187,11 @@
 		raceReleaseMerge(unsafe.Pointer(&ioSync))
 	}
 	lo, hi := offs2lohi(offset)
-	n, err = pwritev2(fd, iovecs, lo, hi, flags)
-	writevRacedetect(iovecs, n)
+	n, err = pwritev2Syscall(fd, iovecs, lo, hi, flags)
+	writevRaceDetect(iovecs, n)
 	return n, err
 }
 
-func writevRacedetect(iovecs []Iovec, n int) {
-	if !raceenabled {
-		return
-	}
-	for i := 0; n > 0 && i < len(iovecs); i++ {
-		m := min(int(iovecs[i].Len), n)
-		n -= m
-		if m > 0 {
-			raceReadRange(unsafe.Pointer(iovecs[i].Base), m)
-		}
-	}
-}
-
 // mmap varies by architecture; see syscall_linux_*.go.
 //sys	munmap(addr uintptr, length uintptr) (err error)
 //sys	mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error)
diff --git a/unix/syscall_openbsd.go b/unix/syscall_openbsd.go
index b86ded5..7b0ef8e 100644
--- a/unix/syscall_openbsd.go
+++ b/unix/syscall_openbsd.go
@@ -300,6 +300,10 @@
 //sys	Pathconf(path string, name int) (val int, err error)
 //sys	pread(fd int, p []byte, offset int64) (n int, err error)
 //sys	pwrite(fd int, p []byte, offset int64) (n int, err error)
+//sys	readv(fd int, iovecs []Iovec) (n int, err error)
+//sys	writev(fd int, iovecs []Iovec) (n int, err error)
+//sys	preadv(fd int, iovecs []Iovec, offset int64) (n int, err error)
+//sys	pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error)
 //sys	read(fd int, p []byte) (n int, err error)
 //sys	Readlink(path string, buf []byte) (n int, err error)
 //sys	Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
diff --git a/unix/zerrors_linux.go b/unix/zerrors_linux.go
index 120a7b3..9d72a6b 100644
--- a/unix/zerrors_linux.go
+++ b/unix/zerrors_linux.go
@@ -353,8 +353,10 @@
 	AUDIT_MAC_IPSEC_EVENT                       = 0x587
 	AUDIT_MAC_MAP_ADD                           = 0x581
 	AUDIT_MAC_MAP_DEL                           = 0x582
+	AUDIT_MAC_OBJ_CONTEXTS                      = 0x592
 	AUDIT_MAC_POLICY_LOAD                       = 0x57b
 	AUDIT_MAC_STATUS                            = 0x57c
+	AUDIT_MAC_TASK_CONTEXTS                     = 0x591
 	AUDIT_MAC_UNLBL_ALLOW                       = 0x57e
 	AUDIT_MAC_UNLBL_STCADD                      = 0x588
 	AUDIT_MAC_UNLBL_STCDEL                      = 0x589
@@ -591,8 +593,13 @@
 	CAN_CTRLMODE_LOOPBACK                       = 0x1
 	CAN_CTRLMODE_ONE_SHOT                       = 0x8
 	CAN_CTRLMODE_PRESUME_ACK                    = 0x40
+	CAN_CTRLMODE_RESTRICTED                     = 0x800
 	CAN_CTRLMODE_TDC_AUTO                       = 0x200
 	CAN_CTRLMODE_TDC_MANUAL                     = 0x400
+	CAN_CTRLMODE_XL                             = 0x1000
+	CAN_CTRLMODE_XL_TDC_AUTO                    = 0x2000
+	CAN_CTRLMODE_XL_TDC_MANUAL                  = 0x4000
+	CAN_CTRLMODE_XL_TMS                         = 0x8000
 	CAN_EFF_FLAG                                = 0x80000000
 	CAN_EFF_ID_BITS                             = 0x1d
 	CAN_EFF_MASK                                = 0x1fffffff
@@ -800,6 +807,8 @@
 	DEVLINK_PORT_FN_CAP_IPSEC_PACKET            = 0x8
 	DEVLINK_PORT_FN_CAP_MIGRATABLE              = 0x2
 	DEVLINK_PORT_FN_CAP_ROCE                    = 0x1
+	DEVLINK_RATE_TCS_MAX                        = 0x8
+	DEVLINK_RATE_TC_INDEX_MAX                   = 0x7
 	DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX           = 0x14
 	DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS  = 0x3
 	DEVMEM_MAGIC                                = 0x454d444d
@@ -1186,6 +1195,7 @@
 	ETH_P_MPLS_UC                               = 0x8847
 	ETH_P_MRP                                   = 0x88e3
 	ETH_P_MVRP                                  = 0x88f5
+	ETH_P_MXLGSW                                = 0x88c3
 	ETH_P_NCSI                                  = 0x88f8
 	ETH_P_NSH                                   = 0x894f
 	ETH_P_PAE                                   = 0x888e
@@ -1218,6 +1228,7 @@
 	ETH_P_WCCP                                  = 0x883e
 	ETH_P_X25                                   = 0x805
 	ETH_P_XDSA                                  = 0xf8
+	ETH_P_YT921X                                = 0x9988
 	ET_CORE                                     = 0x4
 	ET_DYN                                      = 0x3
 	ET_EXEC                                     = 0x2
@@ -1258,6 +1269,7 @@
 	FALLOC_FL_NO_HIDE_STALE                     = 0x4
 	FALLOC_FL_PUNCH_HOLE                        = 0x2
 	FALLOC_FL_UNSHARE_RANGE                     = 0x40
+	FALLOC_FL_WRITE_ZEROES                      = 0x80
 	FALLOC_FL_ZERO_RANGE                        = 0x10
 	FANOTIFY_METADATA_VERSION                   = 0x3
 	FAN_ACCESS                                  = 0x1
@@ -1477,6 +1489,7 @@
 	GRND_INSECURE                               = 0x4
 	GRND_NONBLOCK                               = 0x1
 	GRND_RANDOM                                 = 0x2
+	GUEST_MEMFD_MAGIC                           = 0x474d454d
 	HDIO_DRIVE_CMD                              = 0x31f
 	HDIO_DRIVE_CMD_AEB                          = 0x31e
 	HDIO_DRIVE_CMD_HDR_SIZE                     = 0x4
@@ -1517,6 +1530,7 @@
 	HDIO_SET_XFER                               = 0x306
 	HDIO_TRISTATE_HWIF                          = 0x31b
 	HDIO_UNREGISTER_HWIF                        = 0x32a
+	HIDIOCTL_LAST                               = 0xd
 	HID_MAX_DESCRIPTOR_SIZE                     = 0x1000
 	HOSTFS_SUPER_MAGIC                          = 0xc0ffee
 	HPFS_SUPER_MAGIC                            = 0xf995e849
@@ -1809,6 +1823,8 @@
 	KEXEC_ARCH_X86_64                           = 0x3e0000
 	KEXEC_CRASH_HOTPLUG_SUPPORT                 = 0x8
 	KEXEC_FILE_DEBUG                            = 0x8
+	KEXEC_FILE_FORCE_DTB                        = 0x20
+	KEXEC_FILE_NO_CMA                           = 0x10
 	KEXEC_FILE_NO_INITRAMFS                     = 0x4
 	KEXEC_FILE_ON_CRASH                         = 0x2
 	KEXEC_FILE_UNLOAD                           = 0x1
@@ -1905,6 +1921,7 @@
 	LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON      = 0x2
 	LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF    = 0x1
 	LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF   = 0x4
+	LANDLOCK_RESTRICT_SELF_TSYNC                = 0x8
 	LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET         = 0x1
 	LANDLOCK_SCOPE_SIGNAL                       = 0x2
 	LINUX_REBOOT_CMD_CAD_OFF                    = 0x0
@@ -2412,6 +2429,7 @@
 	NN_PRXFPREG                                 = "LINUX"
 	NN_RISCV_CSR                                = "LINUX"
 	NN_RISCV_TAGGED_ADDR_CTRL                   = "LINUX"
+	NN_RISCV_USER_CFI                           = "LINUX"
 	NN_RISCV_VECTOR                             = "LINUX"
 	NN_S390_CTRS                                = "LINUX"
 	NN_S390_GS_BC                               = "LINUX"
@@ -2493,6 +2511,7 @@
 	NT_PRXFPREG                                 = 0x46e62b7f
 	NT_RISCV_CSR                                = 0x900
 	NT_RISCV_TAGGED_ADDR_CTRL                   = 0x902
+	NT_RISCV_USER_CFI                           = 0x903
 	NT_RISCV_VECTOR                             = 0x901
 	NT_S390_CTRS                                = 0x304
 	NT_S390_GS_BC                               = 0x30c
@@ -2515,6 +2534,7 @@
 	NT_X86_SHSTK                                = 0x204
 	NT_X86_XSAVE_LAYOUT                         = 0x205
 	NT_X86_XSTATE                               = 0x202
+	NULL_FS_MAGIC                               = 0x4e554c4c
 	OCFS2_SUPER_MAGIC                           = 0x7461636f
 	OCRNL                                       = 0x8
 	OFDEL                                       = 0x80
@@ -2594,6 +2614,7 @@
 	PERF_ATTR_SIZE_VER6                         = 0x78
 	PERF_ATTR_SIZE_VER7                         = 0x80
 	PERF_ATTR_SIZE_VER8                         = 0x88
+	PERF_ATTR_SIZE_VER9                         = 0x90
 	PERF_AUX_FLAG_COLLISION                     = 0x8
 	PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT    = 0x0
 	PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW          = 0x100
@@ -2629,6 +2650,7 @@
 	PERF_MEM_LVLNUM_ANY_CACHE                   = 0xb
 	PERF_MEM_LVLNUM_CXL                         = 0x9
 	PERF_MEM_LVLNUM_IO                          = 0xa
+	PERF_MEM_LVLNUM_L0                          = 0x7
 	PERF_MEM_LVLNUM_L1                          = 0x1
 	PERF_MEM_LVLNUM_L2                          = 0x2
 	PERF_MEM_LVLNUM_L2_MHB                      = 0x5
@@ -2662,6 +2684,23 @@
 	PERF_MEM_OP_PFETCH                          = 0x8
 	PERF_MEM_OP_SHIFT                           = 0x0
 	PERF_MEM_OP_STORE                           = 0x4
+	PERF_MEM_REGION_L_NON_SHARE                 = 0x3
+	PERF_MEM_REGION_L_SHARE                     = 0x2
+	PERF_MEM_REGION_MEM0                        = 0x8
+	PERF_MEM_REGION_MEM1                        = 0x9
+	PERF_MEM_REGION_MEM2                        = 0xa
+	PERF_MEM_REGION_MEM3                        = 0xb
+	PERF_MEM_REGION_MEM4                        = 0xc
+	PERF_MEM_REGION_MEM5                        = 0xd
+	PERF_MEM_REGION_MEM6                        = 0xe
+	PERF_MEM_REGION_MEM7                        = 0xf
+	PERF_MEM_REGION_MMIO                        = 0x7
+	PERF_MEM_REGION_NA                          = 0x0
+	PERF_MEM_REGION_O_IO                        = 0x4
+	PERF_MEM_REGION_O_NON_SHARE                 = 0x6
+	PERF_MEM_REGION_O_SHARE                     = 0x5
+	PERF_MEM_REGION_RSVD                        = 0x1
+	PERF_MEM_REGION_SHIFT                       = 0x2e
 	PERF_MEM_REMOTE_REMOTE                      = 0x1
 	PERF_MEM_REMOTE_SHIFT                       = 0x25
 	PERF_MEM_SNOOPX_FWD                         = 0x1
@@ -2776,6 +2815,10 @@
 	PR_CAP_AMBIENT_IS_SET                       = 0x1
 	PR_CAP_AMBIENT_LOWER                        = 0x3
 	PR_CAP_AMBIENT_RAISE                        = 0x2
+	PR_CFI_BRANCH_LANDING_PADS                  = 0x0
+	PR_CFI_DISABLE                              = 0x2
+	PR_CFI_ENABLE                               = 0x1
+	PR_CFI_LOCK                                 = 0x4
 	PR_ENDIAN_BIG                               = 0x0
 	PR_ENDIAN_LITTLE                            = 0x1
 	PR_ENDIAN_PPC_LITTLE                        = 0x2
@@ -2798,6 +2841,7 @@
 	PR_FUTEX_HASH_GET_SLOTS                     = 0x2
 	PR_FUTEX_HASH_SET_SLOTS                     = 0x1
 	PR_GET_AUXV                                 = 0x41555856
+	PR_GET_CFI                                  = 0x50
 	PR_GET_CHILD_SUBREAPER                      = 0x25
 	PR_GET_DUMPABLE                             = 0x3
 	PR_GET_ENDIAN                               = 0x13
@@ -2834,6 +2878,7 @@
 	PR_MDWE_REFUSE_EXEC_GAIN                    = 0x1
 	PR_MPX_DISABLE_MANAGEMENT                   = 0x2c
 	PR_MPX_ENABLE_MANAGEMENT                    = 0x2b
+	PR_MTE_STORE_ONLY                           = 0x80000
 	PR_MTE_TAG_MASK                             = 0x7fff8
 	PR_MTE_TAG_SHIFT                            = 0x3
 	PR_MTE_TCF_ASYNC                            = 0x4
@@ -2877,6 +2922,10 @@
 	PR_RISCV_V_VSTATE_CTRL_NEXT_MASK            = 0xc
 	PR_RISCV_V_VSTATE_CTRL_OFF                  = 0x1
 	PR_RISCV_V_VSTATE_CTRL_ON                   = 0x2
+	PR_RSEQ_SLICE_EXTENSION                     = 0x4f
+	PR_RSEQ_SLICE_EXTENSION_GET                 = 0x1
+	PR_RSEQ_SLICE_EXTENSION_SET                 = 0x2
+	PR_RSEQ_SLICE_EXT_ENABLE                    = 0x1
 	PR_SCHED_CORE                               = 0x3e
 	PR_SCHED_CORE_CREATE                        = 0x1
 	PR_SCHED_CORE_GET                           = 0x0
@@ -2886,6 +2935,7 @@
 	PR_SCHED_CORE_SCOPE_THREAD_GROUP            = 0x1
 	PR_SCHED_CORE_SHARE_FROM                    = 0x3
 	PR_SCHED_CORE_SHARE_TO                      = 0x2
+	PR_SET_CFI                                  = 0x51
 	PR_SET_CHILD_SUBREAPER                      = 0x24
 	PR_SET_DUMPABLE                             = 0x4
 	PR_SET_ENDIAN                               = 0x14
@@ -2951,11 +3001,14 @@
 	PR_SVE_SET_VL_ONEXEC                        = 0x40000
 	PR_SVE_VL_INHERIT                           = 0x20000
 	PR_SVE_VL_LEN_MASK                          = 0xffff
+	PR_SYS_DISPATCH_EXCLUSIVE_ON                = 0x1
+	PR_SYS_DISPATCH_INCLUSIVE_ON                = 0x2
 	PR_SYS_DISPATCH_OFF                         = 0x0
 	PR_SYS_DISPATCH_ON                          = 0x1
 	PR_TAGGED_ADDR_ENABLE                       = 0x1
 	PR_TASK_PERF_EVENTS_DISABLE                 = 0x1f
 	PR_TASK_PERF_EVENTS_ENABLE                  = 0x20
+	PR_THP_DISABLE_EXCEPT_ADVISED               = 0x2
 	PR_TIMER_CREATE_RESTORE_IDS                 = 0x4d
 	PR_TIMER_CREATE_RESTORE_IDS_GET             = 0x2
 	PR_TIMER_CREATE_RESTORE_IDS_OFF             = 0x0
@@ -2987,8 +3040,10 @@
 	PTP_STRICT_FLAGS                            = 0x8
 	PTP_SYS_OFFSET_EXTENDED                     = 0xc4c03d09
 	PTP_SYS_OFFSET_EXTENDED2                    = 0xc4c03d12
+	PTP_SYS_OFFSET_EXTENDED_CYCLES              = 0xc4c03d16
 	PTP_SYS_OFFSET_PRECISE                      = 0xc0403d08
 	PTP_SYS_OFFSET_PRECISE2                     = 0xc0403d11
+	PTP_SYS_OFFSET_PRECISE_CYCLES               = 0xc0403d15
 	PTRACE_ATTACH                               = 0x10
 	PTRACE_CONT                                 = 0x7
 	PTRACE_DETACH                               = 0x11
@@ -3330,8 +3385,9 @@
 	RWF_DSYNC                                   = 0x2
 	RWF_HIPRI                                   = 0x1
 	RWF_NOAPPEND                                = 0x20
+	RWF_NOSIGNAL                                = 0x100
 	RWF_NOWAIT                                  = 0x8
-	RWF_SUPPORTED                               = 0xff
+	RWF_SUPPORTED                               = 0x1ff
 	RWF_SYNC                                    = 0x4
 	RWF_WRITE_LIFE_NOT_SET                      = 0x0
 	SCHED_BATCH                                 = 0x3
@@ -3714,7 +3770,7 @@
 	TASKSTATS_GENL_NAME                         = "TASKSTATS"
 	TASKSTATS_GENL_VERSION                      = 0x1
 	TASKSTATS_TYPE_MAX                          = 0x6
-	TASKSTATS_VERSION                           = 0x10
+	TASKSTATS_VERSION                           = 0x11
 	TCIFLUSH                                    = 0x0
 	TCIOFF                                      = 0x2
 	TCIOFLUSH                                   = 0x2
@@ -4052,6 +4108,7 @@
 	XDP_FLAGS_REPLACE                           = 0x10
 	XDP_FLAGS_SKB_MODE                          = 0x2
 	XDP_FLAGS_UPDATE_IF_NOEXIST                 = 0x1
+	XDP_MAX_TX_SKB_BUDGET                       = 0x9
 	XDP_MMAP_OFFSETS                            = 0x1
 	XDP_OPTIONS                                 = 0x8
 	XDP_OPTIONS_ZEROCOPY                        = 0x1
diff --git a/unix/zerrors_linux_386.go b/unix/zerrors_linux_386.go
index 97a61fc..c0a8ea1 100644
--- a/unix/zerrors_linux_386.go
+++ b/unix/zerrors_linux_386.go
@@ -159,6 +159,7 @@
 	NFDBITS                          = 0x20
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x8008b70d
 	NS_GET_MNTNS_ID                  = 0x8008b705
 	NS_GET_NSTYPE                    = 0xb703
 	NS_GET_OWNER_UID                 = 0xb704
@@ -305,6 +306,7 @@
 	RTC_WKALM_SET                    = 0x4028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -352,6 +354,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -596,6 +599,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -819,7 +824,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_amd64.go b/unix/zerrors_linux_amd64.go
index a0d6d49..ff927c8 100644
--- a/unix/zerrors_linux_amd64.go
+++ b/unix/zerrors_linux_amd64.go
@@ -159,6 +159,7 @@
 	NFDBITS                          = 0x40
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x8008b70d
 	NS_GET_MNTNS_ID                  = 0x8008b705
 	NS_GET_NSTYPE                    = 0xb703
 	NS_GET_OWNER_UID                 = 0xb704
@@ -306,6 +307,7 @@
 	RTC_WKALM_SET                    = 0x4028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -353,6 +355,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -596,6 +599,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -819,7 +824,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_arm.go b/unix/zerrors_linux_arm.go
index dd9c903..55294ed 100644
--- a/unix/zerrors_linux_arm.go
+++ b/unix/zerrors_linux_arm.go
@@ -156,6 +156,7 @@
 	NFDBITS                          = 0x20
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x8008b70d
 	NS_GET_MNTNS_ID                  = 0x8008b705
 	NS_GET_NSTYPE                    = 0xb703
 	NS_GET_OWNER_UID                 = 0xb704
@@ -311,6 +312,7 @@
 	RTC_WKALM_SET                    = 0x4028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -358,6 +360,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -601,6 +604,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -824,7 +829,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_arm64.go b/unix/zerrors_linux_arm64.go
index 384c61c..5dac54c 100644
--- a/unix/zerrors_linux_arm64.go
+++ b/unix/zerrors_linux_arm64.go
@@ -161,6 +161,7 @@
 	NFDBITS                          = 0x40
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x8008b70d
 	NS_GET_MNTNS_ID                  = 0x8008b705
 	NS_GET_NSTYPE                    = 0xb703
 	NS_GET_OWNER_UID                 = 0xb704
@@ -304,6 +305,7 @@
 	RTC_WKALM_SET                    = 0x4028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -351,6 +353,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -598,6 +601,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -821,7 +826,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_loong64.go b/unix/zerrors_linux_loong64.go
index 6384c98..46ac1fc 100644
--- a/unix/zerrors_linux_loong64.go
+++ b/unix/zerrors_linux_loong64.go
@@ -160,6 +160,7 @@
 	NFDBITS                          = 0x40
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x8008b70d
 	NS_GET_MNTNS_ID                  = 0x8008b705
 	NS_GET_NSTYPE                    = 0xb703
 	NS_GET_OWNER_UID                 = 0xb704
@@ -298,6 +299,7 @@
 	RTC_WKALM_SET                    = 0x4028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -345,6 +347,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -588,6 +591,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -811,7 +816,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_mips.go b/unix/zerrors_linux_mips.go
index 553c1c6..b55483e 100644
--- a/unix/zerrors_linux_mips.go
+++ b/unix/zerrors_linux_mips.go
@@ -156,6 +156,7 @@
 	NFDBITS                          = 0x20
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -304,6 +305,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -351,6 +353,7 @@
 	SO_ERROR                         = 0x1007
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x8
 	SO_LINGER                        = 0x80
 	SO_LOCK_FILTER                   = 0x2c
@@ -597,6 +600,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x60)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x46d)
+	EFSBADCRC       = syscall.Errno(0x4d)
+	EFSCORRUPTED    = syscall.Errno(0x87)
 	EHOSTDOWN       = syscall.Errno(0x93)
 	EHOSTUNREACH    = syscall.Errno(0x94)
 	EHWPOISON       = syscall.Errno(0xa8)
@@ -814,7 +819,7 @@
 	{132, "ENOBUFS", "no buffer space available"},
 	{133, "EISCONN", "transport endpoint is already connected"},
 	{134, "ENOTCONN", "transport endpoint is not connected"},
-	{135, "EUCLEAN", "structure needs cleaning"},
+	{135, "EFSCORRUPTED", "structure needs cleaning"},
 	{137, "ENOTNAM", "not a XENIX named type file"},
 	{138, "ENAVAIL", "no XENIX semaphores available"},
 	{139, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_mips64.go b/unix/zerrors_linux_mips64.go
index b3339f2..71890c9 100644
--- a/unix/zerrors_linux_mips64.go
+++ b/unix/zerrors_linux_mips64.go
@@ -156,6 +156,7 @@
 	NFDBITS                          = 0x40
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -304,6 +305,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -351,6 +353,7 @@
 	SO_ERROR                         = 0x1007
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x8
 	SO_LINGER                        = 0x80
 	SO_LOCK_FILTER                   = 0x2c
@@ -597,6 +600,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x60)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x46d)
+	EFSBADCRC       = syscall.Errno(0x4d)
+	EFSCORRUPTED    = syscall.Errno(0x87)
 	EHOSTDOWN       = syscall.Errno(0x93)
 	EHOSTUNREACH    = syscall.Errno(0x94)
 	EHWPOISON       = syscall.Errno(0xa8)
@@ -814,7 +819,7 @@
 	{132, "ENOBUFS", "no buffer space available"},
 	{133, "EISCONN", "transport endpoint is already connected"},
 	{134, "ENOTCONN", "transport endpoint is not connected"},
-	{135, "EUCLEAN", "structure needs cleaning"},
+	{135, "EFSCORRUPTED", "structure needs cleaning"},
 	{137, "ENOTNAM", "not a XENIX named type file"},
 	{138, "ENAVAIL", "no XENIX semaphores available"},
 	{139, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_mips64le.go b/unix/zerrors_linux_mips64le.go
index 177091d..a78b6cc 100644
--- a/unix/zerrors_linux_mips64le.go
+++ b/unix/zerrors_linux_mips64le.go
@@ -156,6 +156,7 @@
 	NFDBITS                          = 0x40
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -304,6 +305,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -351,6 +353,7 @@
 	SO_ERROR                         = 0x1007
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x8
 	SO_LINGER                        = 0x80
 	SO_LOCK_FILTER                   = 0x2c
@@ -597,6 +600,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x60)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x46d)
+	EFSBADCRC       = syscall.Errno(0x4d)
+	EFSCORRUPTED    = syscall.Errno(0x87)
 	EHOSTDOWN       = syscall.Errno(0x93)
 	EHOSTUNREACH    = syscall.Errno(0x94)
 	EHWPOISON       = syscall.Errno(0xa8)
@@ -814,7 +819,7 @@
 	{132, "ENOBUFS", "no buffer space available"},
 	{133, "EISCONN", "transport endpoint is already connected"},
 	{134, "ENOTCONN", "transport endpoint is not connected"},
-	{135, "EUCLEAN", "structure needs cleaning"},
+	{135, "EFSCORRUPTED", "structure needs cleaning"},
 	{137, "ENOTNAM", "not a XENIX named type file"},
 	{138, "ENAVAIL", "no XENIX semaphores available"},
 	{139, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_mipsle.go b/unix/zerrors_linux_mipsle.go
index c5abf15..d0e38ca 100644
--- a/unix/zerrors_linux_mipsle.go
+++ b/unix/zerrors_linux_mipsle.go
@@ -156,6 +156,7 @@
 	NFDBITS                          = 0x20
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -304,6 +305,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -351,6 +353,7 @@
 	SO_ERROR                         = 0x1007
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x8
 	SO_LINGER                        = 0x80
 	SO_LOCK_FILTER                   = 0x2c
@@ -597,6 +600,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x60)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x46d)
+	EFSBADCRC       = syscall.Errno(0x4d)
+	EFSCORRUPTED    = syscall.Errno(0x87)
 	EHOSTDOWN       = syscall.Errno(0x93)
 	EHOSTUNREACH    = syscall.Errno(0x94)
 	EHWPOISON       = syscall.Errno(0xa8)
@@ -814,7 +819,7 @@
 	{132, "ENOBUFS", "no buffer space available"},
 	{133, "EISCONN", "transport endpoint is already connected"},
 	{134, "ENOTCONN", "transport endpoint is not connected"},
-	{135, "EUCLEAN", "structure needs cleaning"},
+	{135, "EFSCORRUPTED", "structure needs cleaning"},
 	{137, "ENOTNAM", "not a XENIX named type file"},
 	{138, "ENAVAIL", "no XENIX semaphores available"},
 	{139, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_ppc.go b/unix/zerrors_linux_ppc.go
index f1f3fad..c883e14 100644
--- a/unix/zerrors_linux_ppc.go
+++ b/unix/zerrors_linux_ppc.go
@@ -158,6 +158,7 @@
 	NL3                              = 0x300
 	NLDLY                            = 0x300
 	NOFLSH                           = 0x80000000
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -359,6 +360,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -406,6 +408,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -653,6 +656,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -877,7 +882,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_ppc64.go b/unix/zerrors_linux_ppc64.go
index 203ad9c..1834273 100644
--- a/unix/zerrors_linux_ppc64.go
+++ b/unix/zerrors_linux_ppc64.go
@@ -158,6 +158,7 @@
 	NL3                              = 0x300
 	NLDLY                            = 0x300
 	NOFLSH                           = 0x80000000
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -363,6 +364,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -410,6 +412,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -657,6 +660,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -881,7 +886,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_ppc64le.go b/unix/zerrors_linux_ppc64le.go
index 4b9abcb..39945dd 100644
--- a/unix/zerrors_linux_ppc64le.go
+++ b/unix/zerrors_linux_ppc64le.go
@@ -158,6 +158,7 @@
 	NL3                              = 0x300
 	NLDLY                            = 0x300
 	NOFLSH                           = 0x80000000
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -363,6 +364,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -410,6 +412,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -657,6 +660,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -881,7 +886,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_riscv64.go b/unix/zerrors_linux_riscv64.go
index f879830..bc0f372 100644
--- a/unix/zerrors_linux_riscv64.go
+++ b/unix/zerrors_linux_riscv64.go
@@ -11,553 +11,569 @@
 import "syscall"
 
 const (
-	B1000000                         = 0x1008
-	B115200                          = 0x1002
-	B1152000                         = 0x1009
-	B1500000                         = 0x100a
-	B2000000                         = 0x100b
-	B230400                          = 0x1003
-	B2500000                         = 0x100c
-	B3000000                         = 0x100d
-	B3500000                         = 0x100e
-	B4000000                         = 0x100f
-	B460800                          = 0x1004
-	B500000                          = 0x1005
-	B57600                           = 0x1001
-	B576000                          = 0x1006
-	B921600                          = 0x1007
-	BLKALIGNOFF                      = 0x127a
-	BLKBSZGET                        = 0x80081270
-	BLKBSZSET                        = 0x40081271
-	BLKDISCARD                       = 0x1277
-	BLKDISCARDZEROES                 = 0x127c
-	BLKFLSBUF                        = 0x1261
-	BLKFRAGET                        = 0x1265
-	BLKFRASET                        = 0x1264
-	BLKGETDISKSEQ                    = 0x80081280
-	BLKGETSIZE                       = 0x1260
-	BLKGETSIZE64                     = 0x80081272
-	BLKIOMIN                         = 0x1278
-	BLKIOOPT                         = 0x1279
-	BLKPBSZGET                       = 0x127b
-	BLKRAGET                         = 0x1263
-	BLKRASET                         = 0x1262
-	BLKROGET                         = 0x125e
-	BLKROSET                         = 0x125d
-	BLKROTATIONAL                    = 0x127e
-	BLKRRPART                        = 0x125f
-	BLKSECDISCARD                    = 0x127d
-	BLKSECTGET                       = 0x1267
-	BLKSECTSET                       = 0x1266
-	BLKSSZGET                        = 0x1268
-	BLKZEROOUT                       = 0x127f
-	BOTHER                           = 0x1000
-	BS1                              = 0x2000
-	BSDLY                            = 0x2000
-	CBAUD                            = 0x100f
-	CBAUDEX                          = 0x1000
-	CIBAUD                           = 0x100f0000
-	CLOCAL                           = 0x800
-	CR1                              = 0x200
-	CR2                              = 0x400
-	CR3                              = 0x600
-	CRDLY                            = 0x600
-	CREAD                            = 0x80
-	CS6                              = 0x10
-	CS7                              = 0x20
-	CS8                              = 0x30
-	CSIZE                            = 0x30
-	CSTOPB                           = 0x40
-	DM_MPATH_PROBE_PATHS             = 0xfd12
-	ECCGETLAYOUT                     = 0x81484d11
-	ECCGETSTATS                      = 0x80104d12
-	ECHOCTL                          = 0x200
-	ECHOE                            = 0x10
-	ECHOK                            = 0x20
-	ECHOKE                           = 0x800
-	ECHONL                           = 0x40
-	ECHOPRT                          = 0x400
-	EFD_CLOEXEC                      = 0x80000
-	EFD_NONBLOCK                     = 0x800
-	EPIOCGPARAMS                     = 0x80088a02
-	EPIOCSPARAMS                     = 0x40088a01
-	EPOLL_CLOEXEC                    = 0x80000
-	EXTPROC                          = 0x10000
-	FF1                              = 0x8000
-	FFDLY                            = 0x8000
-	FICLONE                          = 0x40049409
-	FICLONERANGE                     = 0x4020940d
-	FLUSHO                           = 0x1000
-	FS_IOC_ENABLE_VERITY             = 0x40806685
-	FS_IOC_GETFLAGS                  = 0x80086601
-	FS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b
-	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615
-	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614
-	FS_IOC_SETFLAGS                  = 0x40086602
-	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613
-	F_GETLK                          = 0x5
-	F_GETLK64                        = 0x5
-	F_GETOWN                         = 0x9
-	F_RDLCK                          = 0x0
-	F_SETLK                          = 0x6
-	F_SETLK64                        = 0x6
-	F_SETLKW                         = 0x7
-	F_SETLKW64                       = 0x7
-	F_SETOWN                         = 0x8
-	F_UNLCK                          = 0x2
-	F_WRLCK                          = 0x1
-	HIDIOCGRAWINFO                   = 0x80084803
-	HIDIOCGRDESC                     = 0x90044802
-	HIDIOCGRDESCSIZE                 = 0x80044801
-	HIDIOCREVOKE                     = 0x4004480d
-	HUPCL                            = 0x400
-	ICANON                           = 0x2
-	IEXTEN                           = 0x8000
-	IN_CLOEXEC                       = 0x80000
-	IN_NONBLOCK                      = 0x800
-	IOCTL_MEI_NOTIFY_GET             = 0x80044803
-	IOCTL_MEI_NOTIFY_SET             = 0x40044802
-	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9
-	IPV6_FLOWINFO_MASK               = 0xffffff0f
-	IPV6_FLOWLABEL_MASK              = 0xffff0f00
-	ISIG                             = 0x1
-	IUCLC                            = 0x200
-	IXOFF                            = 0x1000
-	IXON                             = 0x400
-	MAP_ANON                         = 0x20
-	MAP_ANONYMOUS                    = 0x20
-	MAP_DENYWRITE                    = 0x800
-	MAP_EXECUTABLE                   = 0x1000
-	MAP_GROWSDOWN                    = 0x100
-	MAP_HUGETLB                      = 0x40000
-	MAP_LOCKED                       = 0x2000
-	MAP_NONBLOCK                     = 0x10000
-	MAP_NORESERVE                    = 0x4000
-	MAP_POPULATE                     = 0x8000
-	MAP_STACK                        = 0x20000
-	MAP_SYNC                         = 0x80000
-	MCL_CURRENT                      = 0x1
-	MCL_FUTURE                       = 0x2
-	MCL_ONFAULT                      = 0x4
-	MEMERASE                         = 0x40084d02
-	MEMERASE64                       = 0x40104d14
-	MEMGETBADBLOCK                   = 0x40084d0b
-	MEMGETINFO                       = 0x80204d01
-	MEMGETOOBSEL                     = 0x80c84d0a
-	MEMGETREGIONCOUNT                = 0x80044d07
-	MEMISLOCKED                      = 0x80084d17
-	MEMLOCK                          = 0x40084d05
-	MEMREAD                          = 0xc0404d1a
-	MEMREADOOB                       = 0xc0104d04
-	MEMSETBADBLOCK                   = 0x40084d0c
-	MEMUNLOCK                        = 0x40084d06
-	MEMWRITEOOB                      = 0xc0104d03
-	MTDFILEMODE                      = 0x4d13
-	NFDBITS                          = 0x40
-	NLDLY                            = 0x100
-	NOFLSH                           = 0x80
-	NS_GET_MNTNS_ID                  = 0x8008b705
-	NS_GET_NSTYPE                    = 0xb703
-	NS_GET_OWNER_UID                 = 0xb704
-	NS_GET_PARENT                    = 0xb702
-	NS_GET_PID_FROM_PIDNS            = 0x8004b706
-	NS_GET_PID_IN_PIDNS              = 0x8004b708
-	NS_GET_TGID_FROM_PIDNS           = 0x8004b707
-	NS_GET_TGID_IN_PIDNS             = 0x8004b709
-	NS_GET_USERNS                    = 0xb701
-	OLCUC                            = 0x2
-	ONLCR                            = 0x4
-	OTPERASE                         = 0x400c4d19
-	OTPGETREGIONCOUNT                = 0x40044d0e
-	OTPGETREGIONINFO                 = 0x400c4d0f
-	OTPLOCK                          = 0x800c4d10
-	OTPSELECT                        = 0x80044d0d
-	O_APPEND                         = 0x400
-	O_ASYNC                          = 0x2000
-	O_CLOEXEC                        = 0x80000
-	O_CREAT                          = 0x40
-	O_DIRECT                         = 0x4000
-	O_DIRECTORY                      = 0x10000
-	O_DSYNC                          = 0x1000
-	O_EXCL                           = 0x80
-	O_FSYNC                          = 0x101000
-	O_LARGEFILE                      = 0x0
-	O_NDELAY                         = 0x800
-	O_NOATIME                        = 0x40000
-	O_NOCTTY                         = 0x100
-	O_NOFOLLOW                       = 0x20000
-	O_NONBLOCK                       = 0x800
-	O_PATH                           = 0x200000
-	O_RSYNC                          = 0x101000
-	O_SYNC                           = 0x101000
-	O_TMPFILE                        = 0x410000
-	O_TRUNC                          = 0x200
-	PARENB                           = 0x100
-	PARODD                           = 0x200
-	PENDIN                           = 0x4000
-	PERF_EVENT_IOC_DISABLE           = 0x2401
-	PERF_EVENT_IOC_ENABLE            = 0x2400
-	PERF_EVENT_IOC_ID                = 0x80082407
-	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
-	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409
-	PERF_EVENT_IOC_PERIOD            = 0x40082404
-	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
-	PERF_EVENT_IOC_REFRESH           = 0x2402
-	PERF_EVENT_IOC_RESET             = 0x2403
-	PERF_EVENT_IOC_SET_BPF           = 0x40042408
-	PERF_EVENT_IOC_SET_FILTER        = 0x40082406
-	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405
-	PPPIOCATTACH                     = 0x4004743d
-	PPPIOCATTCHAN                    = 0x40047438
-	PPPIOCBRIDGECHAN                 = 0x40047435
-	PPPIOCCONNECT                    = 0x4004743a
-	PPPIOCDETACH                     = 0x4004743c
-	PPPIOCDISCONN                    = 0x7439
-	PPPIOCGASYNCMAP                  = 0x80047458
-	PPPIOCGCHAN                      = 0x80047437
-	PPPIOCGDEBUG                     = 0x80047441
-	PPPIOCGFLAGS                     = 0x8004745a
-	PPPIOCGIDLE                      = 0x8010743f
-	PPPIOCGIDLE32                    = 0x8008743f
-	PPPIOCGIDLE64                    = 0x8010743f
-	PPPIOCGL2TPSTATS                 = 0x80487436
-	PPPIOCGMRU                       = 0x80047453
-	PPPIOCGRASYNCMAP                 = 0x80047455
-	PPPIOCGUNIT                      = 0x80047456
-	PPPIOCGXASYNCMAP                 = 0x80207450
-	PPPIOCSACTIVE                    = 0x40107446
-	PPPIOCSASYNCMAP                  = 0x40047457
-	PPPIOCSCOMPRESS                  = 0x4010744d
-	PPPIOCSDEBUG                     = 0x40047440
-	PPPIOCSFLAGS                     = 0x40047459
-	PPPIOCSMAXCID                    = 0x40047451
-	PPPIOCSMRRU                      = 0x4004743b
-	PPPIOCSMRU                       = 0x40047452
-	PPPIOCSNPMODE                    = 0x4008744b
-	PPPIOCSPASS                      = 0x40107447
-	PPPIOCSRASYNCMAP                 = 0x40047454
-	PPPIOCSXASYNCMAP                 = 0x4020744f
-	PPPIOCUNBRIDGECHAN               = 0x7434
-	PPPIOCXFERUNIT                   = 0x744e
-	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
-	PTP_CLOCK_GETCAPS                = 0x80503d01
-	PTP_CLOCK_GETCAPS2               = 0x80503d0a
-	PTP_ENABLE_PPS                   = 0x40043d04
-	PTP_ENABLE_PPS2                  = 0x40043d0d
-	PTP_EXTTS_REQUEST                = 0x40103d02
-	PTP_EXTTS_REQUEST2               = 0x40103d0b
-	PTP_MASK_CLEAR_ALL               = 0x3d13
-	PTP_MASK_EN_SINGLE               = 0x40043d14
-	PTP_PEROUT_REQUEST               = 0x40383d03
-	PTP_PEROUT_REQUEST2              = 0x40383d0c
-	PTP_PIN_SETFUNC                  = 0x40603d07
-	PTP_PIN_SETFUNC2                 = 0x40603d10
-	PTP_SYS_OFFSET                   = 0x43403d05
-	PTP_SYS_OFFSET2                  = 0x43403d0e
-	PTRACE_GETFDPIC                  = 0x21
-	PTRACE_GETFDPIC_EXEC             = 0x0
-	PTRACE_GETFDPIC_INTERP           = 0x1
-	RLIMIT_AS                        = 0x9
-	RLIMIT_MEMLOCK                   = 0x8
-	RLIMIT_NOFILE                    = 0x7
-	RLIMIT_NPROC                     = 0x6
-	RLIMIT_RSS                       = 0x5
-	RNDADDENTROPY                    = 0x40085203
-	RNDADDTOENTCNT                   = 0x40045201
-	RNDCLEARPOOL                     = 0x5206
-	RNDGETENTCNT                     = 0x80045200
-	RNDGETPOOL                       = 0x80085202
-	RNDRESEEDCRNG                    = 0x5207
-	RNDZAPENTCNT                     = 0x5204
-	RTC_AIE_OFF                      = 0x7002
-	RTC_AIE_ON                       = 0x7001
-	RTC_ALM_READ                     = 0x80247008
-	RTC_ALM_SET                      = 0x40247007
-	RTC_EPOCH_READ                   = 0x8008700d
-	RTC_EPOCH_SET                    = 0x4008700e
-	RTC_IRQP_READ                    = 0x8008700b
-	RTC_IRQP_SET                     = 0x4008700c
-	RTC_PARAM_GET                    = 0x40187013
-	RTC_PARAM_SET                    = 0x40187014
-	RTC_PIE_OFF                      = 0x7006
-	RTC_PIE_ON                       = 0x7005
-	RTC_PLL_GET                      = 0x80207011
-	RTC_PLL_SET                      = 0x40207012
-	RTC_RD_TIME                      = 0x80247009
-	RTC_SET_TIME                     = 0x4024700a
-	RTC_UIE_OFF                      = 0x7004
-	RTC_UIE_ON                       = 0x7003
-	RTC_VL_CLR                       = 0x7014
-	RTC_VL_READ                      = 0x80047013
-	RTC_WIE_OFF                      = 0x7010
-	RTC_WIE_ON                       = 0x700f
-	RTC_WKALM_RD                     = 0x80287010
-	RTC_WKALM_SET                    = 0x4028700f
-	SCM_DEVMEM_DMABUF                = 0x4f
-	SCM_DEVMEM_LINEAR                = 0x4e
-	SCM_TIMESTAMPING                 = 0x25
-	SCM_TIMESTAMPING_OPT_STATS       = 0x36
-	SCM_TIMESTAMPING_PKTINFO         = 0x3a
-	SCM_TIMESTAMPNS                  = 0x23
-	SCM_TS_OPT_ID                    = 0x51
-	SCM_TXTIME                       = 0x3d
-	SCM_WIFI_STATUS                  = 0x29
-	SECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103
-	SECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102
-	SECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104
-	SFD_CLOEXEC                      = 0x80000
-	SFD_NONBLOCK                     = 0x800
-	SIOCATMARK                       = 0x8905
-	SIOCGPGRP                        = 0x8904
-	SIOCGSTAMPNS_NEW                 = 0x80108907
-	SIOCGSTAMP_NEW                   = 0x80108906
-	SIOCINQ                          = 0x541b
-	SIOCOUTQ                         = 0x5411
-	SIOCSPGRP                        = 0x8902
-	SOCK_CLOEXEC                     = 0x80000
-	SOCK_DGRAM                       = 0x2
-	SOCK_NONBLOCK                    = 0x800
-	SOCK_STREAM                      = 0x1
-	SOL_SOCKET                       = 0x1
-	SO_ACCEPTCONN                    = 0x1e
-	SO_ATTACH_BPF                    = 0x32
-	SO_ATTACH_REUSEPORT_CBPF         = 0x33
-	SO_ATTACH_REUSEPORT_EBPF         = 0x34
-	SO_BINDTODEVICE                  = 0x19
-	SO_BINDTOIFINDEX                 = 0x3e
-	SO_BPF_EXTENSIONS                = 0x30
-	SO_BROADCAST                     = 0x6
-	SO_BSDCOMPAT                     = 0xe
-	SO_BUF_LOCK                      = 0x48
-	SO_BUSY_POLL                     = 0x2e
-	SO_BUSY_POLL_BUDGET              = 0x46
-	SO_CNX_ADVICE                    = 0x35
-	SO_COOKIE                        = 0x39
-	SO_DETACH_REUSEPORT_BPF          = 0x44
-	SO_DEVMEM_DMABUF                 = 0x4f
-	SO_DEVMEM_DONTNEED               = 0x50
-	SO_DEVMEM_LINEAR                 = 0x4e
-	SO_DOMAIN                        = 0x27
-	SO_DONTROUTE                     = 0x5
-	SO_ERROR                         = 0x4
-	SO_INCOMING_CPU                  = 0x31
-	SO_INCOMING_NAPI_ID              = 0x38
-	SO_KEEPALIVE                     = 0x9
-	SO_LINGER                        = 0xd
-	SO_LOCK_FILTER                   = 0x2c
-	SO_MARK                          = 0x24
-	SO_MAX_PACING_RATE               = 0x2f
-	SO_MEMINFO                       = 0x37
-	SO_NETNS_COOKIE                  = 0x47
-	SO_NOFCS                         = 0x2b
-	SO_OOBINLINE                     = 0xa
-	SO_PASSCRED                      = 0x10
-	SO_PASSPIDFD                     = 0x4c
-	SO_PASSRIGHTS                    = 0x53
-	SO_PASSSEC                       = 0x22
-	SO_PEEK_OFF                      = 0x2a
-	SO_PEERCRED                      = 0x11
-	SO_PEERGROUPS                    = 0x3b
-	SO_PEERPIDFD                     = 0x4d
-	SO_PEERSEC                       = 0x1f
-	SO_PREFER_BUSY_POLL              = 0x45
-	SO_PROTOCOL                      = 0x26
-	SO_RCVBUF                        = 0x8
-	SO_RCVBUFFORCE                   = 0x21
-	SO_RCVLOWAT                      = 0x12
-	SO_RCVMARK                       = 0x4b
-	SO_RCVPRIORITY                   = 0x52
-	SO_RCVTIMEO                      = 0x14
-	SO_RCVTIMEO_NEW                  = 0x42
-	SO_RCVTIMEO_OLD                  = 0x14
-	SO_RESERVE_MEM                   = 0x49
-	SO_REUSEADDR                     = 0x2
-	SO_REUSEPORT                     = 0xf
-	SO_RXQ_OVFL                      = 0x28
-	SO_SECURITY_AUTHENTICATION       = 0x16
-	SO_SECURITY_ENCRYPTION_NETWORK   = 0x18
-	SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
-	SO_SELECT_ERR_QUEUE              = 0x2d
-	SO_SNDBUF                        = 0x7
-	SO_SNDBUFFORCE                   = 0x20
-	SO_SNDLOWAT                      = 0x13
-	SO_SNDTIMEO                      = 0x15
-	SO_SNDTIMEO_NEW                  = 0x43
-	SO_SNDTIMEO_OLD                  = 0x15
-	SO_TIMESTAMPING                  = 0x25
-	SO_TIMESTAMPING_NEW              = 0x41
-	SO_TIMESTAMPING_OLD              = 0x25
-	SO_TIMESTAMPNS                   = 0x23
-	SO_TIMESTAMPNS_NEW               = 0x40
-	SO_TIMESTAMPNS_OLD               = 0x23
-	SO_TIMESTAMP_NEW                 = 0x3f
-	SO_TXREHASH                      = 0x4a
-	SO_TXTIME                        = 0x3d
-	SO_TYPE                          = 0x3
-	SO_WIFI_STATUS                   = 0x29
-	SO_ZEROCOPY                      = 0x3c
-	TAB1                             = 0x800
-	TAB2                             = 0x1000
-	TAB3                             = 0x1800
-	TABDLY                           = 0x1800
-	TCFLSH                           = 0x540b
-	TCGETA                           = 0x5405
-	TCGETS                           = 0x5401
-	TCGETS2                          = 0x802c542a
-	TCGETX                           = 0x5432
-	TCSAFLUSH                        = 0x2
-	TCSBRK                           = 0x5409
-	TCSBRKP                          = 0x5425
-	TCSETA                           = 0x5406
-	TCSETAF                          = 0x5408
-	TCSETAW                          = 0x5407
-	TCSETS                           = 0x5402
-	TCSETS2                          = 0x402c542b
-	TCSETSF                          = 0x5404
-	TCSETSF2                         = 0x402c542d
-	TCSETSW                          = 0x5403
-	TCSETSW2                         = 0x402c542c
-	TCSETX                           = 0x5433
-	TCSETXF                          = 0x5434
-	TCSETXW                          = 0x5435
-	TCXONC                           = 0x540a
-	TFD_CLOEXEC                      = 0x80000
-	TFD_NONBLOCK                     = 0x800
-	TIOCCBRK                         = 0x5428
-	TIOCCONS                         = 0x541d
-	TIOCEXCL                         = 0x540c
-	TIOCGDEV                         = 0x80045432
-	TIOCGETD                         = 0x5424
-	TIOCGEXCL                        = 0x80045440
-	TIOCGICOUNT                      = 0x545d
-	TIOCGISO7816                     = 0x80285442
-	TIOCGLCKTRMIOS                   = 0x5456
-	TIOCGPGRP                        = 0x540f
-	TIOCGPKT                         = 0x80045438
-	TIOCGPTLCK                       = 0x80045439
-	TIOCGPTN                         = 0x80045430
-	TIOCGPTPEER                      = 0x5441
-	TIOCGRS485                       = 0x542e
-	TIOCGSERIAL                      = 0x541e
-	TIOCGSID                         = 0x5429
-	TIOCGSOFTCAR                     = 0x5419
-	TIOCGWINSZ                       = 0x5413
-	TIOCINQ                          = 0x541b
-	TIOCLINUX                        = 0x541c
-	TIOCMBIC                         = 0x5417
-	TIOCMBIS                         = 0x5416
-	TIOCMGET                         = 0x5415
-	TIOCMIWAIT                       = 0x545c
-	TIOCMSET                         = 0x5418
-	TIOCM_CAR                        = 0x40
-	TIOCM_CD                         = 0x40
-	TIOCM_CTS                        = 0x20
-	TIOCM_DSR                        = 0x100
-	TIOCM_RI                         = 0x80
-	TIOCM_RNG                        = 0x80
-	TIOCM_SR                         = 0x10
-	TIOCM_ST                         = 0x8
-	TIOCNOTTY                        = 0x5422
-	TIOCNXCL                         = 0x540d
-	TIOCOUTQ                         = 0x5411
-	TIOCPKT                          = 0x5420
-	TIOCSBRK                         = 0x5427
-	TIOCSCTTY                        = 0x540e
-	TIOCSERCONFIG                    = 0x5453
-	TIOCSERGETLSR                    = 0x5459
-	TIOCSERGETMULTI                  = 0x545a
-	TIOCSERGSTRUCT                   = 0x5458
-	TIOCSERGWILD                     = 0x5454
-	TIOCSERSETMULTI                  = 0x545b
-	TIOCSERSWILD                     = 0x5455
-	TIOCSER_TEMT                     = 0x1
-	TIOCSETD                         = 0x5423
-	TIOCSIG                          = 0x40045436
-	TIOCSISO7816                     = 0xc0285443
-	TIOCSLCKTRMIOS                   = 0x5457
-	TIOCSPGRP                        = 0x5410
-	TIOCSPTLCK                       = 0x40045431
-	TIOCSRS485                       = 0x542f
-	TIOCSSERIAL                      = 0x541f
-	TIOCSSOFTCAR                     = 0x541a
-	TIOCSTI                          = 0x5412
-	TIOCSWINSZ                       = 0x5414
-	TIOCVHANGUP                      = 0x5437
-	TOSTOP                           = 0x100
-	TUNATTACHFILTER                  = 0x401054d5
-	TUNDETACHFILTER                  = 0x401054d6
-	TUNGETDEVNETNS                   = 0x54e3
-	TUNGETFEATURES                   = 0x800454cf
-	TUNGETFILTER                     = 0x801054db
-	TUNGETIFF                        = 0x800454d2
-	TUNGETSNDBUF                     = 0x800454d3
-	TUNGETVNETBE                     = 0x800454df
-	TUNGETVNETHDRSZ                  = 0x800454d7
-	TUNGETVNETLE                     = 0x800454dd
-	TUNSETCARRIER                    = 0x400454e2
-	TUNSETDEBUG                      = 0x400454c9
-	TUNSETFILTEREBPF                 = 0x800454e1
-	TUNSETGROUP                      = 0x400454ce
-	TUNSETIFF                        = 0x400454ca
-	TUNSETIFINDEX                    = 0x400454da
-	TUNSETLINK                       = 0x400454cd
-	TUNSETNOCSUM                     = 0x400454c8
-	TUNSETOFFLOAD                    = 0x400454d0
-	TUNSETOWNER                      = 0x400454cc
-	TUNSETPERSIST                    = 0x400454cb
-	TUNSETQUEUE                      = 0x400454d9
-	TUNSETSNDBUF                     = 0x400454d4
-	TUNSETSTEERINGEBPF               = 0x800454e0
-	TUNSETTXFILTER                   = 0x400454d1
-	TUNSETVNETBE                     = 0x400454de
-	TUNSETVNETHDRSZ                  = 0x400454d8
-	TUNSETVNETLE                     = 0x400454dc
-	UBI_IOCATT                       = 0x40186f40
-	UBI_IOCDET                       = 0x40046f41
-	UBI_IOCEBCH                      = 0x40044f02
-	UBI_IOCEBER                      = 0x40044f01
-	UBI_IOCEBISMAP                   = 0x80044f05
-	UBI_IOCEBMAP                     = 0x40084f03
-	UBI_IOCEBUNMAP                   = 0x40044f04
-	UBI_IOCMKVOL                     = 0x40986f00
-	UBI_IOCRMVOL                     = 0x40046f01
-	UBI_IOCRNVOL                     = 0x51106f03
-	UBI_IOCRPEB                      = 0x40046f04
-	UBI_IOCRSVOL                     = 0x400c6f02
-	UBI_IOCSETVOLPROP                = 0x40104f06
-	UBI_IOCSPEB                      = 0x40046f05
-	UBI_IOCVOLCRBLK                  = 0x40804f07
-	UBI_IOCVOLRMBLK                  = 0x4f08
-	UBI_IOCVOLUP                     = 0x40084f00
-	VDISCARD                         = 0xd
-	VEOF                             = 0x4
-	VEOL                             = 0xb
-	VEOL2                            = 0x10
-	VMIN                             = 0x6
-	VREPRINT                         = 0xc
-	VSTART                           = 0x8
-	VSTOP                            = 0x9
-	VSUSP                            = 0xa
-	VSWTC                            = 0x7
-	VT1                              = 0x4000
-	VTDLY                            = 0x4000
-	VTIME                            = 0x5
-	VWERASE                          = 0xe
-	WDIOC_GETBOOTSTATUS              = 0x80045702
-	WDIOC_GETPRETIMEOUT              = 0x80045709
-	WDIOC_GETSTATUS                  = 0x80045701
-	WDIOC_GETSUPPORT                 = 0x80285700
-	WDIOC_GETTEMP                    = 0x80045703
-	WDIOC_GETTIMELEFT                = 0x8004570a
-	WDIOC_GETTIMEOUT                 = 0x80045707
-	WDIOC_KEEPALIVE                  = 0x80045705
-	WDIOC_SETOPTIONS                 = 0x80045704
-	WORDSIZE                         = 0x40
-	XCASE                            = 0x4
-	XTABS                            = 0x1800
-	_HIDIOCGRAWNAME                  = 0x80804804
-	_HIDIOCGRAWPHYS                  = 0x80404805
-	_HIDIOCGRAWUNIQ                  = 0x80404808
+	B1000000                                     = 0x1008
+	B115200                                      = 0x1002
+	B1152000                                     = 0x1009
+	B1500000                                     = 0x100a
+	B2000000                                     = 0x100b
+	B230400                                      = 0x1003
+	B2500000                                     = 0x100c
+	B3000000                                     = 0x100d
+	B3500000                                     = 0x100e
+	B4000000                                     = 0x100f
+	B460800                                      = 0x1004
+	B500000                                      = 0x1005
+	B57600                                       = 0x1001
+	B576000                                      = 0x1006
+	B921600                                      = 0x1007
+	BLKALIGNOFF                                  = 0x127a
+	BLKBSZGET                                    = 0x80081270
+	BLKBSZSET                                    = 0x40081271
+	BLKDISCARD                                   = 0x1277
+	BLKDISCARDZEROES                             = 0x127c
+	BLKFLSBUF                                    = 0x1261
+	BLKFRAGET                                    = 0x1265
+	BLKFRASET                                    = 0x1264
+	BLKGETDISKSEQ                                = 0x80081280
+	BLKGETSIZE                                   = 0x1260
+	BLKGETSIZE64                                 = 0x80081272
+	BLKIOMIN                                     = 0x1278
+	BLKIOOPT                                     = 0x1279
+	BLKPBSZGET                                   = 0x127b
+	BLKRAGET                                     = 0x1263
+	BLKRASET                                     = 0x1262
+	BLKROGET                                     = 0x125e
+	BLKROSET                                     = 0x125d
+	BLKROTATIONAL                                = 0x127e
+	BLKRRPART                                    = 0x125f
+	BLKSECDISCARD                                = 0x127d
+	BLKSECTGET                                   = 0x1267
+	BLKSECTSET                                   = 0x1266
+	BLKSSZGET                                    = 0x1268
+	BLKZEROOUT                                   = 0x127f
+	BOTHER                                       = 0x1000
+	BS1                                          = 0x2000
+	BSDLY                                        = 0x2000
+	CBAUD                                        = 0x100f
+	CBAUDEX                                      = 0x1000
+	CIBAUD                                       = 0x100f0000
+	CLOCAL                                       = 0x800
+	CR1                                          = 0x200
+	CR2                                          = 0x400
+	CR3                                          = 0x600
+	CRDLY                                        = 0x600
+	CREAD                                        = 0x80
+	CS6                                          = 0x10
+	CS7                                          = 0x20
+	CS8                                          = 0x30
+	CSIZE                                        = 0x30
+	CSTOPB                                       = 0x40
+	DM_MPATH_PROBE_PATHS                         = 0xfd12
+	ECCGETLAYOUT                                 = 0x81484d11
+	ECCGETSTATS                                  = 0x80104d12
+	ECHOCTL                                      = 0x200
+	ECHOE                                        = 0x10
+	ECHOK                                        = 0x20
+	ECHOKE                                       = 0x800
+	ECHONL                                       = 0x40
+	ECHOPRT                                      = 0x400
+	EFD_CLOEXEC                                  = 0x80000
+	EFD_NONBLOCK                                 = 0x800
+	EPIOCGPARAMS                                 = 0x80088a02
+	EPIOCSPARAMS                                 = 0x40088a01
+	EPOLL_CLOEXEC                                = 0x80000
+	EXTPROC                                      = 0x10000
+	FF1                                          = 0x8000
+	FFDLY                                        = 0x8000
+	FICLONE                                      = 0x40049409
+	FICLONERANGE                                 = 0x4020940d
+	FLUSHO                                       = 0x1000
+	FS_IOC_ENABLE_VERITY                         = 0x40806685
+	FS_IOC_GETFLAGS                              = 0x80086601
+	FS_IOC_GET_ENCRYPTION_NONCE                  = 0x8010661b
+	FS_IOC_GET_ENCRYPTION_POLICY                 = 0x400c6615
+	FS_IOC_GET_ENCRYPTION_PWSALT                 = 0x40106614
+	FS_IOC_SETFLAGS                              = 0x40086602
+	FS_IOC_SET_ENCRYPTION_POLICY                 = 0x800c6613
+	F_GETLK                                      = 0x5
+	F_GETLK64                                    = 0x5
+	F_GETOWN                                     = 0x9
+	F_RDLCK                                      = 0x0
+	F_SETLK                                      = 0x6
+	F_SETLK64                                    = 0x6
+	F_SETLKW                                     = 0x7
+	F_SETLKW64                                   = 0x7
+	F_SETOWN                                     = 0x8
+	F_UNLCK                                      = 0x2
+	F_WRLCK                                      = 0x1
+	HIDIOCGRAWINFO                               = 0x80084803
+	HIDIOCGRDESC                                 = 0x90044802
+	HIDIOCGRDESCSIZE                             = 0x80044801
+	HIDIOCREVOKE                                 = 0x4004480d
+	HUPCL                                        = 0x400
+	ICANON                                       = 0x2
+	IEXTEN                                       = 0x8000
+	IN_CLOEXEC                                   = 0x80000
+	IN_NONBLOCK                                  = 0x800
+	IOCTL_MEI_NOTIFY_GET                         = 0x80044803
+	IOCTL_MEI_NOTIFY_SET                         = 0x40044802
+	IOCTL_VM_SOCKETS_GET_LOCAL_CID               = 0x7b9
+	IPV6_FLOWINFO_MASK                           = 0xffffff0f
+	IPV6_FLOWLABEL_MASK                          = 0xffff0f00
+	ISIG                                         = 0x1
+	IUCLC                                        = 0x200
+	IXOFF                                        = 0x1000
+	IXON                                         = 0x400
+	MAP_ANON                                     = 0x20
+	MAP_ANONYMOUS                                = 0x20
+	MAP_DENYWRITE                                = 0x800
+	MAP_EXECUTABLE                               = 0x1000
+	MAP_GROWSDOWN                                = 0x100
+	MAP_HUGETLB                                  = 0x40000
+	MAP_LOCKED                                   = 0x2000
+	MAP_NONBLOCK                                 = 0x10000
+	MAP_NORESERVE                                = 0x4000
+	MAP_POPULATE                                 = 0x8000
+	MAP_STACK                                    = 0x20000
+	MAP_SYNC                                     = 0x80000
+	MCL_CURRENT                                  = 0x1
+	MCL_FUTURE                                   = 0x2
+	MCL_ONFAULT                                  = 0x4
+	MEMERASE                                     = 0x40084d02
+	MEMERASE64                                   = 0x40104d14
+	MEMGETBADBLOCK                               = 0x40084d0b
+	MEMGETINFO                                   = 0x80204d01
+	MEMGETOOBSEL                                 = 0x80c84d0a
+	MEMGETREGIONCOUNT                            = 0x80044d07
+	MEMISLOCKED                                  = 0x80084d17
+	MEMLOCK                                      = 0x40084d05
+	MEMREAD                                      = 0xc0404d1a
+	MEMREADOOB                                   = 0xc0104d04
+	MEMSETBADBLOCK                               = 0x40084d0c
+	MEMUNLOCK                                    = 0x40084d06
+	MEMWRITEOOB                                  = 0xc0104d03
+	MTDFILEMODE                                  = 0x4d13
+	NFDBITS                                      = 0x40
+	NLDLY                                        = 0x100
+	NOFLSH                                       = 0x80
+	NS_GET_ID                                    = 0x8008b70d
+	NS_GET_MNTNS_ID                              = 0x8008b705
+	NS_GET_NSTYPE                                = 0xb703
+	NS_GET_OWNER_UID                             = 0xb704
+	NS_GET_PARENT                                = 0xb702
+	NS_GET_PID_FROM_PIDNS                        = 0x8004b706
+	NS_GET_PID_IN_PIDNS                          = 0x8004b708
+	NS_GET_TGID_FROM_PIDNS                       = 0x8004b707
+	NS_GET_TGID_IN_PIDNS                         = 0x8004b709
+	NS_GET_USERNS                                = 0xb701
+	OLCUC                                        = 0x2
+	ONLCR                                        = 0x4
+	OTPERASE                                     = 0x400c4d19
+	OTPGETREGIONCOUNT                            = 0x40044d0e
+	OTPGETREGIONINFO                             = 0x400c4d0f
+	OTPLOCK                                      = 0x800c4d10
+	OTPSELECT                                    = 0x80044d0d
+	O_APPEND                                     = 0x400
+	O_ASYNC                                      = 0x2000
+	O_CLOEXEC                                    = 0x80000
+	O_CREAT                                      = 0x40
+	O_DIRECT                                     = 0x4000
+	O_DIRECTORY                                  = 0x10000
+	O_DSYNC                                      = 0x1000
+	O_EXCL                                       = 0x80
+	O_FSYNC                                      = 0x101000
+	O_LARGEFILE                                  = 0x0
+	O_NDELAY                                     = 0x800
+	O_NOATIME                                    = 0x40000
+	O_NOCTTY                                     = 0x100
+	O_NOFOLLOW                                   = 0x20000
+	O_NONBLOCK                                   = 0x800
+	O_PATH                                       = 0x200000
+	O_RSYNC                                      = 0x101000
+	O_SYNC                                       = 0x101000
+	O_TMPFILE                                    = 0x410000
+	O_TRUNC                                      = 0x200
+	PARENB                                       = 0x100
+	PARODD                                       = 0x200
+	PENDIN                                       = 0x4000
+	PERF_EVENT_IOC_DISABLE                       = 0x2401
+	PERF_EVENT_IOC_ENABLE                        = 0x2400
+	PERF_EVENT_IOC_ID                            = 0x80082407
+	PERF_EVENT_IOC_MODIFY_ATTRIBUTES             = 0x4008240b
+	PERF_EVENT_IOC_PAUSE_OUTPUT                  = 0x40042409
+	PERF_EVENT_IOC_PERIOD                        = 0x40082404
+	PERF_EVENT_IOC_QUERY_BPF                     = 0xc008240a
+	PERF_EVENT_IOC_REFRESH                       = 0x2402
+	PERF_EVENT_IOC_RESET                         = 0x2403
+	PERF_EVENT_IOC_SET_BPF                       = 0x40042408
+	PERF_EVENT_IOC_SET_FILTER                    = 0x40082406
+	PERF_EVENT_IOC_SET_OUTPUT                    = 0x2405
+	PPPIOCATTACH                                 = 0x4004743d
+	PPPIOCATTCHAN                                = 0x40047438
+	PPPIOCBRIDGECHAN                             = 0x40047435
+	PPPIOCCONNECT                                = 0x4004743a
+	PPPIOCDETACH                                 = 0x4004743c
+	PPPIOCDISCONN                                = 0x7439
+	PPPIOCGASYNCMAP                              = 0x80047458
+	PPPIOCGCHAN                                  = 0x80047437
+	PPPIOCGDEBUG                                 = 0x80047441
+	PPPIOCGFLAGS                                 = 0x8004745a
+	PPPIOCGIDLE                                  = 0x8010743f
+	PPPIOCGIDLE32                                = 0x8008743f
+	PPPIOCGIDLE64                                = 0x8010743f
+	PPPIOCGL2TPSTATS                             = 0x80487436
+	PPPIOCGMRU                                   = 0x80047453
+	PPPIOCGRASYNCMAP                             = 0x80047455
+	PPPIOCGUNIT                                  = 0x80047456
+	PPPIOCGXASYNCMAP                             = 0x80207450
+	PPPIOCSACTIVE                                = 0x40107446
+	PPPIOCSASYNCMAP                              = 0x40047457
+	PPPIOCSCOMPRESS                              = 0x4010744d
+	PPPIOCSDEBUG                                 = 0x40047440
+	PPPIOCSFLAGS                                 = 0x40047459
+	PPPIOCSMAXCID                                = 0x40047451
+	PPPIOCSMRRU                                  = 0x4004743b
+	PPPIOCSMRU                                   = 0x40047452
+	PPPIOCSNPMODE                                = 0x4008744b
+	PPPIOCSPASS                                  = 0x40107447
+	PPPIOCSRASYNCMAP                             = 0x40047454
+	PPPIOCSXASYNCMAP                             = 0x4020744f
+	PPPIOCUNBRIDGECHAN                           = 0x7434
+	PPPIOCXFERUNIT                               = 0x744e
+	PR_SET_PTRACER_ANY                           = 0xffffffffffffffff
+	PTP_CLOCK_GETCAPS                            = 0x80503d01
+	PTP_CLOCK_GETCAPS2                           = 0x80503d0a
+	PTP_ENABLE_PPS                               = 0x40043d04
+	PTP_ENABLE_PPS2                              = 0x40043d0d
+	PTP_EXTTS_REQUEST                            = 0x40103d02
+	PTP_EXTTS_REQUEST2                           = 0x40103d0b
+	PTP_MASK_CLEAR_ALL                           = 0x3d13
+	PTP_MASK_EN_SINGLE                           = 0x40043d14
+	PTP_PEROUT_REQUEST                           = 0x40383d03
+	PTP_PEROUT_REQUEST2                          = 0x40383d0c
+	PTP_PIN_SETFUNC                              = 0x40603d07
+	PTP_PIN_SETFUNC2                             = 0x40603d10
+	PTP_SYS_OFFSET                               = 0x43403d05
+	PTP_SYS_OFFSET2                              = 0x43403d0e
+	PTRACE_CFI_BRANCH_EXPECTED_LANDING_PAD_BIT   = 0x2
+	PTRACE_CFI_BRANCH_EXPECTED_LANDING_PAD_STATE = 0x4
+	PTRACE_CFI_BRANCH_LANDING_PAD_EN_BIT         = 0x0
+	PTRACE_CFI_BRANCH_LANDING_PAD_EN_STATE       = 0x1
+	PTRACE_CFI_BRANCH_LANDING_PAD_LOCK_BIT       = 0x1
+	PTRACE_CFI_BRANCH_LANDING_PAD_LOCK_STATE     = 0x2
+	PTRACE_CFI_SHADOW_STACK_EN_BIT               = 0x3
+	PTRACE_CFI_SHADOW_STACK_EN_STATE             = 0x8
+	PTRACE_CFI_SHADOW_STACK_LOCK_BIT             = 0x4
+	PTRACE_CFI_SHADOW_STACK_LOCK_STATE           = 0x10
+	PTRACE_CFI_SHADOW_STACK_PTR_BIT              = 0x5
+	PTRACE_CFI_SHADOW_STACK_PTR_STATE            = 0x20
+	PTRACE_CFI_STATE_INVALID_MASK                = 0xffffffffffffffc0
+	PTRACE_GETFDPIC                              = 0x21
+	PTRACE_GETFDPIC_EXEC                         = 0x0
+	PTRACE_GETFDPIC_INTERP                       = 0x1
+	RLIMIT_AS                                    = 0x9
+	RLIMIT_MEMLOCK                               = 0x8
+	RLIMIT_NOFILE                                = 0x7
+	RLIMIT_NPROC                                 = 0x6
+	RLIMIT_RSS                                   = 0x5
+	RNDADDENTROPY                                = 0x40085203
+	RNDADDTOENTCNT                               = 0x40045201
+	RNDCLEARPOOL                                 = 0x5206
+	RNDGETENTCNT                                 = 0x80045200
+	RNDGETPOOL                                   = 0x80085202
+	RNDRESEEDCRNG                                = 0x5207
+	RNDZAPENTCNT                                 = 0x5204
+	RTC_AIE_OFF                                  = 0x7002
+	RTC_AIE_ON                                   = 0x7001
+	RTC_ALM_READ                                 = 0x80247008
+	RTC_ALM_SET                                  = 0x40247007
+	RTC_EPOCH_READ                               = 0x8008700d
+	RTC_EPOCH_SET                                = 0x4008700e
+	RTC_IRQP_READ                                = 0x8008700b
+	RTC_IRQP_SET                                 = 0x4008700c
+	RTC_PARAM_GET                                = 0x40187013
+	RTC_PARAM_SET                                = 0x40187014
+	RTC_PIE_OFF                                  = 0x7006
+	RTC_PIE_ON                                   = 0x7005
+	RTC_PLL_GET                                  = 0x80207011
+	RTC_PLL_SET                                  = 0x40207012
+	RTC_RD_TIME                                  = 0x80247009
+	RTC_SET_TIME                                 = 0x4024700a
+	RTC_UIE_OFF                                  = 0x7004
+	RTC_UIE_ON                                   = 0x7003
+	RTC_VL_CLR                                   = 0x7014
+	RTC_VL_READ                                  = 0x80047013
+	RTC_WIE_OFF                                  = 0x7010
+	RTC_WIE_ON                                   = 0x700f
+	RTC_WKALM_RD                                 = 0x80287010
+	RTC_WKALM_SET                                = 0x4028700f
+	SCM_DEVMEM_DMABUF                            = 0x4f
+	SCM_DEVMEM_LINEAR                            = 0x4e
+	SCM_INQ                                      = 0x54
+	SCM_TIMESTAMPING                             = 0x25
+	SCM_TIMESTAMPING_OPT_STATS                   = 0x36
+	SCM_TIMESTAMPING_PKTINFO                     = 0x3a
+	SCM_TIMESTAMPNS                              = 0x23
+	SCM_TS_OPT_ID                                = 0x51
+	SCM_TXTIME                                   = 0x3d
+	SCM_WIFI_STATUS                              = 0x29
+	SECCOMP_IOCTL_NOTIF_ADDFD                    = 0x40182103
+	SECCOMP_IOCTL_NOTIF_ID_VALID                 = 0x40082102
+	SECCOMP_IOCTL_NOTIF_SET_FLAGS                = 0x40082104
+	SFD_CLOEXEC                                  = 0x80000
+	SFD_NONBLOCK                                 = 0x800
+	SIOCATMARK                                   = 0x8905
+	SIOCGPGRP                                    = 0x8904
+	SIOCGSTAMPNS_NEW                             = 0x80108907
+	SIOCGSTAMP_NEW                               = 0x80108906
+	SIOCINQ                                      = 0x541b
+	SIOCOUTQ                                     = 0x5411
+	SIOCSPGRP                                    = 0x8902
+	SOCK_CLOEXEC                                 = 0x80000
+	SOCK_DGRAM                                   = 0x2
+	SOCK_NONBLOCK                                = 0x800
+	SOCK_STREAM                                  = 0x1
+	SOL_SOCKET                                   = 0x1
+	SO_ACCEPTCONN                                = 0x1e
+	SO_ATTACH_BPF                                = 0x32
+	SO_ATTACH_REUSEPORT_CBPF                     = 0x33
+	SO_ATTACH_REUSEPORT_EBPF                     = 0x34
+	SO_BINDTODEVICE                              = 0x19
+	SO_BINDTOIFINDEX                             = 0x3e
+	SO_BPF_EXTENSIONS                            = 0x30
+	SO_BROADCAST                                 = 0x6
+	SO_BSDCOMPAT                                 = 0xe
+	SO_BUF_LOCK                                  = 0x48
+	SO_BUSY_POLL                                 = 0x2e
+	SO_BUSY_POLL_BUDGET                          = 0x46
+	SO_CNX_ADVICE                                = 0x35
+	SO_COOKIE                                    = 0x39
+	SO_DETACH_REUSEPORT_BPF                      = 0x44
+	SO_DEVMEM_DMABUF                             = 0x4f
+	SO_DEVMEM_DONTNEED                           = 0x50
+	SO_DEVMEM_LINEAR                             = 0x4e
+	SO_DOMAIN                                    = 0x27
+	SO_DONTROUTE                                 = 0x5
+	SO_ERROR                                     = 0x4
+	SO_INCOMING_CPU                              = 0x31
+	SO_INCOMING_NAPI_ID                          = 0x38
+	SO_INQ                                       = 0x54
+	SO_KEEPALIVE                                 = 0x9
+	SO_LINGER                                    = 0xd
+	SO_LOCK_FILTER                               = 0x2c
+	SO_MARK                                      = 0x24
+	SO_MAX_PACING_RATE                           = 0x2f
+	SO_MEMINFO                                   = 0x37
+	SO_NETNS_COOKIE                              = 0x47
+	SO_NOFCS                                     = 0x2b
+	SO_OOBINLINE                                 = 0xa
+	SO_PASSCRED                                  = 0x10
+	SO_PASSPIDFD                                 = 0x4c
+	SO_PASSRIGHTS                                = 0x53
+	SO_PASSSEC                                   = 0x22
+	SO_PEEK_OFF                                  = 0x2a
+	SO_PEERCRED                                  = 0x11
+	SO_PEERGROUPS                                = 0x3b
+	SO_PEERPIDFD                                 = 0x4d
+	SO_PEERSEC                                   = 0x1f
+	SO_PREFER_BUSY_POLL                          = 0x45
+	SO_PROTOCOL                                  = 0x26
+	SO_RCVBUF                                    = 0x8
+	SO_RCVBUFFORCE                               = 0x21
+	SO_RCVLOWAT                                  = 0x12
+	SO_RCVMARK                                   = 0x4b
+	SO_RCVPRIORITY                               = 0x52
+	SO_RCVTIMEO                                  = 0x14
+	SO_RCVTIMEO_NEW                              = 0x42
+	SO_RCVTIMEO_OLD                              = 0x14
+	SO_RESERVE_MEM                               = 0x49
+	SO_REUSEADDR                                 = 0x2
+	SO_REUSEPORT                                 = 0xf
+	SO_RXQ_OVFL                                  = 0x28
+	SO_SECURITY_AUTHENTICATION                   = 0x16
+	SO_SECURITY_ENCRYPTION_NETWORK               = 0x18
+	SO_SECURITY_ENCRYPTION_TRANSPORT             = 0x17
+	SO_SELECT_ERR_QUEUE                          = 0x2d
+	SO_SNDBUF                                    = 0x7
+	SO_SNDBUFFORCE                               = 0x20
+	SO_SNDLOWAT                                  = 0x13
+	SO_SNDTIMEO                                  = 0x15
+	SO_SNDTIMEO_NEW                              = 0x43
+	SO_SNDTIMEO_OLD                              = 0x15
+	SO_TIMESTAMPING                              = 0x25
+	SO_TIMESTAMPING_NEW                          = 0x41
+	SO_TIMESTAMPING_OLD                          = 0x25
+	SO_TIMESTAMPNS                               = 0x23
+	SO_TIMESTAMPNS_NEW                           = 0x40
+	SO_TIMESTAMPNS_OLD                           = 0x23
+	SO_TIMESTAMP_NEW                             = 0x3f
+	SO_TXREHASH                                  = 0x4a
+	SO_TXTIME                                    = 0x3d
+	SO_TYPE                                      = 0x3
+	SO_WIFI_STATUS                               = 0x29
+	SO_ZEROCOPY                                  = 0x3c
+	TAB1                                         = 0x800
+	TAB2                                         = 0x1000
+	TAB3                                         = 0x1800
+	TABDLY                                       = 0x1800
+	TCFLSH                                       = 0x540b
+	TCGETA                                       = 0x5405
+	TCGETS                                       = 0x5401
+	TCGETS2                                      = 0x802c542a
+	TCGETX                                       = 0x5432
+	TCSAFLUSH                                    = 0x2
+	TCSBRK                                       = 0x5409
+	TCSBRKP                                      = 0x5425
+	TCSETA                                       = 0x5406
+	TCSETAF                                      = 0x5408
+	TCSETAW                                      = 0x5407
+	TCSETS                                       = 0x5402
+	TCSETS2                                      = 0x402c542b
+	TCSETSF                                      = 0x5404
+	TCSETSF2                                     = 0x402c542d
+	TCSETSW                                      = 0x5403
+	TCSETSW2                                     = 0x402c542c
+	TCSETX                                       = 0x5433
+	TCSETXF                                      = 0x5434
+	TCSETXW                                      = 0x5435
+	TCXONC                                       = 0x540a
+	TFD_CLOEXEC                                  = 0x80000
+	TFD_NONBLOCK                                 = 0x800
+	TIOCCBRK                                     = 0x5428
+	TIOCCONS                                     = 0x541d
+	TIOCEXCL                                     = 0x540c
+	TIOCGDEV                                     = 0x80045432
+	TIOCGETD                                     = 0x5424
+	TIOCGEXCL                                    = 0x80045440
+	TIOCGICOUNT                                  = 0x545d
+	TIOCGISO7816                                 = 0x80285442
+	TIOCGLCKTRMIOS                               = 0x5456
+	TIOCGPGRP                                    = 0x540f
+	TIOCGPKT                                     = 0x80045438
+	TIOCGPTLCK                                   = 0x80045439
+	TIOCGPTN                                     = 0x80045430
+	TIOCGPTPEER                                  = 0x5441
+	TIOCGRS485                                   = 0x542e
+	TIOCGSERIAL                                  = 0x541e
+	TIOCGSID                                     = 0x5429
+	TIOCGSOFTCAR                                 = 0x5419
+	TIOCGWINSZ                                   = 0x5413
+	TIOCINQ                                      = 0x541b
+	TIOCLINUX                                    = 0x541c
+	TIOCMBIC                                     = 0x5417
+	TIOCMBIS                                     = 0x5416
+	TIOCMGET                                     = 0x5415
+	TIOCMIWAIT                                   = 0x545c
+	TIOCMSET                                     = 0x5418
+	TIOCM_CAR                                    = 0x40
+	TIOCM_CD                                     = 0x40
+	TIOCM_CTS                                    = 0x20
+	TIOCM_DSR                                    = 0x100
+	TIOCM_RI                                     = 0x80
+	TIOCM_RNG                                    = 0x80
+	TIOCM_SR                                     = 0x10
+	TIOCM_ST                                     = 0x8
+	TIOCNOTTY                                    = 0x5422
+	TIOCNXCL                                     = 0x540d
+	TIOCOUTQ                                     = 0x5411
+	TIOCPKT                                      = 0x5420
+	TIOCSBRK                                     = 0x5427
+	TIOCSCTTY                                    = 0x540e
+	TIOCSERCONFIG                                = 0x5453
+	TIOCSERGETLSR                                = 0x5459
+	TIOCSERGETMULTI                              = 0x545a
+	TIOCSERGSTRUCT                               = 0x5458
+	TIOCSERGWILD                                 = 0x5454
+	TIOCSERSETMULTI                              = 0x545b
+	TIOCSERSWILD                                 = 0x5455
+	TIOCSER_TEMT                                 = 0x1
+	TIOCSETD                                     = 0x5423
+	TIOCSIG                                      = 0x40045436
+	TIOCSISO7816                                 = 0xc0285443
+	TIOCSLCKTRMIOS                               = 0x5457
+	TIOCSPGRP                                    = 0x5410
+	TIOCSPTLCK                                   = 0x40045431
+	TIOCSRS485                                   = 0x542f
+	TIOCSSERIAL                                  = 0x541f
+	TIOCSSOFTCAR                                 = 0x541a
+	TIOCSTI                                      = 0x5412
+	TIOCSWINSZ                                   = 0x5414
+	TIOCVHANGUP                                  = 0x5437
+	TOSTOP                                       = 0x100
+	TUNATTACHFILTER                              = 0x401054d5
+	TUNDETACHFILTER                              = 0x401054d6
+	TUNGETDEVNETNS                               = 0x54e3
+	TUNGETFEATURES                               = 0x800454cf
+	TUNGETFILTER                                 = 0x801054db
+	TUNGETIFF                                    = 0x800454d2
+	TUNGETSNDBUF                                 = 0x800454d3
+	TUNGETVNETBE                                 = 0x800454df
+	TUNGETVNETHDRSZ                              = 0x800454d7
+	TUNGETVNETLE                                 = 0x800454dd
+	TUNSETCARRIER                                = 0x400454e2
+	TUNSETDEBUG                                  = 0x400454c9
+	TUNSETFILTEREBPF                             = 0x800454e1
+	TUNSETGROUP                                  = 0x400454ce
+	TUNSETIFF                                    = 0x400454ca
+	TUNSETIFINDEX                                = 0x400454da
+	TUNSETLINK                                   = 0x400454cd
+	TUNSETNOCSUM                                 = 0x400454c8
+	TUNSETOFFLOAD                                = 0x400454d0
+	TUNSETOWNER                                  = 0x400454cc
+	TUNSETPERSIST                                = 0x400454cb
+	TUNSETQUEUE                                  = 0x400454d9
+	TUNSETSNDBUF                                 = 0x400454d4
+	TUNSETSTEERINGEBPF                           = 0x800454e0
+	TUNSETTXFILTER                               = 0x400454d1
+	TUNSETVNETBE                                 = 0x400454de
+	TUNSETVNETHDRSZ                              = 0x400454d8
+	TUNSETVNETLE                                 = 0x400454dc
+	UBI_IOCATT                                   = 0x40186f40
+	UBI_IOCDET                                   = 0x40046f41
+	UBI_IOCEBCH                                  = 0x40044f02
+	UBI_IOCEBER                                  = 0x40044f01
+	UBI_IOCEBISMAP                               = 0x80044f05
+	UBI_IOCEBMAP                                 = 0x40084f03
+	UBI_IOCEBUNMAP                               = 0x40044f04
+	UBI_IOCMKVOL                                 = 0x40986f00
+	UBI_IOCRMVOL                                 = 0x40046f01
+	UBI_IOCRNVOL                                 = 0x51106f03
+	UBI_IOCRPEB                                  = 0x40046f04
+	UBI_IOCRSVOL                                 = 0x400c6f02
+	UBI_IOCSETVOLPROP                            = 0x40104f06
+	UBI_IOCSPEB                                  = 0x40046f05
+	UBI_IOCVOLCRBLK                              = 0x40804f07
+	UBI_IOCVOLRMBLK                              = 0x4f08
+	UBI_IOCVOLUP                                 = 0x40084f00
+	VDISCARD                                     = 0xd
+	VEOF                                         = 0x4
+	VEOL                                         = 0xb
+	VEOL2                                        = 0x10
+	VMIN                                         = 0x6
+	VREPRINT                                     = 0xc
+	VSTART                                       = 0x8
+	VSTOP                                        = 0x9
+	VSUSP                                        = 0xa
+	VSWTC                                        = 0x7
+	VT1                                          = 0x4000
+	VTDLY                                        = 0x4000
+	VTIME                                        = 0x5
+	VWERASE                                      = 0xe
+	WDIOC_GETBOOTSTATUS                          = 0x80045702
+	WDIOC_GETPRETIMEOUT                          = 0x80045709
+	WDIOC_GETSTATUS                              = 0x80045701
+	WDIOC_GETSUPPORT                             = 0x80285700
+	WDIOC_GETTEMP                                = 0x80045703
+	WDIOC_GETTIMELEFT                            = 0x8004570a
+	WDIOC_GETTIMEOUT                             = 0x80045707
+	WDIOC_KEEPALIVE                              = 0x80045705
+	WDIOC_SETOPTIONS                             = 0x80045704
+	WORDSIZE                                     = 0x40
+	XCASE                                        = 0x4
+	XTABS                                        = 0x1800
+	_HIDIOCGRAWNAME                              = 0x80804804
+	_HIDIOCGRAWPHYS                              = 0x80404805
+	_HIDIOCGRAWUNIQ                              = 0x80404808
 )
 
 // Errors
@@ -585,6 +601,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -808,7 +826,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_s390x.go b/unix/zerrors_linux_s390x.go
index 64347eb..6e87bd6 100644
--- a/unix/zerrors_linux_s390x.go
+++ b/unix/zerrors_linux_s390x.go
@@ -156,6 +156,7 @@
 	NFDBITS                          = 0x40
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x8008b70d
 	NS_GET_MNTNS_ID                  = 0x8008b705
 	NS_GET_NSTYPE                    = 0xb703
 	NS_GET_OWNER_UID                 = 0xb704
@@ -367,6 +368,7 @@
 	RTC_WKALM_SET                    = 0x4028700f
 	SCM_DEVMEM_DMABUF                = 0x4f
 	SCM_DEVMEM_LINEAR                = 0x4e
+	SCM_INQ                          = 0x54
 	SCM_TIMESTAMPING                 = 0x25
 	SCM_TIMESTAMPING_OPT_STATS       = 0x36
 	SCM_TIMESTAMPING_PKTINFO         = 0x3a
@@ -414,6 +416,7 @@
 	SO_ERROR                         = 0x4
 	SO_INCOMING_CPU                  = 0x31
 	SO_INCOMING_NAPI_ID              = 0x38
+	SO_INQ                           = 0x54
 	SO_KEEPALIVE                     = 0x9
 	SO_LINGER                        = 0xd
 	SO_LOCK_FILTER                   = 0x2c
@@ -657,6 +660,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x59)
 	EDOTDOT         = syscall.Errno(0x49)
 	EDQUOT          = syscall.Errno(0x7a)
+	EFSBADCRC       = syscall.Errno(0x4a)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x70)
 	EHOSTUNREACH    = syscall.Errno(0x71)
 	EHWPOISON       = syscall.Errno(0x85)
@@ -880,7 +885,7 @@
 	{114, "EALREADY", "operation already in progress"},
 	{115, "EINPROGRESS", "operation now in progress"},
 	{116, "ESTALE", "stale file handle"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zerrors_linux_sparc64.go b/unix/zerrors_linux_sparc64.go
index 7d71911..7e2b2e8 100644
--- a/unix/zerrors_linux_sparc64.go
+++ b/unix/zerrors_linux_sparc64.go
@@ -161,6 +161,7 @@
 	NFDBITS                          = 0x40
 	NLDLY                            = 0x100
 	NOFLSH                           = 0x80
+	NS_GET_ID                        = 0x4008b70d
 	NS_GET_MNTNS_ID                  = 0x4008b705
 	NS_GET_NSTYPE                    = 0x2000b703
 	NS_GET_OWNER_UID                 = 0x2000b704
@@ -358,6 +359,7 @@
 	RTC_WKALM_SET                    = 0x8028700f
 	SCM_DEVMEM_DMABUF                = 0x58
 	SCM_DEVMEM_LINEAR                = 0x57
+	SCM_INQ                          = 0x5d
 	SCM_TIMESTAMPING                 = 0x23
 	SCM_TIMESTAMPING_OPT_STATS       = 0x38
 	SCM_TIMESTAMPING_PKTINFO         = 0x3c
@@ -453,6 +455,7 @@
 	SO_ERROR                         = 0x1007
 	SO_INCOMING_CPU                  = 0x33
 	SO_INCOMING_NAPI_ID              = 0x3a
+	SO_INQ                           = 0x5d
 	SO_KEEPALIVE                     = 0x8
 	SO_LINGER                        = 0x80
 	SO_LOCK_FILTER                   = 0x28
@@ -694,6 +697,8 @@
 	EDESTADDRREQ    = syscall.Errno(0x27)
 	EDOTDOT         = syscall.Errno(0x58)
 	EDQUOT          = syscall.Errno(0x45)
+	EFSBADCRC       = syscall.Errno(0x4c)
+	EFSCORRUPTED    = syscall.Errno(0x75)
 	EHOSTDOWN       = syscall.Errno(0x40)
 	EHOSTUNREACH    = syscall.Errno(0x41)
 	EHWPOISON       = syscall.Errno(0x87)
@@ -921,7 +926,7 @@
 	{114, "ELIBACC", "can not access a needed shared library"},
 	{115, "ENOTUNIQ", "name not unique on network"},
 	{116, "ERESTART", "interrupted system call should be restarted"},
-	{117, "EUCLEAN", "structure needs cleaning"},
+	{117, "EFSCORRUPTED", "structure needs cleaning"},
 	{118, "ENOTNAM", "not a XENIX named type file"},
 	{119, "ENAVAIL", "no XENIX semaphores available"},
 	{120, "EISNAM", "is a named type file"},
diff --git a/unix/zsyscall_linux.go b/unix/zsyscall_linux.go
index 886f5de..80f40e4 100644
--- a/unix/zsyscall_linux.go
+++ b/unix/zsyscall_linux.go
@@ -1785,7 +1785,7 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
+func preadvSyscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(iovs) > 0 {
 		_p0 = unsafe.Pointer(&iovs[0])
@@ -1802,7 +1802,7 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
+func pwritevSyscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(iovs) > 0 {
 		_p0 = unsafe.Pointer(&iovs[0])
@@ -1819,7 +1819,7 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
+func preadv2Syscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(iovs) > 0 {
 		_p0 = unsafe.Pointer(&iovs[0])
@@ -1836,7 +1836,7 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
-func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
+func pwritev2Syscall(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(iovs) > 0 {
 		_p0 = unsafe.Pointer(&iovs[0])
diff --git a/unix/zsyscall_openbsd_386.go b/unix/zsyscall_openbsd_386.go
index 1851df1..6487475 100644
--- a/unix/zsyscall_openbsd_386.go
+++ b/unix/zsyscall_openbsd_386.go
@@ -1633,6 +1633,90 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func readv(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_readv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_readv readv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_writev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_writev writev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), uintptr(offset>>32), 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_preadv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_preadv preadv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), uintptr(offset>>32), 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_pwritev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func read(fd int, p []byte) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(p) > 0 {
diff --git a/unix/zsyscall_openbsd_386.s b/unix/zsyscall_openbsd_386.s
index 0b43c69..f10201d 100644
--- a/unix/zsyscall_openbsd_386.s
+++ b/unix/zsyscall_openbsd_386.s
@@ -498,6 +498,26 @@
 GLOBL	·libc_pwrite_trampoline_addr(SB), RODATA, $4
 DATA	·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)
 
+TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_readv(SB)
+GLOBL	·libc_readv_trampoline_addr(SB), RODATA, $4
+DATA	·libc_readv_trampoline_addr(SB)/4, $libc_readv_trampoline<>(SB)
+
+TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_writev(SB)
+GLOBL	·libc_writev_trampoline_addr(SB), RODATA, $4
+DATA	·libc_writev_trampoline_addr(SB)/4, $libc_writev_trampoline<>(SB)
+
+TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_preadv(SB)
+GLOBL	·libc_preadv_trampoline_addr(SB), RODATA, $4
+DATA	·libc_preadv_trampoline_addr(SB)/4, $libc_preadv_trampoline<>(SB)
+
+TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_pwritev(SB)
+GLOBL	·libc_pwritev_trampoline_addr(SB), RODATA, $4
+DATA	·libc_pwritev_trampoline_addr(SB)/4, $libc_pwritev_trampoline<>(SB)
+
 TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0
 	JMP	libc_read(SB)
 GLOBL	·libc_read_trampoline_addr(SB), RODATA, $4
diff --git a/unix/zsyscall_openbsd_amd64.go b/unix/zsyscall_openbsd_amd64.go
index e1ec0db..5098047 100644
--- a/unix/zsyscall_openbsd_amd64.go
+++ b/unix/zsyscall_openbsd_amd64.go
@@ -1633,6 +1633,90 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func readv(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_readv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_readv readv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_writev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_writev writev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_preadv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_preadv preadv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_pwritev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func read(fd int, p []byte) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(p) > 0 {
diff --git a/unix/zsyscall_openbsd_amd64.s b/unix/zsyscall_openbsd_amd64.s
index 880c6d6..9de2cba 100644
--- a/unix/zsyscall_openbsd_amd64.s
+++ b/unix/zsyscall_openbsd_amd64.s
@@ -498,6 +498,26 @@
 GLOBL	·libc_pwrite_trampoline_addr(SB), RODATA, $8
 DATA	·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)
 
+TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_readv(SB)
+GLOBL	·libc_readv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)
+
+TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_writev(SB)
+GLOBL	·libc_writev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)
+
+TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_preadv(SB)
+GLOBL	·libc_preadv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)
+
+TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_pwritev(SB)
+GLOBL	·libc_pwritev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB)
+
 TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0
 	JMP	libc_read(SB)
 GLOBL	·libc_read_trampoline_addr(SB), RODATA, $8
diff --git a/unix/zsyscall_openbsd_arm.go b/unix/zsyscall_openbsd_arm.go
index 7c8452a..33c9c3a 100644
--- a/unix/zsyscall_openbsd_arm.go
+++ b/unix/zsyscall_openbsd_arm.go
@@ -1633,6 +1633,90 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func readv(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_readv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_readv readv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_writev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_writev writev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), 0, uintptr(offset), uintptr(offset>>32))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_preadv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_preadv preadv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), 0, uintptr(offset), uintptr(offset>>32))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_pwritev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func read(fd int, p []byte) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(p) > 0 {
diff --git a/unix/zsyscall_openbsd_arm.s b/unix/zsyscall_openbsd_arm.s
index b8ef95b..c6b9175 100644
--- a/unix/zsyscall_openbsd_arm.s
+++ b/unix/zsyscall_openbsd_arm.s
@@ -498,6 +498,26 @@
 GLOBL	·libc_pwrite_trampoline_addr(SB), RODATA, $4
 DATA	·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)
 
+TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_readv(SB)
+GLOBL	·libc_readv_trampoline_addr(SB), RODATA, $4
+DATA	·libc_readv_trampoline_addr(SB)/4, $libc_readv_trampoline<>(SB)
+
+TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_writev(SB)
+GLOBL	·libc_writev_trampoline_addr(SB), RODATA, $4
+DATA	·libc_writev_trampoline_addr(SB)/4, $libc_writev_trampoline<>(SB)
+
+TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_preadv(SB)
+GLOBL	·libc_preadv_trampoline_addr(SB), RODATA, $4
+DATA	·libc_preadv_trampoline_addr(SB)/4, $libc_preadv_trampoline<>(SB)
+
+TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_pwritev(SB)
+GLOBL	·libc_pwritev_trampoline_addr(SB), RODATA, $4
+DATA	·libc_pwritev_trampoline_addr(SB)/4, $libc_pwritev_trampoline<>(SB)
+
 TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0
 	JMP	libc_read(SB)
 GLOBL	·libc_read_trampoline_addr(SB), RODATA, $4
diff --git a/unix/zsyscall_openbsd_arm64.go b/unix/zsyscall_openbsd_arm64.go
index 2ffdf86..d341026 100644
--- a/unix/zsyscall_openbsd_arm64.go
+++ b/unix/zsyscall_openbsd_arm64.go
@@ -1633,6 +1633,90 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func readv(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_readv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_readv readv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_writev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_writev writev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_preadv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_preadv preadv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_pwritev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func read(fd int, p []byte) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(p) > 0 {
diff --git a/unix/zsyscall_openbsd_arm64.s b/unix/zsyscall_openbsd_arm64.s
index 2af3b5c..1be10bb 100644
--- a/unix/zsyscall_openbsd_arm64.s
+++ b/unix/zsyscall_openbsd_arm64.s
@@ -498,6 +498,26 @@
 GLOBL	·libc_pwrite_trampoline_addr(SB), RODATA, $8
 DATA	·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)
 
+TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_readv(SB)
+GLOBL	·libc_readv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)
+
+TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_writev(SB)
+GLOBL	·libc_writev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)
+
+TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_preadv(SB)
+GLOBL	·libc_preadv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)
+
+TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_pwritev(SB)
+GLOBL	·libc_pwritev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB)
+
 TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0
 	JMP	libc_read(SB)
 GLOBL	·libc_read_trampoline_addr(SB), RODATA, $8
diff --git a/unix/zsyscall_openbsd_mips64.go b/unix/zsyscall_openbsd_mips64.go
index 1da08d5..dea19d5 100644
--- a/unix/zsyscall_openbsd_mips64.go
+++ b/unix/zsyscall_openbsd_mips64.go
@@ -1633,6 +1633,90 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func readv(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_readv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_readv readv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_writev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_writev writev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_preadv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_preadv preadv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_pwritev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func read(fd int, p []byte) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(p) > 0 {
diff --git a/unix/zsyscall_openbsd_mips64.s b/unix/zsyscall_openbsd_mips64.s
index b7a2513..a9fec24 100644
--- a/unix/zsyscall_openbsd_mips64.s
+++ b/unix/zsyscall_openbsd_mips64.s
@@ -498,6 +498,26 @@
 GLOBL	·libc_pwrite_trampoline_addr(SB), RODATA, $8
 DATA	·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)
 
+TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_readv(SB)
+GLOBL	·libc_readv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)
+
+TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_writev(SB)
+GLOBL	·libc_writev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)
+
+TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_preadv(SB)
+GLOBL	·libc_preadv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)
+
+TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_pwritev(SB)
+GLOBL	·libc_pwritev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB)
+
 TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0
 	JMP	libc_read(SB)
 GLOBL	·libc_read_trampoline_addr(SB), RODATA, $8
diff --git a/unix/zsyscall_openbsd_ppc64.go b/unix/zsyscall_openbsd_ppc64.go
index 6e85b0a..436efb5 100644
--- a/unix/zsyscall_openbsd_ppc64.go
+++ b/unix/zsyscall_openbsd_ppc64.go
@@ -1633,6 +1633,90 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func readv(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_readv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_readv readv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_writev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_writev writev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_preadv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_preadv preadv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_pwritev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func read(fd int, p []byte) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(p) > 0 {
diff --git a/unix/zsyscall_openbsd_ppc64.s b/unix/zsyscall_openbsd_ppc64.s
index f15dadf..441ed4e 100644
--- a/unix/zsyscall_openbsd_ppc64.s
+++ b/unix/zsyscall_openbsd_ppc64.s
@@ -597,6 +597,30 @@
 GLOBL	·libc_pwrite_trampoline_addr(SB), RODATA, $8
 DATA	·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)
 
+TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0
+	CALL	libc_readv(SB)
+	RET
+GLOBL	·libc_readv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)
+
+TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0
+	CALL	libc_writev(SB)
+	RET
+GLOBL	·libc_writev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)
+
+TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0
+	CALL	libc_preadv(SB)
+	RET
+GLOBL	·libc_preadv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)
+
+TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0
+	CALL	libc_pwritev(SB)
+	RET
+GLOBL	·libc_pwritev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB)
+
 TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0
 	CALL	libc_read(SB)
 	RET
diff --git a/unix/zsyscall_openbsd_riscv64.go b/unix/zsyscall_openbsd_riscv64.go
index 28b487d..d801e4b 100644
--- a/unix/zsyscall_openbsd_riscv64.go
+++ b/unix/zsyscall_openbsd_riscv64.go
@@ -1633,6 +1633,90 @@
 
 // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 
+func readv(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_readv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_readv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_readv readv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writev(fd int, iovecs []Iovec) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall(libc_writev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)))
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_writev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_writev writev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func preadv(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_preadv_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_preadv_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_preadv preadv "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pwritev(fd int, iovecs []Iovec, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(iovecs) > 0 {
+		_p0 = unsafe.Pointer(&iovecs[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := syscall_syscall6(libc_pwritev_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(iovecs)), uintptr(offset), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+var libc_pwritev_trampoline_addr uintptr
+
+//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
 func read(fd int, p []byte) (n int, err error) {
 	var _p0 unsafe.Pointer
 	if len(p) > 0 {
diff --git a/unix/zsyscall_openbsd_riscv64.s b/unix/zsyscall_openbsd_riscv64.s
index 1e7f321..b15cc01 100644
--- a/unix/zsyscall_openbsd_riscv64.s
+++ b/unix/zsyscall_openbsd_riscv64.s
@@ -498,6 +498,26 @@
 GLOBL	·libc_pwrite_trampoline_addr(SB), RODATA, $8
 DATA	·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)
 
+TEXT libc_readv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_readv(SB)
+GLOBL	·libc_readv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_readv_trampoline_addr(SB)/8, $libc_readv_trampoline<>(SB)
+
+TEXT libc_writev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_writev(SB)
+GLOBL	·libc_writev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_writev_trampoline_addr(SB)/8, $libc_writev_trampoline<>(SB)
+
+TEXT libc_preadv_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_preadv(SB)
+GLOBL	·libc_preadv_trampoline_addr(SB), RODATA, $8
+DATA	·libc_preadv_trampoline_addr(SB)/8, $libc_preadv_trampoline<>(SB)
+
+TEXT libc_pwritev_trampoline<>(SB),NOSPLIT,$0-0
+	JMP	libc_pwritev(SB)
+GLOBL	·libc_pwritev_trampoline_addr(SB), RODATA, $8
+DATA	·libc_pwritev_trampoline_addr(SB)/8, $libc_pwritev_trampoline<>(SB)
+
 TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0
 	JMP	libc_read(SB)
 GLOBL	·libc_read_trampoline_addr(SB), RODATA, $8
diff --git a/unix/zsysnum_linux_386.go b/unix/zsysnum_linux_386.go
index aca56ee..49d1b88 100644
--- a/unix/zsysnum_linux_386.go
+++ b/unix/zsysnum_linux_386.go
@@ -463,4 +463,8 @@
 	SYS_LISTXATTRAT                  = 465
 	SYS_REMOVEXATTRAT                = 466
 	SYS_OPEN_TREE_ATTR               = 467
+	SYS_FILE_GETATTR                 = 468
+	SYS_FILE_SETATTR                 = 469
+	SYS_LISTNS                       = 470
+	SYS_RSEQ_SLICE_YIELD             = 471
 )
diff --git a/unix/zsysnum_linux_amd64.go b/unix/zsysnum_linux_amd64.go
index 2ea1ef5..f11f1de 100644
--- a/unix/zsysnum_linux_amd64.go
+++ b/unix/zsysnum_linux_amd64.go
@@ -342,6 +342,7 @@
 	SYS_IO_PGETEVENTS           = 333
 	SYS_RSEQ                    = 334
 	SYS_URETPROBE               = 335
+	SYS_UPROBE                  = 336
 	SYS_PIDFD_SEND_SIGNAL       = 424
 	SYS_IO_URING_SETUP          = 425
 	SYS_IO_URING_ENTER          = 426
@@ -386,4 +387,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/zsysnum_linux_arm.go b/unix/zsysnum_linux_arm.go
index d22c8af..bad740b 100644
--- a/unix/zsysnum_linux_arm.go
+++ b/unix/zsysnum_linux_arm.go
@@ -427,4 +427,8 @@
 	SYS_LISTXATTRAT                  = 465
 	SYS_REMOVEXATTRAT                = 466
 	SYS_OPEN_TREE_ATTR               = 467
+	SYS_FILE_GETATTR                 = 468
+	SYS_FILE_SETATTR                 = 469
+	SYS_LISTNS                       = 470
+	SYS_RSEQ_SLICE_YIELD             = 471
 )
diff --git a/unix/zsysnum_linux_arm64.go b/unix/zsysnum_linux_arm64.go
index 5ee264a..fe646d1 100644
--- a/unix/zsysnum_linux_arm64.go
+++ b/unix/zsysnum_linux_arm64.go
@@ -330,4 +330,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/zsysnum_linux_loong64.go b/unix/zsysnum_linux_loong64.go
index f9f03eb..4362f6d 100644
--- a/unix/zsysnum_linux_loong64.go
+++ b/unix/zsysnum_linux_loong64.go
@@ -306,6 +306,7 @@
 	SYS_LANDLOCK_CREATE_RULESET = 444
 	SYS_LANDLOCK_ADD_RULE       = 445
 	SYS_LANDLOCK_RESTRICT_SELF  = 446
+	SYS_MEMFD_SECRET            = 447
 	SYS_PROCESS_MRELEASE        = 448
 	SYS_FUTEX_WAITV             = 449
 	SYS_SET_MEMPOLICY_HOME_NODE = 450
@@ -326,4 +327,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/zsysnum_linux_mips.go b/unix/zsysnum_linux_mips.go
index 87c2118..b63d155 100644
--- a/unix/zsysnum_linux_mips.go
+++ b/unix/zsysnum_linux_mips.go
@@ -447,4 +447,8 @@
 	SYS_LISTXATTRAT                  = 4465
 	SYS_REMOVEXATTRAT                = 4466
 	SYS_OPEN_TREE_ATTR               = 4467
+	SYS_FILE_GETATTR                 = 4468
+	SYS_FILE_SETATTR                 = 4469
+	SYS_LISTNS                       = 4470
+	SYS_RSEQ_SLICE_YIELD             = 4471
 )
diff --git a/unix/zsysnum_linux_mips64.go b/unix/zsysnum_linux_mips64.go
index 391ad10..435d433 100644
--- a/unix/zsysnum_linux_mips64.go
+++ b/unix/zsysnum_linux_mips64.go
@@ -377,4 +377,8 @@
 	SYS_LISTXATTRAT             = 5465
 	SYS_REMOVEXATTRAT           = 5466
 	SYS_OPEN_TREE_ATTR          = 5467
+	SYS_FILE_GETATTR            = 5468
+	SYS_FILE_SETATTR            = 5469
+	SYS_LISTNS                  = 5470
+	SYS_RSEQ_SLICE_YIELD        = 5471
 )
diff --git a/unix/zsysnum_linux_mips64le.go b/unix/zsysnum_linux_mips64le.go
index 5656157..dcc0468 100644
--- a/unix/zsysnum_linux_mips64le.go
+++ b/unix/zsysnum_linux_mips64le.go
@@ -377,4 +377,8 @@
 	SYS_LISTXATTRAT             = 5465
 	SYS_REMOVEXATTRAT           = 5466
 	SYS_OPEN_TREE_ATTR          = 5467
+	SYS_FILE_GETATTR            = 5468
+	SYS_FILE_SETATTR            = 5469
+	SYS_LISTNS                  = 5470
+	SYS_RSEQ_SLICE_YIELD        = 5471
 )
diff --git a/unix/zsysnum_linux_mipsle.go b/unix/zsysnum_linux_mipsle.go
index 0482b52..b96f85e 100644
--- a/unix/zsysnum_linux_mipsle.go
+++ b/unix/zsysnum_linux_mipsle.go
@@ -447,4 +447,8 @@
 	SYS_LISTXATTRAT                  = 4465
 	SYS_REMOVEXATTRAT                = 4466
 	SYS_OPEN_TREE_ATTR               = 4467
+	SYS_FILE_GETATTR                 = 4468
+	SYS_FILE_SETATTR                 = 4469
+	SYS_LISTNS                       = 4470
+	SYS_RSEQ_SLICE_YIELD             = 4471
 )
diff --git a/unix/zsysnum_linux_ppc.go b/unix/zsysnum_linux_ppc.go
index 71806f0..bffa2bd 100644
--- a/unix/zsysnum_linux_ppc.go
+++ b/unix/zsysnum_linux_ppc.go
@@ -454,4 +454,8 @@
 	SYS_LISTXATTRAT                  = 465
 	SYS_REMOVEXATTRAT                = 466
 	SYS_OPEN_TREE_ATTR               = 467
+	SYS_FILE_GETATTR                 = 468
+	SYS_FILE_SETATTR                 = 469
+	SYS_LISTNS                       = 470
+	SYS_RSEQ_SLICE_YIELD             = 471
 )
diff --git a/unix/zsysnum_linux_ppc64.go b/unix/zsysnum_linux_ppc64.go
index e35a710..57bfc6b 100644
--- a/unix/zsysnum_linux_ppc64.go
+++ b/unix/zsysnum_linux_ppc64.go
@@ -426,4 +426,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/zsysnum_linux_ppc64le.go b/unix/zsysnum_linux_ppc64le.go
index 2aea476..750f706 100644
--- a/unix/zsysnum_linux_ppc64le.go
+++ b/unix/zsysnum_linux_ppc64le.go
@@ -426,4 +426,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/zsysnum_linux_riscv64.go b/unix/zsysnum_linux_riscv64.go
index 6c9bb4e..303ccbf 100644
--- a/unix/zsysnum_linux_riscv64.go
+++ b/unix/zsysnum_linux_riscv64.go
@@ -331,4 +331,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/zsysnum_linux_s390x.go b/unix/zsysnum_linux_s390x.go
index 680bc99..5e5dd4c 100644
--- a/unix/zsysnum_linux_s390x.go
+++ b/unix/zsysnum_linux_s390x.go
@@ -392,4 +392,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/zsysnum_linux_sparc64.go b/unix/zsysnum_linux_sparc64.go
index 620f271..f7c4fb3 100644
--- a/unix/zsysnum_linux_sparc64.go
+++ b/unix/zsysnum_linux_sparc64.go
@@ -374,6 +374,7 @@
 	SYS_FSMOUNT                 = 432
 	SYS_FSPICK                  = 433
 	SYS_PIDFD_OPEN              = 434
+	SYS_CLONE3                  = 435
 	SYS_CLOSE_RANGE             = 436
 	SYS_OPENAT2                 = 437
 	SYS_PIDFD_GETFD             = 438
@@ -405,4 +406,8 @@
 	SYS_LISTXATTRAT             = 465
 	SYS_REMOVEXATTRAT           = 466
 	SYS_OPEN_TREE_ATTR          = 467
+	SYS_FILE_GETATTR            = 468
+	SYS_FILE_SETATTR            = 469
+	SYS_LISTNS                  = 470
+	SYS_RSEQ_SLICE_YIELD        = 471
 )
diff --git a/unix/ztypes_linux.go b/unix/ztypes_linux.go
index 45476a7..526a0d5 100644
--- a/unix/ztypes_linux.go
+++ b/unix/ztypes_linux.go
@@ -18,6 +18,11 @@
 	_C_long_long int64
 )
 
+type KernelTimespec struct {
+	Sec  int64
+	Nsec int64
+}
+
 type ItimerSpec struct {
 	Interval Timespec
 	Value    Timespec
@@ -521,6 +526,14 @@
 	Total_rto            uint16
 	Total_rto_recoveries uint16
 	Total_rto_time       uint32
+	Received_ce          uint32
+	Delivered_e1_bytes   uint32
+	Delivered_e0_bytes   uint32
+	Delivered_ce_bytes   uint32
+	Received_e1_bytes    uint32
+	Received_e0_bytes    uint32
+	Received_ce_bytes    uint32
+	_                    [4]byte
 }
 
 type TCPVegasInfo struct {
@@ -586,7 +599,7 @@
 	SizeofIPv6MTUInfo       = 0x20
 	SizeofICMPv6Filter      = 0x20
 	SizeofUcred             = 0xc
-	SizeofTCPInfo           = 0xf8
+	SizeofTCPInfo           = 0x118
 	SizeofTCPCCInfo         = 0x14
 	SizeofCanFilter         = 0x8
 	SizeofTCPRepairOpt      = 0x8
@@ -1324,7 +1337,7 @@
 	PERF_RECORD_CGROUP                    = 0x13
 	PERF_RECORD_TEXT_POKE                 = 0x14
 	PERF_RECORD_AUX_OUTPUT_HW_ID          = 0x15
-	PERF_RECORD_MAX                       = 0x16
+	PERF_RECORD_MAX                       = 0x17
 	PERF_RECORD_KSYMBOL_TYPE_UNKNOWN      = 0x0
 	PERF_RECORD_KSYMBOL_TYPE_BPF          = 0x1
 	PERF_RECORD_KSYMBOL_TYPE_OOL          = 0x2
@@ -3566,7 +3579,7 @@
 	DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES              = 0xae
 	DEVLINK_ATTR_NESTED_DEVLINK                        = 0xaf
 	DEVLINK_ATTR_SELFTESTS                             = 0xb0
-	DEVLINK_ATTR_MAX                                   = 0xb3
+	DEVLINK_ATTR_MAX                                   = 0xb7
 	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE              = 0x0
 	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX           = 0x1
 	DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT               = 0x0
@@ -3888,7 +3901,7 @@
 	ETHTOOL_MSG_PHY_GET                       = 0x2d
 	ETHTOOL_MSG_TSCONFIG_GET                  = 0x2e
 	ETHTOOL_MSG_TSCONFIG_SET                  = 0x2f
-	ETHTOOL_MSG_USER_MAX                      = 0x2f
+	ETHTOOL_MSG_USER_MAX                      = 0x33
 	ETHTOOL_MSG_KERNEL_NONE                   = 0x0
 	ETHTOOL_MSG_STRSET_GET_REPLY              = 0x1
 	ETHTOOL_MSG_LINKINFO_GET_REPLY            = 0x2
@@ -3938,7 +3951,7 @@
 	ETHTOOL_MSG_PHY_NTF                       = 0x2e
 	ETHTOOL_MSG_TSCONFIG_GET_REPLY            = 0x2f
 	ETHTOOL_MSG_TSCONFIG_SET_REPLY            = 0x30
-	ETHTOOL_MSG_KERNEL_MAX                    = 0x30
+	ETHTOOL_MSG_KERNEL_MAX                    = 0x36
 	ETHTOOL_FLAG_COMPACT_BITSETS              = 0x1
 	ETHTOOL_FLAG_OMIT_REPLY                   = 0x2
 	ETHTOOL_FLAG_STATS                        = 0x4
@@ -4867,7 +4880,7 @@
 	NL80211_ATTR_MAC_HINT                                   = 0xc8
 	NL80211_ATTR_MAC_MASK                                   = 0xd7
 	NL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca
-	NL80211_ATTR_MAX                                        = 0x151
+	NL80211_ATTR_MAX                                        = 0x15c
 	NL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4
 	NL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce
 	NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS                     = 0x143
@@ -5082,12 +5095,12 @@
 	NL80211_ATTR_WOWLAN_TRIGGERS                            = 0x75
 	NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED                  = 0x76
 	NL80211_ATTR_WPA_VERSIONS                               = 0x4b
-	NL80211_AUTHTYPE_AUTOMATIC                              = 0x8
+	NL80211_AUTHTYPE_AUTOMATIC                              = 0x9
 	NL80211_AUTHTYPE_FILS_PK                                = 0x7
 	NL80211_AUTHTYPE_FILS_SK                                = 0x5
 	NL80211_AUTHTYPE_FILS_SK_PFS                            = 0x6
 	NL80211_AUTHTYPE_FT                                     = 0x2
-	NL80211_AUTHTYPE_MAX                                    = 0x7
+	NL80211_AUTHTYPE_MAX                                    = 0x8
 	NL80211_AUTHTYPE_NETWORK_EAP                            = 0x3
 	NL80211_AUTHTYPE_OPEN_SYSTEM                            = 0x0
 	NL80211_AUTHTYPE_SAE                                    = 0x4
@@ -5120,7 +5133,7 @@
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY                     = 0x3
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE                     = 0x5
 	NL80211_BAND_IFTYPE_ATTR_IFTYPES                        = 0x1
-	NL80211_BAND_IFTYPE_ATTR_MAX                            = 0xb
+	NL80211_BAND_IFTYPE_ATTR_MAX                            = 0xd
 	NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS                   = 0x7
 	NL80211_BAND_LC                                         = 0x5
 	NL80211_BAND_S1GHZ                                      = 0x4
@@ -5255,7 +5268,7 @@
 	NL80211_CMD_LEAVE_MESH                                  = 0x45
 	NL80211_CMD_LEAVE_OCB                                   = 0x6d
 	NL80211_CMD_LINKS_REMOVED                               = 0x9a
-	NL80211_CMD_MAX                                         = 0x9d
+	NL80211_CMD_MAX                                         = 0x9f
 	NL80211_CMD_MICHAEL_MIC_FAILURE                         = 0x29
 	NL80211_CMD_MODIFY_LINK_STA                             = 0x97
 	NL80211_CMD_NAN_MATCH                                   = 0x78
@@ -5501,7 +5514,7 @@
 	NL80211_FREQUENCY_ATTR_GO_CONCURRENT                    = 0xf
 	NL80211_FREQUENCY_ATTR_INDOOR_ONLY                      = 0xe
 	NL80211_FREQUENCY_ATTR_IR_CONCURRENT                    = 0xf
-	NL80211_FREQUENCY_ATTR_MAX                              = 0x22
+	NL80211_FREQUENCY_ATTR_MAX                              = 0x27
 	NL80211_FREQUENCY_ATTR_MAX_TX_POWER                     = 0x6
 	NL80211_FREQUENCY_ATTR_NO_10MHZ                         = 0x11
 	NL80211_FREQUENCY_ATTR_NO_160MHZ                        = 0xc
@@ -5766,7 +5779,7 @@
 	NL80211_PMSR_FTM_CAPA_ATTR_ASAP                         = 0x1
 	NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS                   = 0x6
 	NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT          = 0x7
-	NL80211_PMSR_FTM_CAPA_ATTR_MAX                          = 0xa
+	NL80211_PMSR_FTM_CAPA_ATTR_MAX                          = 0x12
 	NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST           = 0x8
 	NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP                     = 0x2
 	NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED            = 0xa
@@ -5788,7 +5801,7 @@
 	NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD                  = 0x4
 	NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST                = 0x6
 	NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK                  = 0xc
-	NL80211_PMSR_FTM_REQ_ATTR_MAX                           = 0xd
+	NL80211_PMSR_FTM_REQ_ATTR_MAX                           = 0xe
 	NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED             = 0xb
 	NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP                = 0x3
 	NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES              = 0x7
@@ -5806,7 +5819,7 @@
 	NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON                  = 0x1
 	NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST               = 0x8
 	NL80211_PMSR_FTM_RESP_ATTR_LCI                          = 0x13
-	NL80211_PMSR_FTM_RESP_ATTR_MAX                          = 0x15
+	NL80211_PMSR_FTM_RESP_ATTR_MAX                          = 0x16
 	NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP               = 0x6
 	NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS            = 0x3
 	NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES           = 0x4
@@ -5913,7 +5926,7 @@
 	NL80211_RATE_INFO_HE_RU_ALLOC_52                        = 0x1
 	NL80211_RATE_INFO_HE_RU_ALLOC_996                       = 0x5
 	NL80211_RATE_INFO_HE_RU_ALLOC                           = 0x11
-	NL80211_RATE_INFO_MAX                                   = 0x1d
+	NL80211_RATE_INFO_MAX                                   = 0x20
 	NL80211_RATE_INFO_MCS                                   = 0x2
 	NL80211_RATE_INFO_S1G_MCS                               = 0x17
 	NL80211_RATE_INFO_S1G_NSS                               = 0x18
@@ -6167,7 +6180,7 @@
 	NL80211_TXRATE_HT                                       = 0x2
 	NL80211_TXRATE_LEGACY                                   = 0x1
 	NL80211_TX_RATE_LIMITED                                 = 0x1
-	NL80211_TXRATE_MAX                                      = 0x7
+	NL80211_TXRATE_MAX                                      = 0xa
 	NL80211_TXRATE_MCS                                      = 0x2
 	NL80211_TXRATE_VHT                                      = 0x3
 	NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT                 = 0x1
@@ -6183,7 +6196,7 @@
 	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_ATTR_MAX                            = 0x5
 	NL80211_WIPHY_RADIO_FREQ_ATTR_END                       = 0x2
 	NL80211_WIPHY_RADIO_FREQ_ATTR_MAX                       = 0x2
 	NL80211_WIPHY_RADIO_FREQ_ATTR_START                     = 0x1
@@ -6384,3 +6397,79 @@
 	MPOL_PREFERRED_MANY      = 0x5
 	MPOL_WEIGHTED_INTERLEAVE = 0x6
 )
+
+const (
+	GPIO_V2_GET_LINEINFO_IOCTL       = 0xc100b405
+	GPIO_V2_GET_LINE_IOCTL           = 0xc250b407
+	GPIO_V2_LINE_GET_VALUES_IOCTL    = 0xc010b40e
+	GPIO_V2_LINE_SET_VALUES_IOCTL    = 0xc010b40f
+	GPIO_V2_GET_LINEINFO_WATCH_IOCTL = 0xc100b406
+	GPIO_GET_LINEINFO_UNWATCH_IOCTL  = 0xc004b40c
+)
+const (
+	GPIO_V2_LINE_ATTR_ID_FLAGS         = 0x1
+	GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 0x2
+	GPIO_V2_LINE_ATTR_ID_DEBOUNCE      = 0x3
+	GPIO_V2_LINE_CHANGED_REQUESTED     = 0x1
+	GPIO_V2_LINE_CHANGED_RELEASED      = 0x2
+	GPIO_V2_LINE_CHANGED_CONFIG        = 0x3
+	GPIO_V2_LINE_EVENT_RISING_EDGE     = 0x1
+	GPIO_V2_LINE_EVENT_FALLING_EDGE    = 0x2
+)
+
+type GPIOChipInfo struct {
+	Name  [32]byte
+	Label [32]byte
+	Lines uint32
+}
+type GPIOV2LineValues struct {
+	Bits uint64
+	Mask uint64
+}
+type GPIOV2LineAttribute struct {
+	Id    uint32
+	_     uint32
+	Flags uint64
+}
+type GPIOV2LineConfigAttribute struct {
+	Attr GPIOV2LineAttribute
+	Mask uint64
+}
+type GPIOV2LineConfig struct {
+	Flags     uint64
+	Num_attrs uint32
+	_         [5]uint32
+	Attrs     [10]GPIOV2LineConfigAttribute
+}
+type GPIOV2LineRequest struct {
+	Offsets           [64]uint32
+	Consumer          [32]byte
+	Config            GPIOV2LineConfig
+	Num_lines         uint32
+	Event_buffer_size uint32
+	_                 [5]uint32
+	Fd                int32
+}
+type GPIOV2LineInfo struct {
+	Name      [32]byte
+	Consumer  [32]byte
+	Offset    uint32
+	Num_attrs uint32
+	Flags     uint64
+	Attrs     [10]GPIOV2LineAttribute
+	_         [4]uint32
+}
+type GPIOV2LineInfoChanged struct {
+	Info         GPIOV2LineInfo
+	Timestamp_ns uint64
+	Event_type   uint32
+	_            [5]uint32
+}
+type GPIOV2LineEvent struct {
+	Timestamp_ns uint64
+	Id           uint32
+	Offset       uint32
+	Seqno        uint32
+	Line_seqno   uint32
+	_            [6]uint32
+}
diff --git a/unix/ztypes_linux_386.go b/unix/ztypes_linux_386.go
index 485f2d3..aede1de 100644
--- a/unix/ztypes_linux_386.go
+++ b/unix/ztypes_linux_386.go
@@ -354,6 +354,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint32
@@ -703,3 +711,7 @@
 	_          uint32
 	_          uint32
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff --git a/unix/ztypes_linux_amd64.go b/unix/ztypes_linux_amd64.go
index ecbd1ad..bb3bc4d 100644
--- a/unix/ztypes_linux_amd64.go
+++ b/unix/ztypes_linux_amd64.go
@@ -367,6 +367,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -717,3 +725,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff --git a/unix/ztypes_linux_arm.go b/unix/ztypes_linux_arm.go
index 02f0463..1fdf4c5 100644
--- a/unix/ztypes_linux_arm.go
+++ b/unix/ztypes_linux_arm.go
@@ -345,6 +345,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint32
@@ -697,3 +705,7 @@
 	_          uint32
 	_          uint32
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff --git a/unix/ztypes_linux_arm64.go b/unix/ztypes_linux_arm64.go
index 6f4d400..063e6f0 100644
--- a/unix/ztypes_linux_arm64.go
+++ b/unix/ztypes_linux_arm64.go
@@ -346,6 +346,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -696,3 +704,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff --git a/unix/ztypes_linux_loong64.go b/unix/ztypes_linux_loong64.go
index cd532cf..9cf836c 100644
--- a/unix/ztypes_linux_loong64.go
+++ b/unix/ztypes_linux_loong64.go
@@ -347,6 +347,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -697,3 +705,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff --git a/unix/ztypes_linux_mips.go b/unix/ztypes_linux_mips.go
index 4133620..1d222fc 100644
--- a/unix/ztypes_linux_mips.go
+++ b/unix/ztypes_linux_mips.go
@@ -350,6 +350,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint32
@@ -702,3 +710,7 @@
 	Ctime_high uint16
 	_          uint16
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/unix/ztypes_linux_mips64.go b/unix/ztypes_linux_mips64.go
index eaa37eb..912cc4a 100644
--- a/unix/ztypes_linux_mips64.go
+++ b/unix/ztypes_linux_mips64.go
@@ -349,6 +349,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -699,3 +707,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/unix/ztypes_linux_mips64le.go b/unix/ztypes_linux_mips64le.go
index 98ae6a1..1e358ef 100644
--- a/unix/ztypes_linux_mips64le.go
+++ b/unix/ztypes_linux_mips64le.go
@@ -349,6 +349,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -699,3 +707,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/unix/ztypes_linux_mipsle.go b/unix/ztypes_linux_mipsle.go
index cae1961..df59f32 100644
--- a/unix/ztypes_linux_mipsle.go
+++ b/unix/ztypes_linux_mipsle.go
@@ -350,6 +350,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint32
@@ -702,3 +710,7 @@
 	Ctime_high uint16
 	_          uint16
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/unix/ztypes_linux_ppc.go b/unix/ztypes_linux_ppc.go
index 6ce3b4e..29355aa 100644
--- a/unix/ztypes_linux_ppc.go
+++ b/unix/ztypes_linux_ppc.go
@@ -357,6 +357,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint32
@@ -710,3 +718,7 @@
 	_          uint32
 	_          [4]byte
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/unix/ztypes_linux_ppc64.go b/unix/ztypes_linux_ppc64.go
index c7429c6..c6083a1 100644
--- a/unix/ztypes_linux_ppc64.go
+++ b/unix/ztypes_linux_ppc64.go
@@ -356,6 +356,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -705,3 +713,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/unix/ztypes_linux_ppc64le.go b/unix/ztypes_linux_ppc64le.go
index 4bf4baf..6321cc7 100644
--- a/unix/ztypes_linux_ppc64le.go
+++ b/unix/ztypes_linux_ppc64le.go
@@ -356,6 +356,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -705,3 +713,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/unix/ztypes_linux_riscv64.go b/unix/ztypes_linux_riscv64.go
index e9709d7..b44f402 100644
--- a/unix/ztypes_linux_riscv64.go
+++ b/unix/ztypes_linux_riscv64.go
@@ -374,6 +374,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -784,3 +792,7 @@
 	RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE  = 0x6
 	RISCV_HWPROBE_WHICH_CPUS             = 0x1
 )
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff --git a/unix/ztypes_linux_s390x.go b/unix/ztypes_linux_s390x.go
index fb44268..b22c795 100644
--- a/unix/ztypes_linux_s390x.go
+++ b/unix/ztypes_linux_s390x.go
@@ -369,6 +369,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -719,3 +727,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff --git a/unix/ztypes_linux_sparc64.go b/unix/ztypes_linux_sparc64.go
index 9c38265..0b18075 100644
--- a/unix/ztypes_linux_sparc64.go
+++ b/unix/ztypes_linux_sparc64.go
@@ -351,6 +351,14 @@
 	Wpcopy_delay_min          uint64
 	Irq_delay_max             uint64
 	Irq_delay_min             uint64
+	Cpu_delay_max_ts          KernelTimespec
+	Blkio_delay_max_ts        KernelTimespec
+	Swapin_delay_max_ts       KernelTimespec
+	Freepages_delay_max_ts    KernelTimespec
+	Thrashing_delay_max_ts    KernelTimespec
+	Compact_delay_max_ts      KernelTimespec
+	Wpcopy_delay_max_ts       KernelTimespec
+	Irq_delay_max_ts          KernelTimespec
 }
 
 type cpuMask uint64
@@ -700,3 +708,7 @@
 	_      uint64
 	_      uint64
 }
+
+const (
+	GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff --git a/windows/syscall_windows.go b/windows/syscall_windows.go
index 9cab50a..9755bca 100644
--- a/windows/syscall_windows.go
+++ b/windows/syscall_windows.go
@@ -452,6 +452,7 @@
 //sys	RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString
 //sys	NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile
 //sys	NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile
+//sys	NtQueryInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, outBuffer *byte, outBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtQueryInformationFile
 //sys	NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile
 //sys	RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus
 //sys	RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus
@@ -460,6 +461,8 @@
 //sys	NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess
 //sys	NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation
 //sys	NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation
+//sys	NtQueryEaFile(handle Handle, iosb *IO_STATUS_BLOCK, outBuffer *byte, outBufferLen uint32, returnSingleEntry bool, eaList *byte, eaListLen uint32, eaIndex *uint32, restartScan bool) (ntstatus error) = ntdll.NtQueryEaFile
+//sys	NtSetEaFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32) (ntstatus error) = ntdll.NtSetEaFile
 //sys	RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable
 //sys	RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable
 
@@ -1697,10 +1700,13 @@
 	if err != nil {
 		return nil, err
 	}
-	n := uint16(len(s16) * 2)
+	n := len(s16) * 2
+	if n > (1<<16)-1 {
+		return nil, syscall.EINVAL
+	}
 	return &NTUnicodeString{
-		Length:        n - 2, // subtract 2 bytes for the NULL terminator
-		MaximumLength: n,
+		Length:        uint16(n) - 2, // subtract 2 bytes for the NULL terminator
+		MaximumLength: uint16(n),
 		Buffer:        &s16[0],
 	}, nil
 }
diff --git a/windows/syscall_windows_test.go b/windows/syscall_windows_test.go
index 7611538..f552b94 100644
--- a/windows/syscall_windows_test.go
+++ b/windows/syscall_windows_test.go
@@ -10,6 +10,7 @@
 	"debug/pe"
 	"errors"
 	"fmt"
+	"math"
 	"os"
 	"os/exec"
 	"path/filepath"
@@ -1475,21 +1476,37 @@
 }
 
 func TestRoundtripNTUnicodeString(t *testing.T) {
-	for _, s := range []string{
-		"",
-		"hello",
-		"Ƀ",
-		strings.Repeat("*", 32000), // NTUnicodeString works up to 2^16 byte lengths == 32768 uint16s.
-		// TODO: various encoding errors?
-	} {
-		ntus, err := windows.NewNTUnicodeString(s)
+	// NTUnicodeString maximum string length must fit in a uint16, less for terminal NUL.
+	maxString := strings.Repeat("*", (math.MaxUint16/2)-1)
+	for _, test := range []struct {
+		s       string
+		wantErr bool
+	}{{
+		s: "",
+	}, {
+		s: "hello",
+	}, {
+		s: "Ƀ",
+	}, {
+		s: maxString,
+	}, {
+		s:       maxString + "*",
+		wantErr: true,
+	}, {
+		s:       "a\x00a",
+		wantErr: true,
+	}} {
+		ntus, err := windows.NewNTUnicodeString(test.s)
+		if (err != nil) != test.wantErr {
+			t.Errorf("NewNTUnicodeString(%q): %v, wantErr:%v", test.s, err, test.wantErr)
+			continue
+		}
 		if err != nil {
-			t.Errorf("encoding %q failed: %v", s, err)
 			continue
 		}
 		s2 := ntus.String()
-		if s != s2 {
-			t.Errorf("round trip of %q = %q, wanted original", s, s2)
+		if test.s != s2 {
+			t.Errorf("round trip of %q = %q, wanted original", test.s, s2)
 		}
 	}
 }
diff --git a/windows/types_windows.go b/windows/types_windows.go
index d82299e..d2574a7 100644
--- a/windows/types_windows.go
+++ b/windows/types_windows.go
@@ -3043,8 +3043,10 @@
 )
 
 const (
-	// FileInformationClass for NtSetInformationFile
+	// FileInformationClass for NtSetInformationFile/NtQueryInformationFile, see
+	// https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ne-wdm-_file_information_class
 	FileBasicInformation                         = 4
+	FileEaInformation                            = 7
 	FileRenameInformation                        = 10
 	FileDispositionInformation                   = 13
 	FilePositionInformation                      = 14
diff --git a/windows/xattr_test.go b/windows/xattr_test.go
new file mode 100644
index 0000000..cab9e84
--- /dev/null
+++ b/windows/xattr_test.go
@@ -0,0 +1,301 @@
+// Copyright 2026 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build windows
+
+package windows_test
+
+import (
+	"bytes"
+	"encoding/binary"
+	"fmt"
+	"io"
+	"os"
+	"path/filepath"
+	"strings"
+	"testing"
+	"unsafe"
+
+	"golang.org/x/sys/windows"
+)
+
+func TestFdXattr(t *testing.T) {
+	fp := filepath.Join(t.TempDir(), "test_fd_xattr.txt")
+	wantContent := "I am an xattr testing file. I will get some xattrs attached."
+	wantXa := map[string]string{
+		"xattr-key-1": "Value for xattr-key-1",
+		"xattr-key-2": "Also value, but for xattr-key-2",
+		"xattr-key-3": "xattr-key-3 needs a value too",
+		"xattr-key-4": "xattr-key-4 never wanted any value but got one anyway",
+	}
+
+	xattrSet(t, fp, wantContent, wantXa)
+
+	fr, err := os.Open(fp)
+	if err != nil {
+		t.Fatalf("Open for read error: %v", err)
+	}
+	defer fr.Close()
+
+	haveContent, err := io.ReadAll(fr)
+
+	if err != nil {
+		t.Fatalf("Read error: %v", err)
+	}
+	if string(haveContent) != wantContent {
+		t.Fatalf("File content mismatch: want %q, have %q", wantContent, string(haveContent))
+	}
+
+	haveXa, err := winGetEa(fr)
+	if err != nil {
+		t.Fatalf("Windows get EA error: %v", err)
+	}
+
+	for k, v := range wantXa {
+		if haveXa[k] != v {
+			t.Fatalf("XAttr mismatch for key %q: want %q, have %q", k, v, haveXa[k])
+		}
+	}
+}
+
+func xattrSet(t *testing.T, fp string, content string, xa map[string]string) {
+	fw, err := os.OpenFile(fp, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0o600)
+	if err != nil {
+		t.Fatalf("Open for write error: %v", err)
+	}
+	defer fw.Close()
+
+	_, err = fw.WriteString(content)
+	if err != nil {
+		t.Fatalf("Write error: %v", err)
+	}
+
+	err = winSetEa(fw, xa)
+	if err != nil {
+		if err == windows.STATUS_EAS_NOT_SUPPORTED {
+			t.Skip("filesystem does not support extended attributes, skipping test")
+		}
+		t.Fatalf("Windows set EA error: %v", err)
+	}
+}
+
+// ExtendedAttribute represents a single Windows EA.
+type extendedAttribute struct {
+	Name  string
+	Value []byte
+	Flags uint8
+}
+
+type fileFullEaInformation struct {
+	NextEntryOffset uint32
+	Flags           uint8
+	NameLength      uint8
+	ValueLength     uint16
+}
+
+var fileFullEaInformationSize = binary.Size(&fileFullEaInformation{})
+
+// Windows just cannot keep its hands off letter case
+func keyToAttrName(k string) string {
+	return strings.ToUpper(k)
+}
+
+func attrNameToKey(k string) string {
+	return strings.ToLower(k)
+}
+
+func winSetEa(f *os.File, xattrs map[string]string) error {
+	eas := make([]extendedAttribute, 0, len(xattrs))
+
+	for k, v := range xattrs {
+		eas = append(eas, extendedAttribute{
+			Name:  keyToAttrName(k),
+			Value: []byte(v),
+		})
+	}
+
+	eaBuf, err := encodeExtendedAttributes(eas)
+	if err != nil {
+		return err
+	}
+
+	var iosb windows.IO_STATUS_BLOCK
+	err = windows.NtSetEaFile(
+		windows.Handle(f.Fd()), &iosb, &eaBuf[0], uint32(len(eaBuf)),
+	)
+
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func winGetEa(f *os.File) (map[string]string, error) {
+	sz, err := getEaBlockSize(f)
+	if err != nil || sz == 0 {
+		return nil, err
+	}
+
+	var iosb windows.IO_STATUS_BLOCK
+	eaBuf := make([]byte, int(sz))
+
+	err = windows.NtQueryEaFile(
+		windows.Handle(f.Fd()),
+		&iosb,
+		&eaBuf[0],
+		uint32(len(eaBuf)),
+		false,
+		nil,
+		0,
+		nil,
+		true,
+	)
+
+	if err != nil {
+		return nil, err
+	}
+
+	eas, err := decodeExtendedAttributes(eaBuf)
+	if err != nil || len(eas) == 0 {
+		return nil, err
+	}
+
+	m := make(map[string]string, len(eas))
+	for _, ea := range eas {
+		m[attrNameToKey(ea.Name)] = string(ea.Value)
+	}
+
+	return m, nil
+}
+
+func getEaBlockSize(f *os.File) (uint, error) {
+	var iosb windows.IO_STATUS_BLOCK
+	var rv uint32
+
+	err := windows.NtQueryInformationFile(
+		windows.Handle(f.Fd()),
+		&iosb,
+		(*byte)(unsafe.Pointer(&rv)),
+		uint32(unsafe.Sizeof(rv)),
+		windows.FileEaInformation,
+	)
+
+	if err != nil {
+		return 0, err
+	}
+
+	return uint(rv), nil
+}
+
+func encodeExtendedAttributes(eas []extendedAttribute) ([]byte, error) {
+	var buf bytes.Buffer
+	for i := range eas {
+		last := false
+		if i == len(eas)-1 {
+			last = true
+		}
+
+		err := writeExtendedAttributes(&buf, &eas[i], last)
+		if err != nil {
+			return nil, err
+		}
+	}
+	return buf.Bytes(), nil
+}
+
+func decodeExtendedAttributes(b []byte) (eas []extendedAttribute, err error) {
+	for len(b) != 0 {
+		ea, nb, err := parseExtendedAttributes(b)
+		if err != nil {
+			return nil, err
+		}
+
+		eas = append(eas, ea)
+		b = nb
+	}
+	return
+}
+
+func writeExtendedAttributes(buf *bytes.Buffer, ea *extendedAttribute, last bool) error {
+	if int(uint8(len(ea.Name))) != len(ea.Name) {
+		return fmt.Errorf(
+			"Extended attribute name is too long (limited to 255 bytes): name %q, value %q",
+			ea.Name, string(ea.Value),
+		)
+	}
+
+	if int(uint16(len(ea.Value))) != len(ea.Value) {
+		return fmt.Errorf(
+			"Extended attribute value is too long (limited to 65535 bytes): name %q, value %q",
+			ea.Name, string(ea.Value),
+		)
+	}
+
+	entrySize := uint32(fileFullEaInformationSize + len(ea.Name) + 1 + len(ea.Value))
+	withPadding := (entrySize + 3) &^ 3
+	nextOffset := uint32(0)
+	if !last {
+		nextOffset = withPadding
+	}
+	info := fileFullEaInformation{
+		NextEntryOffset: nextOffset,
+		Flags:           ea.Flags,
+		NameLength:      uint8(len(ea.Name)),
+		ValueLength:     uint16(len(ea.Value)),
+	}
+
+	err := binary.Write(buf, binary.LittleEndian, &info)
+	if err != nil {
+		return err
+	}
+
+	_, err = buf.Write([]byte(ea.Name))
+	if err != nil {
+		return err
+	}
+
+	err = buf.WriteByte(0)
+	if err != nil {
+		return err
+	}
+
+	_, err = buf.Write(ea.Value)
+	if err != nil {
+		return err
+	}
+
+	_, err = buf.Write([]byte{0, 0, 0}[0 : withPadding-entrySize])
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func parseExtendedAttributes(b []byte) (ea extendedAttribute, nb []byte, err error) {
+	var info fileFullEaInformation
+	err = binary.Read(bytes.NewReader(b), binary.LittleEndian, &info)
+	if err != nil {
+		return
+	}
+
+	nameOffset := fileFullEaInformationSize
+	nameLen := int(info.NameLength)
+	valueOffset := nameOffset + int(info.NameLength) + 1
+	valueLen := int(info.ValueLength)
+	nextOffset := int(info.NextEntryOffset)
+	if valueLen+valueOffset > len(b) || nextOffset < 0 || nextOffset > len(b) {
+		err = fmt.Errorf("Invalid extended attribute buffer offset")
+		return
+	}
+
+	ea.Name = string(b[nameOffset : nameOffset+nameLen])
+	ea.Value = b[valueOffset : valueOffset+valueLen]
+	ea.Flags = info.Flags
+	if info.NextEntryOffset != 0 {
+		nb = b[info.NextEntryOffset:]
+	}
+	return
+}
diff --git a/windows/zsyscall_windows.go b/windows/zsyscall_windows.go
index a506ac0..192d193 100644
--- a/windows/zsyscall_windows.go
+++ b/windows/zsyscall_windows.go
@@ -428,8 +428,11 @@
 	procNetUserGetInfo                                       = modnetapi32.NewProc("NetUserGetInfo")
 	procNtCreateFile                                         = modntdll.NewProc("NtCreateFile")
 	procNtCreateNamedPipeFile                                = modntdll.NewProc("NtCreateNamedPipeFile")
+	procNtQueryEaFile                                        = modntdll.NewProc("NtQueryEaFile")
+	procNtQueryInformationFile                               = modntdll.NewProc("NtQueryInformationFile")
 	procNtQueryInformationProcess                            = modntdll.NewProc("NtQueryInformationProcess")
 	procNtQuerySystemInformation                             = modntdll.NewProc("NtQuerySystemInformation")
+	procNtSetEaFile                                          = modntdll.NewProc("NtSetEaFile")
 	procNtSetInformationFile                                 = modntdll.NewProc("NtSetInformationFile")
 	procNtSetInformationProcess                              = modntdll.NewProc("NtSetInformationProcess")
 	procNtSetSystemInformation                               = modntdll.NewProc("NtSetSystemInformation")
@@ -3740,6 +3743,30 @@
 	return
 }
 
+func NtQueryEaFile(handle Handle, iosb *IO_STATUS_BLOCK, outBuffer *byte, outBufferLen uint32, returnSingleEntry bool, eaList *byte, eaListLen uint32, eaIndex *uint32, restartScan bool) (ntstatus error) {
+	var _p0 uint32
+	if returnSingleEntry {
+		_p0 = 1
+	}
+	var _p1 uint32
+	if restartScan {
+		_p1 = 1
+	}
+	r0, _, _ := syscall.SyscallN(procNtQueryEaFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), uintptr(_p0), uintptr(unsafe.Pointer(eaList)), uintptr(eaListLen), uintptr(unsafe.Pointer(eaIndex)), uintptr(_p1))
+	if r0 != 0 {
+		ntstatus = NTStatus(r0)
+	}
+	return
+}
+
+func NtQueryInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, outBuffer *byte, outBufferLen uint32, class uint32) (ntstatus error) {
+	r0, _, _ := syscall.SyscallN(procNtQueryInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), uintptr(class))
+	if r0 != 0 {
+		ntstatus = NTStatus(r0)
+	}
+	return
+}
+
 func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) {
 	r0, _, _ := syscall.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)))
 	if r0 != 0 {
@@ -3756,6 +3783,14 @@
 	return
 }
 
+func NtSetEaFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32) (ntstatus error) {
+	r0, _, _ := syscall.SyscallN(procNtSetEaFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen))
+	if r0 != 0 {
+		ntstatus = NTStatus(r0)
+	}
+	return
+}
+
 func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) {
 	r0, _, _ := syscall.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class))
 	if r0 != 0 {