sys/linux: add simple io_uring descriptions

We don't actually communicate with the uring yet,
but this already finds a bunch of bugs.
diff --git a/executor/defs.h b/executor/defs.h
index 0d70f94..d5f9dac 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -60,7 +60,7 @@
 
 #if GOARCH_386
 #define GOARCH "386"
-#define SYZ_REVISION "9c00be196a8a56fe3ab70b20c2356ad34ba8f285"
+#define SYZ_REVISION "478988634401dfed071ff1c04f8690cd11d379c8"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -70,7 +70,7 @@
 
 #if GOARCH_amd64
 #define GOARCH "amd64"
-#define SYZ_REVISION "47aef599b466ebb4ebb60dcd25fb03a67bcfefd6"
+#define SYZ_REVISION "b93e84217ab80d86fc347a7d69a396b8e7ecb9e9"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -80,7 +80,7 @@
 
 #if GOARCH_arm
 #define GOARCH "arm"
-#define SYZ_REVISION "5592a027d775abc4bea1d90f8868ac1b4943965a"
+#define SYZ_REVISION "bd0de07d98740b4fc358ac0eec3bef00c5256d94"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -90,7 +90,7 @@
 
 #if GOARCH_arm64
 #define GOARCH "arm64"
-#define SYZ_REVISION "6fb195f8cdc0968c58149ec0a2abeb9b278f655f"
+#define SYZ_REVISION "cb34edec02daf2ed60d311633c128986cc38af60"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -100,7 +100,7 @@
 
 #if GOARCH_ppc64le
 #define GOARCH "ppc64le"
-#define SYZ_REVISION "1436442d1a0e05b2db29f38530a6d64c5f8ccd18"
+#define SYZ_REVISION "281782ef296d48ac14bb35d02cd626239f36c265"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
diff --git a/executor/syscalls.h b/executor/syscalls.h
index 714868b..27d219f 100644
--- a/executor/syscalls.h
+++ b/executor/syscalls.h
@@ -1944,6 +1944,12 @@
     {"io_pgetevents", 385},
     {"io_setup", 245},
     {"io_submit", 248},
+    {"io_uring_enter", 426},
+    {"io_uring_register$IORING_REGISTER_BUFFERS", 427},
+    {"io_uring_register$IORING_REGISTER_FILES", 427},
+    {"io_uring_register$IORING_UNREGISTER_BUFFERS", 427},
+    {"io_uring_register$IORING_UNREGISTER_FILES", 427},
+    {"io_uring_setup", 425},
     {"ioctl", 54},
     {"ioctl$ASHMEM_GET_NAME", 54},
     {"ioctl$ASHMEM_GET_PIN_STATUS", 54},
@@ -3006,6 +3012,9 @@
     {"mlock2", 376},
     {"mlockall", 152},
     {"mmap", 192},
+    {"mmap$IORING_OFF_CQ_RING", 192},
+    {"mmap$IORING_OFF_SQES", 192},
+    {"mmap$IORING_OFF_SQ_RING", 192},
     {"mmap$binder", 192},
     {"mmap$perf", 192},
     {"mmap$xdp", 192},
@@ -4586,6 +4595,12 @@
     {"io_pgetevents", 333},
     {"io_setup", 206},
     {"io_submit", 209},
+    {"io_uring_enter", 426},
+    {"io_uring_register$IORING_REGISTER_BUFFERS", 427},
+    {"io_uring_register$IORING_REGISTER_FILES", 427},
+    {"io_uring_register$IORING_UNREGISTER_BUFFERS", 427},
+    {"io_uring_register$IORING_UNREGISTER_FILES", 427},
+    {"io_uring_setup", 425},
     {"ioctl", 16},
     {"ioctl$ASHMEM_GET_NAME", 16},
     {"ioctl$ASHMEM_GET_PIN_STATUS", 16},
@@ -5652,6 +5667,9 @@
     {"mlock2", 325},
     {"mlockall", 151},
     {"mmap", 9},
+    {"mmap$IORING_OFF_CQ_RING", 9},
+    {"mmap$IORING_OFF_SQES", 9},
+    {"mmap$IORING_OFF_SQ_RING", 9},
     {"mmap$binder", 9},
     {"mmap$perf", 9},
     {"mmap$xdp", 9},
@@ -8257,6 +8275,9 @@
     {"mlock2", 390},
     {"mlockall", 152},
     {"mmap", 192},
+    {"mmap$IORING_OFF_CQ_RING", 192},
+    {"mmap$IORING_OFF_SQES", 192},
+    {"mmap$IORING_OFF_SQ_RING", 192},
     {"mmap$binder", 192},
     {"mmap$perf", 192},
     {"mmap$xdp", 192},
@@ -9809,6 +9830,12 @@
     {"io_pgetevents", 292},
     {"io_setup", 0},
     {"io_submit", 2},
+    {"io_uring_enter", 426},
+    {"io_uring_register$IORING_REGISTER_BUFFERS", 427},
+    {"io_uring_register$IORING_REGISTER_FILES", 427},
+    {"io_uring_register$IORING_UNREGISTER_BUFFERS", 427},
+    {"io_uring_register$IORING_UNREGISTER_FILES", 427},
+    {"io_uring_setup", 425},
     {"ioctl", 29},
     {"ioctl$ASHMEM_GET_NAME", 29},
     {"ioctl$ASHMEM_GET_PIN_STATUS", 29},
@@ -10844,6 +10871,9 @@
     {"mlock2", 284},
     {"mlockall", 230},
     {"mmap", 222},
+    {"mmap$IORING_OFF_CQ_RING", 222},
+    {"mmap$IORING_OFF_SQES", 222},
+    {"mmap$IORING_OFF_SQ_RING", 222},
     {"mmap$binder", 222},
     {"mmap$perf", 222},
     {"mmap$xdp", 222},
@@ -13414,6 +13444,9 @@
     {"mlock2", 378},
     {"mlockall", 152},
     {"mmap", 90},
+    {"mmap$IORING_OFF_CQ_RING", 90},
+    {"mmap$IORING_OFF_SQES", 90},
+    {"mmap$IORING_OFF_SQ_RING", 90},
     {"mmap$binder", 90},
     {"mmap$perf", 90},
     {"mmap$xdp", 90},
diff --git a/prog/decl_test.go b/prog/decl_test.go
index 29cacdd..8a33db3 100644
--- a/prog/decl_test.go
+++ b/prog/decl_test.go
@@ -14,7 +14,13 @@
 	}
 	testEachTarget(t, func(t *testing.T, target *Target) {
 		for _, res := range target.Resources {
-			if len(target.calcResourceCtors(res.Kind, true)) == 0 {
+			// Remove this once io_uring_setup has syscall number of these archs.
+			expectFail := false
+			if res.Kind[len(res.Kind)-1] == "fd_io_uring" && target.OS == "linux" &&
+				(target.Arch == "arm" || target.Arch == "ppc64le") {
+				expectFail = true
+			}
+			if len(target.calcResourceCtors(res.Kind, true)) == 0 != expectFail {
 				t.Errorf("resource %v can't be created", res.Name)
 			}
 		}
@@ -45,11 +51,19 @@
 				}
 			}
 		} else {
-			if len(enabled) != len(target.Syscalls) {
+			expectDisabled := 0
+			if target.OS == "linux" && (target.Arch == "arm" || target.Arch == "ppc64le") {
+				// mmap$IORING* are disabled because io_uring_setup is not implemented.
+				// Remove this once io_uring_setup has syscall number of these archs.
+				expectDisabled = 3
+			}
+			if len(enabled) != len(target.Syscalls)-expectDisabled {
 				t.Errorf("some calls are disabled: %v/%v", len(enabled), len(target.Syscalls))
 			}
-			for c, reason := range disabled {
-				t.Errorf("disabled %v: %v", c.Name, reason)
+			if len(disabled) != expectDisabled {
+				for c, reason := range disabled {
+					t.Errorf("disabled %v: %v", c.Name, reason)
+				}
 			}
 		}
 	})
diff --git a/sys/linux/bpf_386.const b/sys/linux/bpf_386.const
index 25db2d4..384a96a 100644
--- a/sys/linux/bpf_386.const
+++ b/sys/linux/bpf_386.const
@@ -155,7 +155,7 @@
 BTF_MAGIC = 60319
 BTF_VERSION = 1
 MAX_BPF_REG = 11
-__BPF_FUNC_MAX_ID = 98
+__BPF_FUNC_MAX_ID = 99
 __MAX_BPF_REG = 11
 __NR_bpf = 357
 bpf_call_code = 133
diff --git a/sys/linux/bpf_amd64.const b/sys/linux/bpf_amd64.const
index 3b4d071..4a1ae7a 100644
--- a/sys/linux/bpf_amd64.const
+++ b/sys/linux/bpf_amd64.const
@@ -155,7 +155,7 @@
 BTF_MAGIC = 60319
 BTF_VERSION = 1
 MAX_BPF_REG = 11
-__BPF_FUNC_MAX_ID = 98
+__BPF_FUNC_MAX_ID = 99
 __MAX_BPF_REG = 11
 __NR_bpf = 321
 bpf_call_code = 133
diff --git a/sys/linux/bpf_arm.const b/sys/linux/bpf_arm.const
index bae4e7c..69f8b31 100644
--- a/sys/linux/bpf_arm.const
+++ b/sys/linux/bpf_arm.const
@@ -155,7 +155,7 @@
 BTF_MAGIC = 60319
 BTF_VERSION = 1
 MAX_BPF_REG = 11
-__BPF_FUNC_MAX_ID = 98
+__BPF_FUNC_MAX_ID = 99
 __MAX_BPF_REG = 11
 __NR_bpf = 386
 bpf_call_code = 133
diff --git a/sys/linux/bpf_arm64.const b/sys/linux/bpf_arm64.const
index 25cdbcb..15ea1bf 100644
--- a/sys/linux/bpf_arm64.const
+++ b/sys/linux/bpf_arm64.const
@@ -155,7 +155,7 @@
 BTF_MAGIC = 60319
 BTF_VERSION = 1
 MAX_BPF_REG = 11
-__BPF_FUNC_MAX_ID = 98
+__BPF_FUNC_MAX_ID = 99
 __MAX_BPF_REG = 11
 __NR_bpf = 280
 bpf_call_code = 133
diff --git a/sys/linux/bpf_ppc64le.const b/sys/linux/bpf_ppc64le.const
index 8db9860..0d6c78b 100644
--- a/sys/linux/bpf_ppc64le.const
+++ b/sys/linux/bpf_ppc64le.const
@@ -155,7 +155,7 @@
 BTF_MAGIC = 60319
 BTF_VERSION = 1
 MAX_BPF_REG = 11
-__BPF_FUNC_MAX_ID = 98
+__BPF_FUNC_MAX_ID = 99
 __MAX_BPF_REG = 11
 __NR_bpf = 361
 bpf_call_code = 133
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index 6da51b7..77733f3 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -51,6 +51,7 @@
 	{Name: "fd_fuse", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_fuse"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_i2c", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_i2c"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_inotify", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_inotify"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+	{Name: "fd_io_uring", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_io_uring"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_ion", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_ion"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvm"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvmcpu", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvmcpu"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -1089,7 +1090,7 @@
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}},
-		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 98},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 99},
 	}}},
 	{Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149},
@@ -7406,6 +7407,27 @@
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "res", TypeSize: 8, ArgDir: 1}}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "res2", TypeSize: 8, ArgDir: 1}}},
 	}}},
+	{Key: StructKey{Name: "io_sqring_offsets"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "io_sqring_offsets", TypeSize: 40}, Fields: []Type{
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "head", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "tail", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ring_mask", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ring_entries", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dropped", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "array", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "resv1", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "resv2", TypeSize: 8}}},
+	}}},
+	{Key: StructKey{Name: "io_uring_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "io_uring_params", TypeSize: 120}, Fields: []Type{
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sq_entries", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cq_entries", TypeSize: 4}}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "io_uring_setup_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 4}, BitMask: true},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sq_thread_cpu", TypeSize: 4}}, Kind: 2, RangeEnd: 3},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sq_thread_idle", TypeSize: 4}}, Kind: 2, RangeEnd: 1000},
+		&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "resv", TypeSize: 20}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 5, RangeEnd: 5},
+		&StructType{Key: StructKey{Name: "io_sqring_offsets"}, FldName: "sq_off"},
+		&StructType{Key: StructKey{Name: "io_sqring_offsets"}, FldName: "cq_off"},
+	}}},
 	{Key: StructKey{Name: "iocb"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "iocb", TypeSize: 64}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "aio_data", TypeSize: 8}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "aio_key", TypeSize: 4}}},
@@ -24541,7 +24563,7 @@
 	{Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Buf: "parent"},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
-		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 18, 19, 20, 21, 26, 27, 28}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
 		&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
 	}}},
 	{Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
@@ -30909,6 +30931,42 @@
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr", TypeSize: 4}}, Buf: "iocbpp"},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "iocbpp", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "iocb"}}}}},
 	}},
+	{NR: 426, Name: "io_uring_enter", CallName: "io_uring_enter", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "to_submit", TypeSize: 4}}},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "min_complete", TypeSize: 4}}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "io_uring_enter_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2}, BitMask: true},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "sigmask", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "sigset"}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 4}}, Buf: "sigmask"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_REGISTER_BUFFERS", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 4}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "iovec[out, array[int8]]"}}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr_args", TypeSize: 4}}, Buf: "arg"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_REGISTER_FILES", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 4}}, Val: 2},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", TypeSize: 4}}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr_args", TypeSize: 4}}, Buf: "arg"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_UNREGISTER_BUFFERS", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 4}}, Val: 1},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "nr_args", TypeSize: 4}}},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_UNREGISTER_FILES", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 4}}, Val: 3},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "nr_args", TypeSize: 4}}},
+	}},
+	{NR: 425, Name: "io_uring_setup", CallName: "io_uring_setup", Args: []Type{
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "entries", TypeSize: 4}}, Kind: 2, RangeBegin: 1, RangeEnd: 4096},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "io_uring_params"}}},
+	}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
 	{NR: 54, Name: "ioctl", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "cmd", TypeSize: 4}}},
@@ -36183,6 +36241,30 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 4}}, Kind: 1},
 	}},
+	{NR: 192, Name: "mmap$IORING_OFF_CQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 4}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 64, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 4}}, Val: 134217728},
+	}},
+	{NR: 192, Name: "mmap$IORING_OFF_SQES", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 4}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 64, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 4}}, Val: 268435456},
+	}},
+	{NR: 192, Name: "mmap$IORING_OFF_SQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 4}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 64, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 4}}},
+	}},
 	{NR: 192, Name: "mmap$binder", CallName: "mmap", Args: []Type{
 		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
@@ -44596,6 +44678,18 @@
 	{Name: "IOPRIO_WHO_PGRP", Value: 2},
 	{Name: "IOPRIO_WHO_PROCESS", Value: 1},
 	{Name: "IOPRIO_WHO_USER", Value: 3},
+	{Name: "IORING_ENTER_GETEVENTS", Value: 1},
+	{Name: "IORING_ENTER_SQ_WAKEUP", Value: 2},
+	{Name: "IORING_OFF_CQ_RING", Value: 134217728},
+	{Name: "IORING_OFF_SQES", Value: 268435456},
+	{Name: "IORING_OFF_SQ_RING"},
+	{Name: "IORING_REGISTER_BUFFERS"},
+	{Name: "IORING_REGISTER_FILES", Value: 2},
+	{Name: "IORING_SETUP_IOPOLL", Value: 1},
+	{Name: "IORING_SETUP_SQPOLL", Value: 2},
+	{Name: "IORING_SETUP_SQ_AFF", Value: 4},
+	{Name: "IORING_UNREGISTER_BUFFERS", Value: 1},
+	{Name: "IORING_UNREGISTER_FILES", Value: 3},
 	{Name: "IP6T_AH_INV_LEN", Value: 2},
 	{Name: "IP6T_AH_INV_SPI", Value: 1},
 	{Name: "IP6T_FRAG_FST", Value: 8},
@@ -48298,23 +48392,7 @@
 	{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
 	{Name: "USB_CDC_OBEX_TYPE", Value: 21},
 	{Name: "USB_CDC_UNION_TYPE", Value: 6},
-	{Name: "USB_CLASS_APP_SPEC", Value: 254},
-	{Name: "USB_CLASS_AUDIO", Value: 1},
-	{Name: "USB_CLASS_CDC_DATA", Value: 10},
-	{Name: "USB_CLASS_COMM", Value: 2},
-	{Name: "USB_CLASS_CONTENT_SEC", Value: 13},
-	{Name: "USB_CLASS_CSCID", Value: 11},
-	{Name: "USB_CLASS_HID", Value: 3},
-	{Name: "USB_CLASS_HUB", Value: 9},
-	{Name: "USB_CLASS_MASS_STORAGE", Value: 8},
-	{Name: "USB_CLASS_MISC", Value: 239},
-	{Name: "USB_CLASS_PER_INTERFACE"},
-	{Name: "USB_CLASS_PHYSICAL", Value: 5},
-	{Name: "USB_CLASS_PRINTER", Value: 7},
-	{Name: "USB_CLASS_STILL_IMAGE", Value: 6},
-	{Name: "USB_CLASS_VENDOR_SPEC", Value: 255},
-	{Name: "USB_CLASS_VIDEO", Value: 14},
-	{Name: "USB_CLASS_WIRELESS_CONTROLLER", Value: 224},
+	{Name: "USB_CDC_WHCM_TYPE", Value: 17},
 	{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
 	{Name: "USB_CONFIG_ATT_ONE", Value: 128},
 	{Name: "USB_CONFIG_ATT_SELFPOWER", Value: 64},
@@ -49866,7 +49944,7 @@
 	{Name: "_LINUX_CAPABILITY_VERSION_1", Value: 429392688},
 	{Name: "_LINUX_CAPABILITY_VERSION_2", Value: 537333798},
 	{Name: "_LINUX_CAPABILITY_VERSION_3", Value: 537396514},
-	{Name: "__BPF_FUNC_MAX_ID", Value: 98},
+	{Name: "__BPF_FUNC_MAX_ID", Value: 99},
 	{Name: "__MAX_BPF_REG", Value: 11},
 	{Name: "__NR_accept4", Value: 364},
 	{Name: "__NR_acct", Value: 51},
@@ -49966,6 +50044,9 @@
 	{Name: "__NR_io_pgetevents", Value: 385},
 	{Name: "__NR_io_setup", Value: 245},
 	{Name: "__NR_io_submit", Value: 248},
+	{Name: "__NR_io_uring_enter", Value: 426},
+	{Name: "__NR_io_uring_register", Value: 427},
+	{Name: "__NR_io_uring_setup", Value: 425},
 	{Name: "__NR_ioctl", Value: 54},
 	{Name: "__NR_ioperm", Value: 101},
 	{Name: "__NR_iopl", Value: 110},
@@ -50172,4 +50253,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_386 = "9c00be196a8a56fe3ab70b20c2356ad34ba8f285"
+const revision_386 = "478988634401dfed071ff1c04f8690cd11d379c8"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index 1c3469d..f3938fc 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -51,6 +51,7 @@
 	{Name: "fd_fuse", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_fuse"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_i2c", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_i2c"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_inotify", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_inotify"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+	{Name: "fd_io_uring", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_io_uring"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_ion", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_ion"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvm"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvmcpu", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvmcpu"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -1092,7 +1093,7 @@
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}},
-		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 98},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 99},
 	}}},
 	{Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149},
@@ -7504,6 +7505,27 @@
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "res", TypeSize: 8, ArgDir: 1}}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "res2", TypeSize: 8, ArgDir: 1}}},
 	}}},
+	{Key: StructKey{Name: "io_sqring_offsets"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "io_sqring_offsets", TypeSize: 40}, Fields: []Type{
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "head", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "tail", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ring_mask", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ring_entries", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dropped", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "array", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "resv1", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "resv2", TypeSize: 8}}},
+	}}},
+	{Key: StructKey{Name: "io_uring_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "io_uring_params", TypeSize: 120}, Fields: []Type{
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sq_entries", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cq_entries", TypeSize: 4}}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "io_uring_setup_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 4}, BitMask: true},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sq_thread_cpu", TypeSize: 4}}, Kind: 2, RangeEnd: 3},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sq_thread_idle", TypeSize: 4}}, Kind: 2, RangeEnd: 1000},
+		&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "resv", TypeSize: 20}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 5, RangeEnd: 5},
+		&StructType{Key: StructKey{Name: "io_sqring_offsets"}, FldName: "sq_off"},
+		&StructType{Key: StructKey{Name: "io_sqring_offsets"}, FldName: "cq_off"},
+	}}},
 	{Key: StructKey{Name: "iocb"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "iocb", TypeSize: 64}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "aio_data", TypeSize: 8}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "aio_key", TypeSize: 4}}},
@@ -24892,7 +24914,7 @@
 	{Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Buf: "parent"},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
-		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 18, 19, 20, 21, 26, 27, 28}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
 		&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
 	}}},
 	{Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
@@ -31386,6 +31408,42 @@
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr", TypeSize: 8}}, Buf: "iocbpp"},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "iocbpp", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "iocb"}}}}},
 	}},
+	{NR: 426, Name: "io_uring_enter", CallName: "io_uring_enter", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "to_submit", TypeSize: 4}}},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "min_complete", TypeSize: 4}}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "io_uring_enter_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2}, BitMask: true},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "sigmask", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sigset"}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "sigmask"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_REGISTER_BUFFERS", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "iovec[out, array[int8]]"}}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr_args", TypeSize: 8}}, Buf: "arg"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_REGISTER_FILES", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}, Val: 2},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", TypeSize: 4}}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr_args", TypeSize: 8}}, Buf: "arg"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_UNREGISTER_BUFFERS", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}, Val: 1},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg", TypeSize: 8}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "nr_args", TypeSize: 8}}},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_UNREGISTER_FILES", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}, Val: 3},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg", TypeSize: 8}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "nr_args", TypeSize: 8}}},
+	}},
+	{NR: 425, Name: "io_uring_setup", CallName: "io_uring_setup", Args: []Type{
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "entries", TypeSize: 4}}, Kind: 2, RangeBegin: 1, RangeEnd: 4096},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "io_uring_params"}}},
+	}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
 	{NR: 16, Name: "ioctl", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "cmd", TypeSize: 8}}},
@@ -36680,6 +36738,30 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 8}}, Kind: 1},
 	}},
+	{NR: 9, Name: "mmap$IORING_OFF_CQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 64, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}, Val: 134217728},
+	}},
+	{NR: 9, Name: "mmap$IORING_OFF_SQES", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 64, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}, Val: 268435456},
+	}},
+	{NR: 9, Name: "mmap$IORING_OFF_SQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 64, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}},
+	}},
 	{NR: 9, Name: "mmap$binder", CallName: "mmap", Args: []Type{
 		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
@@ -45098,6 +45180,18 @@
 	{Name: "IOPRIO_WHO_PGRP", Value: 2},
 	{Name: "IOPRIO_WHO_PROCESS", Value: 1},
 	{Name: "IOPRIO_WHO_USER", Value: 3},
+	{Name: "IORING_ENTER_GETEVENTS", Value: 1},
+	{Name: "IORING_ENTER_SQ_WAKEUP", Value: 2},
+	{Name: "IORING_OFF_CQ_RING", Value: 134217728},
+	{Name: "IORING_OFF_SQES", Value: 268435456},
+	{Name: "IORING_OFF_SQ_RING"},
+	{Name: "IORING_REGISTER_BUFFERS"},
+	{Name: "IORING_REGISTER_FILES", Value: 2},
+	{Name: "IORING_SETUP_IOPOLL", Value: 1},
+	{Name: "IORING_SETUP_SQPOLL", Value: 2},
+	{Name: "IORING_SETUP_SQ_AFF", Value: 4},
+	{Name: "IORING_UNREGISTER_BUFFERS", Value: 1},
+	{Name: "IORING_UNREGISTER_FILES", Value: 3},
 	{Name: "IP6T_AH_INV_LEN", Value: 2},
 	{Name: "IP6T_AH_INV_SPI", Value: 1},
 	{Name: "IP6T_FRAG_FST", Value: 8},
@@ -48814,23 +48908,7 @@
 	{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
 	{Name: "USB_CDC_OBEX_TYPE", Value: 21},
 	{Name: "USB_CDC_UNION_TYPE", Value: 6},
-	{Name: "USB_CLASS_APP_SPEC", Value: 254},
-	{Name: "USB_CLASS_AUDIO", Value: 1},
-	{Name: "USB_CLASS_CDC_DATA", Value: 10},
-	{Name: "USB_CLASS_COMM", Value: 2},
-	{Name: "USB_CLASS_CONTENT_SEC", Value: 13},
-	{Name: "USB_CLASS_CSCID", Value: 11},
-	{Name: "USB_CLASS_HID", Value: 3},
-	{Name: "USB_CLASS_HUB", Value: 9},
-	{Name: "USB_CLASS_MASS_STORAGE", Value: 8},
-	{Name: "USB_CLASS_MISC", Value: 239},
-	{Name: "USB_CLASS_PER_INTERFACE"},
-	{Name: "USB_CLASS_PHYSICAL", Value: 5},
-	{Name: "USB_CLASS_PRINTER", Value: 7},
-	{Name: "USB_CLASS_STILL_IMAGE", Value: 6},
-	{Name: "USB_CLASS_VENDOR_SPEC", Value: 255},
-	{Name: "USB_CLASS_VIDEO", Value: 14},
-	{Name: "USB_CLASS_WIRELESS_CONTROLLER", Value: 224},
+	{Name: "USB_CDC_WHCM_TYPE", Value: 17},
 	{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
 	{Name: "USB_CONFIG_ATT_ONE", Value: 128},
 	{Name: "USB_CONFIG_ATT_SELFPOWER", Value: 64},
@@ -50382,7 +50460,7 @@
 	{Name: "_LINUX_CAPABILITY_VERSION_1", Value: 429392688},
 	{Name: "_LINUX_CAPABILITY_VERSION_2", Value: 537333798},
 	{Name: "_LINUX_CAPABILITY_VERSION_3", Value: 537396514},
-	{Name: "__BPF_FUNC_MAX_ID", Value: 98},
+	{Name: "__BPF_FUNC_MAX_ID", Value: 99},
 	{Name: "__MAX_BPF_REG", Value: 11},
 	{Name: "__NR_accept", Value: 43},
 	{Name: "__NR_accept4", Value: 288},
@@ -50483,6 +50561,9 @@
 	{Name: "__NR_io_pgetevents", Value: 333},
 	{Name: "__NR_io_setup", Value: 206},
 	{Name: "__NR_io_submit", Value: 209},
+	{Name: "__NR_io_uring_enter", Value: 426},
+	{Name: "__NR_io_uring_register", Value: 427},
+	{Name: "__NR_io_uring_setup", Value: 425},
 	{Name: "__NR_ioctl", Value: 16},
 	{Name: "__NR_ioperm", Value: 173},
 	{Name: "__NR_iopl", Value: 172},
@@ -50689,4 +50770,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_amd64 = "47aef599b466ebb4ebb60dcd25fb03a67bcfefd6"
+const revision_amd64 = "b93e84217ab80d86fc347a7d69a396b8e7ecb9e9"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index 2e64589..2506e11 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -51,6 +51,7 @@
 	{Name: "fd_fuse", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_fuse"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_i2c", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_i2c"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_inotify", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_inotify"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+	{Name: "fd_io_uring", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_io_uring"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_ion", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_ion"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvm"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvmcpu", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvmcpu"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -1089,7 +1090,7 @@
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}},
-		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 98},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 99},
 	}}},
 	{Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149},
@@ -24363,7 +24364,7 @@
 	{Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Buf: "parent"},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
-		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 18, 19, 20, 21, 26, 27, 28}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
 		&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
 	}}},
 	{Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
@@ -35864,6 +35865,30 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 4}}, Kind: 1},
 	}},
+	{NR: 192, Name: "mmap$IORING_OFF_CQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 4}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 4}}, Val: 134217728},
+	}},
+	{NR: 192, Name: "mmap$IORING_OFF_SQES", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 4}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 4}}, Val: 268435456},
+	}},
+	{NR: 192, Name: "mmap$IORING_OFF_SQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 4}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 4}}},
+	}},
 	{NR: 192, Name: "mmap$binder", CallName: "mmap", Args: []Type{
 		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 4}},
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "addr"},
@@ -44235,6 +44260,18 @@
 	{Name: "IOPRIO_WHO_PGRP", Value: 2},
 	{Name: "IOPRIO_WHO_PROCESS", Value: 1},
 	{Name: "IOPRIO_WHO_USER", Value: 3},
+	{Name: "IORING_ENTER_GETEVENTS", Value: 1},
+	{Name: "IORING_ENTER_SQ_WAKEUP", Value: 2},
+	{Name: "IORING_OFF_CQ_RING", Value: 134217728},
+	{Name: "IORING_OFF_SQES", Value: 268435456},
+	{Name: "IORING_OFF_SQ_RING"},
+	{Name: "IORING_REGISTER_BUFFERS"},
+	{Name: "IORING_REGISTER_FILES", Value: 2},
+	{Name: "IORING_SETUP_IOPOLL", Value: 1},
+	{Name: "IORING_SETUP_SQPOLL", Value: 2},
+	{Name: "IORING_SETUP_SQ_AFF", Value: 4},
+	{Name: "IORING_UNREGISTER_BUFFERS", Value: 1},
+	{Name: "IORING_UNREGISTER_FILES", Value: 3},
 	{Name: "IP6T_AH_INV_LEN", Value: 2},
 	{Name: "IP6T_AH_INV_SPI", Value: 1},
 	{Name: "IP6T_FRAG_FST", Value: 8},
@@ -47885,23 +47922,7 @@
 	{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
 	{Name: "USB_CDC_OBEX_TYPE", Value: 21},
 	{Name: "USB_CDC_UNION_TYPE", Value: 6},
-	{Name: "USB_CLASS_APP_SPEC", Value: 254},
-	{Name: "USB_CLASS_AUDIO", Value: 1},
-	{Name: "USB_CLASS_CDC_DATA", Value: 10},
-	{Name: "USB_CLASS_COMM", Value: 2},
-	{Name: "USB_CLASS_CONTENT_SEC", Value: 13},
-	{Name: "USB_CLASS_CSCID", Value: 11},
-	{Name: "USB_CLASS_HID", Value: 3},
-	{Name: "USB_CLASS_HUB", Value: 9},
-	{Name: "USB_CLASS_MASS_STORAGE", Value: 8},
-	{Name: "USB_CLASS_MISC", Value: 239},
-	{Name: "USB_CLASS_PER_INTERFACE"},
-	{Name: "USB_CLASS_PHYSICAL", Value: 5},
-	{Name: "USB_CLASS_PRINTER", Value: 7},
-	{Name: "USB_CLASS_STILL_IMAGE", Value: 6},
-	{Name: "USB_CLASS_VENDOR_SPEC", Value: 255},
-	{Name: "USB_CLASS_VIDEO", Value: 14},
-	{Name: "USB_CLASS_WIRELESS_CONTROLLER", Value: 224},
+	{Name: "USB_CDC_WHCM_TYPE", Value: 17},
 	{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
 	{Name: "USB_CONFIG_ATT_ONE", Value: 128},
 	{Name: "USB_CONFIG_ATT_SELFPOWER", Value: 64},
@@ -49453,7 +49474,7 @@
 	{Name: "_LINUX_CAPABILITY_VERSION_1", Value: 429392688},
 	{Name: "_LINUX_CAPABILITY_VERSION_2", Value: 537333798},
 	{Name: "_LINUX_CAPABILITY_VERSION_3", Value: 537396514},
-	{Name: "__BPF_FUNC_MAX_ID", Value: 98},
+	{Name: "__BPF_FUNC_MAX_ID", Value: 99},
 	{Name: "__MAX_BPF_REG", Value: 11},
 	{Name: "__NR_accept", Value: 285},
 	{Name: "__NR_accept4", Value: 366},
@@ -49749,4 +49770,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_arm = "5592a027d775abc4bea1d90f8868ac1b4943965a"
+const revision_arm = "bd0de07d98740b4fc358ac0eec3bef00c5256d94"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index 573e7e0..58a932a 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -51,6 +51,7 @@
 	{Name: "fd_fuse", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_fuse"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_i2c", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_i2c"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_inotify", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_inotify"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+	{Name: "fd_io_uring", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_io_uring"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_ion", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_ion"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvm"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvmcpu", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvmcpu"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -1092,7 +1093,7 @@
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}},
-		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 98},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 99},
 	}}},
 	{Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149},
@@ -7504,6 +7505,27 @@
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "res", TypeSize: 8, ArgDir: 1}}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "res2", TypeSize: 8, ArgDir: 1}}},
 	}}},
+	{Key: StructKey{Name: "io_sqring_offsets"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "io_sqring_offsets", TypeSize: 40}, Fields: []Type{
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "head", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "tail", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ring_mask", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ring_entries", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dropped", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "array", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "resv1", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "resv2", TypeSize: 8}}},
+	}}},
+	{Key: StructKey{Name: "io_uring_params"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "io_uring_params", TypeSize: 120}, Fields: []Type{
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "sq_entries", TypeSize: 4}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cq_entries", TypeSize: 4}}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "io_uring_setup_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{1, 2, 4}, BitMask: true},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sq_thread_cpu", TypeSize: 4}}, Kind: 2, RangeEnd: 3},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sq_thread_idle", TypeSize: 4}}, Kind: 2, RangeEnd: 1000},
+		&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "resv", TypeSize: 20}, Type: &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", TypeSize: 4}}}, Kind: 1, RangeBegin: 5, RangeEnd: 5},
+		&StructType{Key: StructKey{Name: "io_sqring_offsets"}, FldName: "sq_off"},
+		&StructType{Key: StructKey{Name: "io_sqring_offsets"}, FldName: "cq_off"},
+	}}},
 	{Key: StructKey{Name: "iocb"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "iocb", TypeSize: 64}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "aio_data", TypeSize: 8}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "aio_key", TypeSize: 4}}},
@@ -24709,7 +24731,7 @@
 	{Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Buf: "parent"},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
-		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 18, 19, 20, 21, 26, 27, 28}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
 		&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
 	}}},
 	{Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
@@ -31098,6 +31120,42 @@
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr", TypeSize: 8}}, Buf: "iocbpp"},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "iocbpp", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "iocb"}}}}},
 	}},
+	{NR: 426, Name: "io_uring_enter", CallName: "io_uring_enter", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "to_submit", TypeSize: 4}}},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "min_complete", TypeSize: 4}}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "io_uring_enter_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2}, BitMask: true},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "sigmask", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "sigset"}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "sigmask"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_REGISTER_BUFFERS", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "iovec[out, array[int8]]"}}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr_args", TypeSize: 8}}, Buf: "arg"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_REGISTER_FILES", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}, Val: 2},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", TypeSize: 4}}}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "nr_args", TypeSize: 8}}, Buf: "arg"},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_UNREGISTER_BUFFERS", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}, Val: 1},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg", TypeSize: 8}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "nr_args", TypeSize: 8}}},
+	}},
+	{NR: 427, Name: "io_uring_register$IORING_UNREGISTER_FILES", CallName: "io_uring_register", Args: []Type{
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "opcode", TypeSize: 8}}, Val: 3},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg", TypeSize: 8}}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "nr_args", TypeSize: 8}}},
+	}},
+	{NR: 425, Name: "io_uring_setup", CallName: "io_uring_setup", Args: []Type{
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "entries", TypeSize: 4}}, Kind: 2, RangeBegin: 1, RangeEnd: 4096},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "params", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "io_uring_params"}}},
+	}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
 	{NR: 29, Name: "ioctl", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "cmd", TypeSize: 8}}},
@@ -36242,6 +36300,30 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 8}}, Kind: 1},
 	}},
+	{NR: 222, Name: "mmap$IORING_OFF_CQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}, Val: 134217728},
+	}},
+	{NR: 222, Name: "mmap$IORING_OFF_SQES", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}, Val: 268435456},
+	}},
+	{NR: 222, Name: "mmap$IORING_OFF_SQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 8192, 65536, 16384, 32768, 131072, 0, 3, 524288, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}},
+	}},
 	{NR: 222, Name: "mmap$binder", CallName: "mmap", Args: []Type{
 		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
@@ -44544,6 +44626,18 @@
 	{Name: "IOPRIO_WHO_PGRP", Value: 2},
 	{Name: "IOPRIO_WHO_PROCESS", Value: 1},
 	{Name: "IOPRIO_WHO_USER", Value: 3},
+	{Name: "IORING_ENTER_GETEVENTS", Value: 1},
+	{Name: "IORING_ENTER_SQ_WAKEUP", Value: 2},
+	{Name: "IORING_OFF_CQ_RING", Value: 134217728},
+	{Name: "IORING_OFF_SQES", Value: 268435456},
+	{Name: "IORING_OFF_SQ_RING"},
+	{Name: "IORING_REGISTER_BUFFERS"},
+	{Name: "IORING_REGISTER_FILES", Value: 2},
+	{Name: "IORING_SETUP_IOPOLL", Value: 1},
+	{Name: "IORING_SETUP_SQPOLL", Value: 2},
+	{Name: "IORING_SETUP_SQ_AFF", Value: 4},
+	{Name: "IORING_UNREGISTER_BUFFERS", Value: 1},
+	{Name: "IORING_UNREGISTER_FILES", Value: 3},
 	{Name: "IP6T_AH_INV_LEN", Value: 2},
 	{Name: "IP6T_AH_INV_SPI", Value: 1},
 	{Name: "IP6T_FRAG_FST", Value: 8},
@@ -48205,23 +48299,7 @@
 	{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
 	{Name: "USB_CDC_OBEX_TYPE", Value: 21},
 	{Name: "USB_CDC_UNION_TYPE", Value: 6},
-	{Name: "USB_CLASS_APP_SPEC", Value: 254},
-	{Name: "USB_CLASS_AUDIO", Value: 1},
-	{Name: "USB_CLASS_CDC_DATA", Value: 10},
-	{Name: "USB_CLASS_COMM", Value: 2},
-	{Name: "USB_CLASS_CONTENT_SEC", Value: 13},
-	{Name: "USB_CLASS_CSCID", Value: 11},
-	{Name: "USB_CLASS_HID", Value: 3},
-	{Name: "USB_CLASS_HUB", Value: 9},
-	{Name: "USB_CLASS_MASS_STORAGE", Value: 8},
-	{Name: "USB_CLASS_MISC", Value: 239},
-	{Name: "USB_CLASS_PER_INTERFACE"},
-	{Name: "USB_CLASS_PHYSICAL", Value: 5},
-	{Name: "USB_CLASS_PRINTER", Value: 7},
-	{Name: "USB_CLASS_STILL_IMAGE", Value: 6},
-	{Name: "USB_CLASS_VENDOR_SPEC", Value: 255},
-	{Name: "USB_CLASS_VIDEO", Value: 14},
-	{Name: "USB_CLASS_WIRELESS_CONTROLLER", Value: 224},
+	{Name: "USB_CDC_WHCM_TYPE", Value: 17},
 	{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
 	{Name: "USB_CONFIG_ATT_ONE", Value: 128},
 	{Name: "USB_CONFIG_ATT_SELFPOWER", Value: 64},
@@ -49773,7 +49851,7 @@
 	{Name: "_LINUX_CAPABILITY_VERSION_1", Value: 429392688},
 	{Name: "_LINUX_CAPABILITY_VERSION_2", Value: 537333798},
 	{Name: "_LINUX_CAPABILITY_VERSION_3", Value: 537396514},
-	{Name: "__BPF_FUNC_MAX_ID", Value: 98},
+	{Name: "__BPF_FUNC_MAX_ID", Value: 99},
 	{Name: "__MAX_BPF_REG", Value: 11},
 	{Name: "__NR_accept", Value: 202},
 	{Name: "__NR_accept4", Value: 242},
@@ -49860,6 +49938,9 @@
 	{Name: "__NR_io_pgetevents", Value: 292},
 	{Name: "__NR_io_setup"},
 	{Name: "__NR_io_submit", Value: 2},
+	{Name: "__NR_io_uring_enter", Value: 426},
+	{Name: "__NR_io_uring_register", Value: 427},
+	{Name: "__NR_io_uring_setup", Value: 425},
 	{Name: "__NR_ioctl", Value: 29},
 	{Name: "__NR_ioprio_get", Value: 31},
 	{Name: "__NR_ioprio_set", Value: 30},
@@ -50039,4 +50120,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_arm64 = "6fb195f8cdc0968c58149ec0a2abeb9b278f655f"
+const revision_arm64 = "cb34edec02daf2ed60d311633c128986cc38af60"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index fa24890..34bc0d7 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -51,6 +51,7 @@
 	{Name: "fd_fuse", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_fuse"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_i2c", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_i2c"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_inotify", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_inotify"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+	{Name: "fd_io_uring", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_io_uring"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_ion", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_ion"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvm"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
 	{Name: "fd_kvmcpu", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kvmcpu"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -1091,7 +1092,7 @@
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 133},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "regs", TypeSize: 1}}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "off", TypeSize: 2}}},
-		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 98},
+		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "func", TypeSize: 4}}, Kind: 2, RangeEnd: 99},
 	}}},
 	{Key: StructKey{Name: "bpf_insn_exit"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "bpf_insn_exit", TypeSize: 8}, Fields: []Type{
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "code", TypeSize: 1}}, Val: 149},
@@ -24585,7 +24586,7 @@
 	{Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Buf: "parent"},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
-		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 18, 19, 20, 21, 26, 27, 28}},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
 		&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
 	}}},
 	{Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
@@ -36117,6 +36118,30 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
 		&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 8}}, Kind: 1},
 	}},
+	{NR: 90, Name: "mmap$IORING_OFF_CQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 128, 65536, 64, 32768, 131072, 0, 3, 0, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}, Val: 134217728},
+	}},
+	{NR: 90, Name: "mmap$IORING_OFF_SQES", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 128, 65536, 64, 32768, 131072, 0, 3, 0, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}, Val: 268435456},
+	}},
+	{NR: 90, Name: "mmap$IORING_OFF_SQ_RING", CallName: "mmap", Args: []Type{
+		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{0, 4, 1, 2, 8, 16777216, 33554432}, BitMask: true},
+		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 0, 32, 2048, 4096, 0, 16, 256, 262144, 128, 65536, 64, 32768, 131072, 0, 3, 0, 1048576}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_io_uring", FldName: "fd", TypeSize: 4}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "offset", TypeSize: 8}}},
+	}},
 	{NR: 90, Name: "mmap$binder", CallName: "mmap", Args: []Type{
 		&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
 		&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
@@ -44511,6 +44536,18 @@
 	{Name: "IOPRIO_WHO_PGRP", Value: 2},
 	{Name: "IOPRIO_WHO_PROCESS", Value: 1},
 	{Name: "IOPRIO_WHO_USER", Value: 3},
+	{Name: "IORING_ENTER_GETEVENTS", Value: 1},
+	{Name: "IORING_ENTER_SQ_WAKEUP", Value: 2},
+	{Name: "IORING_OFF_CQ_RING", Value: 134217728},
+	{Name: "IORING_OFF_SQES", Value: 268435456},
+	{Name: "IORING_OFF_SQ_RING"},
+	{Name: "IORING_REGISTER_BUFFERS"},
+	{Name: "IORING_REGISTER_FILES", Value: 2},
+	{Name: "IORING_SETUP_IOPOLL", Value: 1},
+	{Name: "IORING_SETUP_SQPOLL", Value: 2},
+	{Name: "IORING_SETUP_SQ_AFF", Value: 4},
+	{Name: "IORING_UNREGISTER_BUFFERS", Value: 1},
+	{Name: "IORING_UNREGISTER_FILES", Value: 3},
 	{Name: "IP6T_AH_INV_LEN", Value: 2},
 	{Name: "IP6T_AH_INV_SPI", Value: 1},
 	{Name: "IP6T_FRAG_FST", Value: 8},
@@ -48150,23 +48187,7 @@
 	{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
 	{Name: "USB_CDC_OBEX_TYPE", Value: 21},
 	{Name: "USB_CDC_UNION_TYPE", Value: 6},
-	{Name: "USB_CLASS_APP_SPEC", Value: 254},
-	{Name: "USB_CLASS_AUDIO", Value: 1},
-	{Name: "USB_CLASS_CDC_DATA", Value: 10},
-	{Name: "USB_CLASS_COMM", Value: 2},
-	{Name: "USB_CLASS_CONTENT_SEC", Value: 13},
-	{Name: "USB_CLASS_CSCID", Value: 11},
-	{Name: "USB_CLASS_HID", Value: 3},
-	{Name: "USB_CLASS_HUB", Value: 9},
-	{Name: "USB_CLASS_MASS_STORAGE", Value: 8},
-	{Name: "USB_CLASS_MISC", Value: 239},
-	{Name: "USB_CLASS_PER_INTERFACE"},
-	{Name: "USB_CLASS_PHYSICAL", Value: 5},
-	{Name: "USB_CLASS_PRINTER", Value: 7},
-	{Name: "USB_CLASS_STILL_IMAGE", Value: 6},
-	{Name: "USB_CLASS_VENDOR_SPEC", Value: 255},
-	{Name: "USB_CLASS_VIDEO", Value: 14},
-	{Name: "USB_CLASS_WIRELESS_CONTROLLER", Value: 224},
+	{Name: "USB_CDC_WHCM_TYPE", Value: 17},
 	{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
 	{Name: "USB_CONFIG_ATT_ONE", Value: 128},
 	{Name: "USB_CONFIG_ATT_SELFPOWER", Value: 64},
@@ -49674,7 +49695,7 @@
 	{Name: "_LINUX_CAPABILITY_VERSION_1", Value: 429392688},
 	{Name: "_LINUX_CAPABILITY_VERSION_2", Value: 537333798},
 	{Name: "_LINUX_CAPABILITY_VERSION_3", Value: 537396514},
-	{Name: "__BPF_FUNC_MAX_ID", Value: 98},
+	{Name: "__BPF_FUNC_MAX_ID", Value: 99},
 	{Name: "__MAX_BPF_REG", Value: 11},
 	{Name: "__NR_accept", Value: 330},
 	{Name: "__NR_accept4", Value: 344},
@@ -49976,4 +49997,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_ppc64le = "1436442d1a0e05b2db29f38530a6d64c5f8ccd18"
+const revision_ppc64le = "281782ef296d48ac14bb35d02cd626239f36c265"
diff --git a/sys/linux/io_uring.txt b/sys/linux/io_uring.txt
new file mode 100644
index 0000000..3f15859
--- /dev/null
+++ b/sys/linux/io_uring.txt
@@ -0,0 +1,48 @@
+# Copyright 2019 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+# See http://kernel.dk/io_uring.pdf
+
+# TODO: we don't write anything to the actual uring.
+# NEED: we somehow need to write the mmap-ed range after the mmap. vring needs something similar.
+
+include <uapi/linux/io_uring.h>
+
+resource fd_io_uring[fd]
+
+io_uring_setup(entries int32[1:4096], params ptr[in, io_uring_params]) fd_io_uring
+io_uring_enter(fd fd_io_uring, to_submit int32, min_complete int32, flags flags[io_uring_enter_flags], sigmask ptr[in, sigset], size len[sigmask])
+io_uring_register$IORING_REGISTER_BUFFERS(fd fd_io_uring, opcode const[IORING_REGISTER_BUFFERS], arg ptr[in, array[iovec_out]], nr_args len[arg])
+io_uring_register$IORING_UNREGISTER_BUFFERS(fd fd_io_uring, opcode const[IORING_UNREGISTER_BUFFERS], arg const[0], nr_args const[0])
+io_uring_register$IORING_REGISTER_FILES(fd fd_io_uring, opcode const[IORING_REGISTER_FILES], arg ptr[in, array[fd]], nr_args len[arg])
+io_uring_register$IORING_UNREGISTER_FILES(fd fd_io_uring, opcode const[IORING_UNREGISTER_FILES], arg const[0], nr_args const[0])
+mmap$IORING_OFF_SQ_RING(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd_io_uring, offset const[IORING_OFF_SQ_RING])
+mmap$IORING_OFF_CQ_RING(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd_io_uring, offset const[IORING_OFF_CQ_RING])
+mmap$IORING_OFF_SQES(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd_io_uring, offset const[IORING_OFF_SQES])
+
+io_uring_setup_flags = IORING_SETUP_IOPOLL, IORING_SETUP_SQPOLL, IORING_SETUP_SQ_AFF
+io_uring_enter_flags = IORING_ENTER_GETEVENTS, IORING_ENTER_SQ_WAKEUP
+_ = __NR_mmap2
+
+io_uring_params {
+	sq_entries	const[0, int32]
+	cq_entries	const[0, int32]
+	flags		flags[io_uring_setup_flags, int32]
+	sq_thread_cpu	int32[0:3]
+	sq_thread_idle	int32[0:1000]
+	resv		array[const[0, int32], 5]
+	sq_off		io_sqring_offsets
+	cq_off		io_sqring_offsets
+}
+
+io_sqring_offsets {
+	head		const[0, int32]
+	tail		const[0, int32]
+	ring_mask	const[0, int32]
+	ring_entries	const[0, int32]
+	flags		const[0, int32]
+	dropped		const[0, int32]
+	array		const[0, int32]
+	resv1		const[0, int32]
+	resv2		const[0, int64]
+}
diff --git a/sys/linux/io_uring_386.const b/sys/linux/io_uring_386.const
new file mode 100644
index 0000000..7fe64fa
--- /dev/null
+++ b/sys/linux/io_uring_386.const
@@ -0,0 +1,18 @@
+# AUTOGENERATED FILE
+IORING_ENTER_GETEVENTS = 1
+IORING_ENTER_SQ_WAKEUP = 2
+IORING_OFF_CQ_RING = 134217728
+IORING_OFF_SQES = 268435456
+IORING_OFF_SQ_RING = 0
+IORING_REGISTER_BUFFERS = 0
+IORING_REGISTER_FILES = 2
+IORING_SETUP_IOPOLL = 1
+IORING_SETUP_SQPOLL = 2
+IORING_SETUP_SQ_AFF = 4
+IORING_UNREGISTER_BUFFERS = 1
+IORING_UNREGISTER_FILES = 3
+__NR_io_uring_enter = 426
+__NR_io_uring_register = 427
+__NR_io_uring_setup = 425
+__NR_mmap = 192
+__NR_mmap2 = 192
diff --git a/sys/linux/io_uring_amd64.const b/sys/linux/io_uring_amd64.const
new file mode 100644
index 0000000..bdd50ba
--- /dev/null
+++ b/sys/linux/io_uring_amd64.const
@@ -0,0 +1,18 @@
+# AUTOGENERATED FILE
+IORING_ENTER_GETEVENTS = 1
+IORING_ENTER_SQ_WAKEUP = 2
+IORING_OFF_CQ_RING = 134217728
+IORING_OFF_SQES = 268435456
+IORING_OFF_SQ_RING = 0
+IORING_REGISTER_BUFFERS = 0
+IORING_REGISTER_FILES = 2
+IORING_SETUP_IOPOLL = 1
+IORING_SETUP_SQPOLL = 2
+IORING_SETUP_SQ_AFF = 4
+IORING_UNREGISTER_BUFFERS = 1
+IORING_UNREGISTER_FILES = 3
+__NR_io_uring_enter = 426
+__NR_io_uring_register = 427
+__NR_io_uring_setup = 425
+__NR_mmap = 9
+# __NR_mmap2 is not set
diff --git a/sys/linux/io_uring_arm.const b/sys/linux/io_uring_arm.const
new file mode 100644
index 0000000..d6d1422
--- /dev/null
+++ b/sys/linux/io_uring_arm.const
@@ -0,0 +1,18 @@
+# AUTOGENERATED FILE
+IORING_ENTER_GETEVENTS = 1
+IORING_ENTER_SQ_WAKEUP = 2
+IORING_OFF_CQ_RING = 134217728
+IORING_OFF_SQES = 268435456
+IORING_OFF_SQ_RING = 0
+IORING_REGISTER_BUFFERS = 0
+IORING_REGISTER_FILES = 2
+IORING_SETUP_IOPOLL = 1
+IORING_SETUP_SQPOLL = 2
+IORING_SETUP_SQ_AFF = 4
+IORING_UNREGISTER_BUFFERS = 1
+IORING_UNREGISTER_FILES = 3
+# __NR_io_uring_enter is not set
+# __NR_io_uring_register is not set
+# __NR_io_uring_setup is not set
+__NR_mmap = 192
+__NR_mmap2 = 192
diff --git a/sys/linux/io_uring_arm64.const b/sys/linux/io_uring_arm64.const
new file mode 100644
index 0000000..27c0306
--- /dev/null
+++ b/sys/linux/io_uring_arm64.const
@@ -0,0 +1,18 @@
+# AUTOGENERATED FILE
+IORING_ENTER_GETEVENTS = 1
+IORING_ENTER_SQ_WAKEUP = 2
+IORING_OFF_CQ_RING = 134217728
+IORING_OFF_SQES = 268435456
+IORING_OFF_SQ_RING = 0
+IORING_REGISTER_BUFFERS = 0
+IORING_REGISTER_FILES = 2
+IORING_SETUP_IOPOLL = 1
+IORING_SETUP_SQPOLL = 2
+IORING_SETUP_SQ_AFF = 4
+IORING_UNREGISTER_BUFFERS = 1
+IORING_UNREGISTER_FILES = 3
+__NR_io_uring_enter = 426
+__NR_io_uring_register = 427
+__NR_io_uring_setup = 425
+__NR_mmap = 222
+# __NR_mmap2 is not set
diff --git a/sys/linux/io_uring_ppc64le.const b/sys/linux/io_uring_ppc64le.const
new file mode 100644
index 0000000..bb02605
--- /dev/null
+++ b/sys/linux/io_uring_ppc64le.const
@@ -0,0 +1,18 @@
+# AUTOGENERATED FILE
+IORING_ENTER_GETEVENTS = 1
+IORING_ENTER_SQ_WAKEUP = 2
+IORING_OFF_CQ_RING = 134217728
+IORING_OFF_SQES = 268435456
+IORING_OFF_SQ_RING = 0
+IORING_REGISTER_BUFFERS = 0
+IORING_REGISTER_FILES = 2
+IORING_SETUP_IOPOLL = 1
+IORING_SETUP_SQPOLL = 2
+IORING_SETUP_SQ_AFF = 4
+IORING_UNREGISTER_BUFFERS = 1
+IORING_UNREGISTER_FILES = 3
+# __NR_io_uring_enter is not set
+# __NR_io_uring_register is not set
+# __NR_io_uring_setup is not set
+__NR_mmap = 90
+# __NR_mmap2 is not set
diff --git a/sys/linux/vusb_386.const b/sys/linux/vusb_386.const
index ed12975..0ab135e 100644
--- a/sys/linux/vusb_386.const
+++ b/sys/linux/vusb_386.const
@@ -78,23 +78,7 @@
 USB_CDC_NETWORK_TERMINAL_TYPE = 10
 USB_CDC_OBEX_TYPE = 21
 USB_CDC_UNION_TYPE = 6
-USB_CLASS_APP_SPEC = 254
-USB_CLASS_AUDIO = 1
-USB_CLASS_CDC_DATA = 10
-USB_CLASS_COMM = 2
-USB_CLASS_CONTENT_SEC = 13
-USB_CLASS_CSCID = 11
-USB_CLASS_HID = 3
-USB_CLASS_HUB = 9
-USB_CLASS_MASS_STORAGE = 8
-USB_CLASS_MISC = 239
-USB_CLASS_PER_INTERFACE = 0
-USB_CLASS_PHYSICAL = 5
-USB_CLASS_PRINTER = 7
-USB_CLASS_STILL_IMAGE = 6
-USB_CLASS_VENDOR_SPEC = 255
-USB_CLASS_VIDEO = 14
-USB_CLASS_WIRELESS_CONTROLLER = 224
+USB_CDC_WHCM_TYPE = 17
 USB_CONFIG_ATT_BATTERY = 16
 USB_CONFIG_ATT_ONE = 128
 USB_CONFIG_ATT_SELFPOWER = 64
diff --git a/sys/linux/vusb_amd64.const b/sys/linux/vusb_amd64.const
index ed12975..0ab135e 100644
--- a/sys/linux/vusb_amd64.const
+++ b/sys/linux/vusb_amd64.const
@@ -78,23 +78,7 @@
 USB_CDC_NETWORK_TERMINAL_TYPE = 10
 USB_CDC_OBEX_TYPE = 21
 USB_CDC_UNION_TYPE = 6
-USB_CLASS_APP_SPEC = 254
-USB_CLASS_AUDIO = 1
-USB_CLASS_CDC_DATA = 10
-USB_CLASS_COMM = 2
-USB_CLASS_CONTENT_SEC = 13
-USB_CLASS_CSCID = 11
-USB_CLASS_HID = 3
-USB_CLASS_HUB = 9
-USB_CLASS_MASS_STORAGE = 8
-USB_CLASS_MISC = 239
-USB_CLASS_PER_INTERFACE = 0
-USB_CLASS_PHYSICAL = 5
-USB_CLASS_PRINTER = 7
-USB_CLASS_STILL_IMAGE = 6
-USB_CLASS_VENDOR_SPEC = 255
-USB_CLASS_VIDEO = 14
-USB_CLASS_WIRELESS_CONTROLLER = 224
+USB_CDC_WHCM_TYPE = 17
 USB_CONFIG_ATT_BATTERY = 16
 USB_CONFIG_ATT_ONE = 128
 USB_CONFIG_ATT_SELFPOWER = 64
diff --git a/sys/linux/vusb_arm.const b/sys/linux/vusb_arm.const
index ed12975..0ab135e 100644
--- a/sys/linux/vusb_arm.const
+++ b/sys/linux/vusb_arm.const
@@ -78,23 +78,7 @@
 USB_CDC_NETWORK_TERMINAL_TYPE = 10
 USB_CDC_OBEX_TYPE = 21
 USB_CDC_UNION_TYPE = 6
-USB_CLASS_APP_SPEC = 254
-USB_CLASS_AUDIO = 1
-USB_CLASS_CDC_DATA = 10
-USB_CLASS_COMM = 2
-USB_CLASS_CONTENT_SEC = 13
-USB_CLASS_CSCID = 11
-USB_CLASS_HID = 3
-USB_CLASS_HUB = 9
-USB_CLASS_MASS_STORAGE = 8
-USB_CLASS_MISC = 239
-USB_CLASS_PER_INTERFACE = 0
-USB_CLASS_PHYSICAL = 5
-USB_CLASS_PRINTER = 7
-USB_CLASS_STILL_IMAGE = 6
-USB_CLASS_VENDOR_SPEC = 255
-USB_CLASS_VIDEO = 14
-USB_CLASS_WIRELESS_CONTROLLER = 224
+USB_CDC_WHCM_TYPE = 17
 USB_CONFIG_ATT_BATTERY = 16
 USB_CONFIG_ATT_ONE = 128
 USB_CONFIG_ATT_SELFPOWER = 64
diff --git a/sys/linux/vusb_arm64.const b/sys/linux/vusb_arm64.const
index ed12975..0ab135e 100644
--- a/sys/linux/vusb_arm64.const
+++ b/sys/linux/vusb_arm64.const
@@ -78,23 +78,7 @@
 USB_CDC_NETWORK_TERMINAL_TYPE = 10
 USB_CDC_OBEX_TYPE = 21
 USB_CDC_UNION_TYPE = 6
-USB_CLASS_APP_SPEC = 254
-USB_CLASS_AUDIO = 1
-USB_CLASS_CDC_DATA = 10
-USB_CLASS_COMM = 2
-USB_CLASS_CONTENT_SEC = 13
-USB_CLASS_CSCID = 11
-USB_CLASS_HID = 3
-USB_CLASS_HUB = 9
-USB_CLASS_MASS_STORAGE = 8
-USB_CLASS_MISC = 239
-USB_CLASS_PER_INTERFACE = 0
-USB_CLASS_PHYSICAL = 5
-USB_CLASS_PRINTER = 7
-USB_CLASS_STILL_IMAGE = 6
-USB_CLASS_VENDOR_SPEC = 255
-USB_CLASS_VIDEO = 14
-USB_CLASS_WIRELESS_CONTROLLER = 224
+USB_CDC_WHCM_TYPE = 17
 USB_CONFIG_ATT_BATTERY = 16
 USB_CONFIG_ATT_ONE = 128
 USB_CONFIG_ATT_SELFPOWER = 64
diff --git a/sys/linux/vusb_ppc64le.const b/sys/linux/vusb_ppc64le.const
index ed12975..0ab135e 100644
--- a/sys/linux/vusb_ppc64le.const
+++ b/sys/linux/vusb_ppc64le.const
@@ -78,23 +78,7 @@
 USB_CDC_NETWORK_TERMINAL_TYPE = 10
 USB_CDC_OBEX_TYPE = 21
 USB_CDC_UNION_TYPE = 6
-USB_CLASS_APP_SPEC = 254
-USB_CLASS_AUDIO = 1
-USB_CLASS_CDC_DATA = 10
-USB_CLASS_COMM = 2
-USB_CLASS_CONTENT_SEC = 13
-USB_CLASS_CSCID = 11
-USB_CLASS_HID = 3
-USB_CLASS_HUB = 9
-USB_CLASS_MASS_STORAGE = 8
-USB_CLASS_MISC = 239
-USB_CLASS_PER_INTERFACE = 0
-USB_CLASS_PHYSICAL = 5
-USB_CLASS_PRINTER = 7
-USB_CLASS_STILL_IMAGE = 6
-USB_CLASS_VENDOR_SPEC = 255
-USB_CLASS_VIDEO = 14
-USB_CLASS_WIRELESS_CONTROLLER = 224
+USB_CDC_WHCM_TYPE = 17
 USB_CONFIG_ATT_BATTERY = 16
 USB_CONFIG_ATT_ONE = 128
 USB_CONFIG_ATT_SELFPOWER = 64