Update to v6.2 kernel headers.

Kernel headers coming from:

Git: https://android.googlesource.com/kernel/common/
Branch: android-mainline
Tag: android-mainline-6.2

Test: Bionic unit tests pass.
Change-Id: I9f665add01ebeb155dd8a934308897f90000a557
diff --git a/libc/kernel/android/scsi/scsi/scsi_proto.h b/libc/kernel/android/scsi/scsi/scsi_proto.h
index 13ac4c8..24df458 100644
--- a/libc/kernel/android/scsi/scsi/scsi_proto.h
+++ b/libc/kernel/android/scsi/scsi/scsi_proto.h
@@ -139,6 +139,7 @@
 #define ABORTED_COMMAND 0x0b
 #define VOLUME_OVERFLOW 0x0d
 #define MISCOMPARE 0x0e
+#define COMPLETED 0x0f
 #define TYPE_DISK 0x00
 #define TYPE_TAPE 0x01
 #define TYPE_PRINTER 0x02
@@ -210,4 +211,12 @@
   SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460,
   SCSI_VERSION_DESCRIPTOR_SRP = 0x0940
 };
+enum scsi_support_opcode {
+  SCSI_SUPPORT_NO_INFO = 0,
+  SCSI_SUPPORT_NOT_SUPPORTED = 1,
+  SCSI_SUPPORT_FULL = 3,
+  SCSI_SUPPORT_VENDOR = 5,
+};
+#define SCSI_CONTROL_MASK 0
+#define SCSI_GROUP_NUMBER_MASK 0
 #endif
diff --git a/libc/kernel/android/scsi/scsi/sg.h b/libc/kernel/android/scsi/scsi/sg.h
index a7a1944..6911b16 100644
--- a/libc/kernel/android/scsi/scsi/sg.h
+++ b/libc/kernel/android/scsi/scsi/sg.h
@@ -79,7 +79,7 @@
 #define QUEUE_FULL 0x14
 #define ACA_ACTIVE 0x18
 #define TASK_ABORTED 0x20
-#define status_byte(result) (((result) >> 1) & 0x7f)
+#define sg_status_byte(result) (((result) >> 1) & 0x7f)
 typedef struct sg_scsi_id {
   int host_no;
   int channel;
diff --git a/libc/kernel/uapi/asm-arm/asm/hwcap.h b/libc/kernel/uapi/asm-arm/asm/hwcap.h
index fdc5405..2a3c809 100644
--- a/libc/kernel/uapi/asm-arm/asm/hwcap.h
+++ b/libc/kernel/uapi/asm-arm/asm/hwcap.h
@@ -41,9 +41,17 @@
 #define HWCAP_IDIV (HWCAP_IDIVA | HWCAP_IDIVT)
 #define HWCAP_LPAE (1 << 20)
 #define HWCAP_EVTSTRM (1 << 21)
+#define HWCAP_FPHP (1 << 22)
+#define HWCAP_ASIMDHP (1 << 23)
+#define HWCAP_ASIMDDP (1 << 24)
+#define HWCAP_ASIMDFHM (1 << 25)
+#define HWCAP_ASIMDBF16 (1 << 26)
+#define HWCAP_I8MM (1 << 27)
 #define HWCAP2_AES (1 << 0)
 #define HWCAP2_PMULL (1 << 1)
 #define HWCAP2_SHA1 (1 << 2)
 #define HWCAP2_SHA2 (1 << 3)
 #define HWCAP2_CRC32 (1 << 4)
+#define HWCAP2_SB (1 << 5)
+#define HWCAP2_SSBS (1 << 6)
 #endif
diff --git a/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index af32056..bb592e4 100644
--- a/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -84,4 +84,7 @@
 #define HWCAP2_WFXT (1UL << 31)
 #define HWCAP2_EBF16 (1UL << 32)
 #define HWCAP2_SVE_EBF16 (1UL << 33)
+#define HWCAP2_CSSC (1UL << 34)
+#define HWCAP2_RPRFM (1UL << 35)
+#define HWCAP2_SVE2P1 (1UL << 36)
 #endif
diff --git a/libc/kernel/uapi/asm-arm64/asm/kvm.h b/libc/kernel/uapi/asm-arm64/asm/kvm.h
index 4f9b347..ecc2e01 100644
--- a/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -35,6 +35,7 @@
 #define __KVM_HAVE_READONLY_MEM
 #define __KVM_HAVE_VCPU_EVENTS
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1
+#define KVM_DIRTY_LOG_PAGE_OFFSET 64
 #define KVM_REG_SIZE(id) (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
 struct kvm_regs {
   struct user_pt_regs regs;
diff --git a/libc/kernel/uapi/asm-generic/types.h b/libc/kernel/uapi/asm-generic/types.h
index ea6e7df..bac728e 100644
--- a/libc/kernel/uapi/asm-generic/types.h
+++ b/libc/kernel/uapi/asm-generic/types.h
@@ -16,7 +16,7 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_GENERIC_TYPES_H
-#define _ASM_GENERIC_TYPES_H
+#ifndef _UAPI_ASM_GENERIC_TYPES_H
+#define _UAPI_ASM_GENERIC_TYPES_H
 #include <asm-generic/int-ll64.h>
 #endif
diff --git a/libc/kernel/uapi/asm-riscv/asm/kvm.h b/libc/kernel/uapi/asm-riscv/asm/kvm.h
index 5dc165b..b49e3a0 100644
--- a/libc/kernel/uapi/asm-riscv/asm/kvm.h
+++ b/libc/kernel/uapi/asm-riscv/asm/kvm.h
@@ -40,6 +40,9 @@
 struct kvm_riscv_config {
   unsigned long isa;
   unsigned long zicbom_block_size;
+  unsigned long mvendorid;
+  unsigned long marchid;
+  unsigned long mimpid;
 };
 struct kvm_riscv_core {
   struct user_regs_struct regs;
diff --git a/libc/kernel/uapi/asm-x86/asm/kvm.h b/libc/kernel/uapi/asm-x86/asm/kvm.h
index f07b00e..77d35fc 100644
--- a/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -57,13 +57,6 @@
 #define __KVM_HAVE_XCRS
 #define __KVM_HAVE_READONLY_MEM
 #define KVM_NR_INTERRUPTS 256
-struct kvm_memory_alias {
-  __u32 slot;
-  __u32 flags;
-  __u64 guest_phys_addr;
-  __u64 memory_size;
-  __u64 target_phys_addr;
-};
 struct kvm_pic_state {
   __u8 last_irr;
   __u8 irr;
@@ -188,6 +181,7 @@
 struct kvm_msr_filter_range {
 #define KVM_MSR_FILTER_READ (1 << 0)
 #define KVM_MSR_FILTER_WRITE (1 << 1)
+#define KVM_MSR_FILTER_RANGE_VALID_MASK (KVM_MSR_FILTER_READ | KVM_MSR_FILTER_WRITE)
   __u32 flags;
   __u32 nmsrs;
   __u32 base;
@@ -197,6 +191,7 @@
 struct kvm_msr_filter {
 #define KVM_MSR_FILTER_DEFAULT_ALLOW (0 << 0)
 #define KVM_MSR_FILTER_DEFAULT_DENY (1 << 0)
+#define KVM_MSR_FILTER_VALID_MASK (KVM_MSR_FILTER_DEFAULT_DENY)
   __u32 flags;
   struct kvm_msr_filter_range ranges[KVM_MSR_FILTER_MAX_RANGES];
 };
diff --git a/libc/kernel/uapi/asm-x86/asm/svm.h b/libc/kernel/uapi/asm-x86/asm/svm.h
index 8bda2d5..0d95101 100644
--- a/libc/kernel/uapi/asm-x86/asm/svm.h
+++ b/libc/kernel/uapi/asm-x86/asm/svm.h
@@ -130,6 +130,8 @@
 #define SVM_VMGEXIT_AP_CREATE 1
 #define SVM_VMGEXIT_AP_DESTROY 2
 #define SVM_VMGEXIT_HV_FEATURES 0x8000fffd
+#define SVM_VMGEXIT_TERM_REQUEST 0x8000fffe
+#define SVM_VMGEXIT_TERM_REASON(reason_set,reason_code) (((((u64) reason_set) & 0xf)) | ((((u64) reason_code) & 0xff) << 4))
 #define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff
 #define SVM_EXIT_SW 0xf0000000
 #define SVM_EXIT_ERR - 1
diff --git a/libc/kernel/uapi/drm/amdgpu_drm.h b/libc/kernel/uapi/drm/amdgpu_drm.h
index 658eb31..fcd5ab8 100644
--- a/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -73,6 +73,8 @@
 #define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
 #define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11)
 #define AMDGPU_GEM_CREATE_DISCARDABLE (1 << 12)
+#define AMDGPU_GEM_CREATE_COHERENT (1 << 13)
+#define AMDGPU_GEM_CREATE_UNCACHED (1 << 14)
 struct drm_amdgpu_gem_create_in {
   __u64 bo_size;
   __u64 alignment;
diff --git a/libc/kernel/uapi/drm/drm_fourcc.h b/libc/kernel/uapi/drm/drm_fourcc.h
index 8188b8f..ea9525d 100644
--- a/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/libc/kernel/uapi/drm/drm_fourcc.h
@@ -188,6 +188,14 @@
 #define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED fourcc_mod_code(VIVANTE, 2)
 #define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED fourcc_mod_code(VIVANTE, 3)
 #define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
+#define VIVANTE_MOD_TS_64_4 (1ULL << 48)
+#define VIVANTE_MOD_TS_64_2 (2ULL << 48)
+#define VIVANTE_MOD_TS_128_4 (3ULL << 48)
+#define VIVANTE_MOD_TS_256_4 (4ULL << 48)
+#define VIVANTE_MOD_TS_MASK (0xfULL << 48)
+#define VIVANTE_MOD_COMP_DEC400 (1ULL << 52)
+#define VIVANTE_MOD_COMP_MASK (0xfULL << 52)
+#define VIVANTE_MOD_EXT_MASK (VIVANTE_MOD_TS_MASK | VIVANTE_MOD_COMP_MASK)
 #define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1)
 #define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c,s,g,k,h) fourcc_mod_code(NVIDIA, (0x10 | ((h) & 0xf) | (((k) & 0xff) << 12) | (((g) & 0x3) << 20) | (((s) & 0x1) << 22) | (((c) & 0x7) << 23)))
 #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 0, 0, 0, (v))
diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h
index 198b969..a8982bf 100644
--- a/libc/kernel/uapi/drm/i915_drm.h
+++ b/libc/kernel/uapi/drm/i915_drm.h
@@ -368,6 +368,7 @@
 #define I915_PARAM_PERF_REVISION 54
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
 #define I915_PARAM_HAS_USERPTR_PROBE 56
+#define I915_PARAM_OA_TIMESTAMP_FREQUENCY 57
 struct drm_i915_getparam {
   __s32 param;
   int __user * value;
@@ -846,6 +847,8 @@
   I915_OA_FORMAT_A12,
   I915_OA_FORMAT_A12_B8_C8,
   I915_OA_FORMAT_A32u40_A4u32_B8_C8,
+  I915_OAR_FORMAT_A32u40_A4u32_B8_C8,
+  I915_OA_FORMAT_A24u40_A14u32_B8_C8,
   I915_OA_FORMAT_MAX
 };
 enum drm_i915_perf_property_id {
diff --git a/libc/kernel/uapi/drm/msm_drm.h b/libc/kernel/uapi/drm/msm_drm.h
index c2edefd..ad3a971 100644
--- a/libc/kernel/uapi/drm/msm_drm.h
+++ b/libc/kernel/uapi/drm/msm_drm.h
@@ -74,6 +74,7 @@
 #define MSM_INFO_SET_NAME 0x02
 #define MSM_INFO_GET_NAME 0x03
 #define MSM_INFO_SET_IOVA 0x04
+#define MSM_INFO_GET_FLAGS 0x05
 struct drm_msm_gem_info {
   __u32 handle;
   __u32 info;
diff --git a/libc/kernel/uapi/linux/acrn.h b/libc/kernel/uapi/linux/acrn.h
index c991ac0..aa408d8 100644
--- a/libc/kernel/uapi/linux/acrn.h
+++ b/libc/kernel/uapi/linux/acrn.h
@@ -19,7 +19,6 @@
 #ifndef _UAPI_ACRN_H
 #define _UAPI_ACRN_H
 #include <linux/types.h>
-#include <linux/uuid.h>
 #define ACRN_IO_REQUEST_MAX 16
 #define ACRN_IOREQ_STATE_PENDING 0
 #define ACRN_IOREQ_STATE_COMPLETE 1
@@ -84,7 +83,7 @@
   __u16 reserved0;
   __u16 vcpu_num;
   __u16 reserved1;
-  guid_t uuid;
+  __u8 uuid[16];
   __u64 vm_flag;
   __u64 ioreq_buf;
   __u64 cpu_affinity;
diff --git a/libc/kernel/uapi/linux/aspeed-video.h b/libc/kernel/uapi/linux/aspeed-video.h
new file mode 100644
index 0000000..d5109c1
--- /dev/null
+++ b/libc/kernel/uapi/linux/aspeed-video.h
@@ -0,0 +1,24 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _UAPI_LINUX_ASPEED_VIDEO_H
+#define _UAPI_LINUX_ASPEED_VIDEO_H
+#include <linux/v4l2-controls.h>
+#define V4L2_CID_ASPEED_HQ_MODE (V4L2_CID_USER_ASPEED_BASE + 1)
+#define V4L2_CID_ASPEED_HQ_JPEG_QUALITY (V4L2_CID_USER_ASPEED_BASE + 2)
+#endif
diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h
index 807884a..163dd1e 100644
--- a/libc/kernel/uapi/linux/bpf.h
+++ b/libc/kernel/uapi/linux/bpf.h
@@ -155,7 +155,8 @@
   BPF_MAP_TYPE_CPUMAP,
   BPF_MAP_TYPE_XSKMAP,
   BPF_MAP_TYPE_SOCKHASH,
-  BPF_MAP_TYPE_CGROUP_STORAGE,
+  BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
+  BPF_MAP_TYPE_CGROUP_STORAGE = BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
   BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
   BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
   BPF_MAP_TYPE_QUEUE,
@@ -168,6 +169,7 @@
   BPF_MAP_TYPE_TASK_STORAGE,
   BPF_MAP_TYPE_BLOOM_FILTER,
   BPF_MAP_TYPE_USER_RINGBUF,
+  BPF_MAP_TYPE_CGRP_STORAGE,
 };
 enum bpf_prog_type {
   BPF_PROG_TYPE_UNSPEC,
@@ -518,10 +520,12 @@
     __u32 flags;
   } prog_bind_map;
 } __attribute__((aligned(8)));
-#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu), FN(for_each_map_elem), FN(snprintf), FN(sys_bpf), FN(btf_find_by_name_kind), FN(sys_close), FN(timer_init), FN(timer_set_callback), FN(timer_start), FN(timer_cancel), FN(get_func_ip), FN(get_attach_cookie), FN(task_pt_regs), FN(get_branch_snapshot), FN(trace_vprintk), FN(skc_to_unix_sock), FN(kallsyms_lookup_name), FN(find_vma), FN(loop), FN(strncmp), FN(get_func_arg), FN(get_func_ret), FN(get_func_arg_cnt), FN(get_retval), FN(set_retval), FN(xdp_get_buff_len), FN(xdp_load_bytes), FN(xdp_store_bytes), FN(copy_from_user_task), FN(skb_set_tstamp), FN(ima_file_hash), FN(kptr_xchg), FN(map_lookup_percpu_elem), FN(skc_to_mptcp_sock), FN(dynptr_from_mem), FN(ringbuf_reserve_dynptr), FN(ringbuf_submit_dynptr), FN(ringbuf_discard_dynptr), FN(dynptr_read), FN(dynptr_write), FN(dynptr_data), FN(tcp_raw_gen_syncookie_ipv4), FN(tcp_raw_gen_syncookie_ipv6), FN(tcp_raw_check_syncookie_ipv4), FN(tcp_raw_check_syncookie_ipv6), FN(ktime_get_tai_ns), FN(user_ringbuf_drain),
-#define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
+#define ___BPF_FUNC_MAPPER(FN,ctx...) FN(unspec, 0, ##ctx) FN(map_lookup_elem, 1, ##ctx) FN(map_update_elem, 2, ##ctx) FN(map_delete_elem, 3, ##ctx) FN(probe_read, 4, ##ctx) FN(ktime_get_ns, 5, ##ctx) FN(trace_printk, 6, ##ctx) FN(get_prandom_u32, 7, ##ctx) FN(get_smp_processor_id, 8, ##ctx) FN(skb_store_bytes, 9, ##ctx) FN(l3_csum_replace, 10, ##ctx) FN(l4_csum_replace, 11, ##ctx) FN(tail_call, 12, ##ctx) FN(clone_redirect, 13, ##ctx) FN(get_current_pid_tgid, 14, ##ctx) FN(get_current_uid_gid, 15, ##ctx) FN(get_current_comm, 16, ##ctx) FN(get_cgroup_classid, 17, ##ctx) FN(skb_vlan_push, 18, ##ctx) FN(skb_vlan_pop, 19, ##ctx) FN(skb_get_tunnel_key, 20, ##ctx) FN(skb_set_tunnel_key, 21, ##ctx) FN(perf_event_read, 22, ##ctx) FN(redirect, 23, ##ctx) FN(get_route_realm, 24, ##ctx) FN(perf_event_output, 25, ##ctx) FN(skb_load_bytes, 26, ##ctx) FN(get_stackid, 27, ##ctx) FN(csum_diff, 28, ##ctx) FN(skb_get_tunnel_opt, 29, ##ctx) FN(skb_set_tunnel_opt, 30, ##ctx) FN(skb_change_proto, 31, ##ctx) FN(skb_change_type, 32, ##ctx) FN(skb_under_cgroup, 33, ##ctx) FN(get_hash_recalc, 34, ##ctx) FN(get_current_task, 35, ##ctx) FN(probe_write_user, 36, ##ctx) FN(current_task_under_cgroup, 37, ##ctx) FN(skb_change_tail, 38, ##ctx) FN(skb_pull_data, 39, ##ctx) FN(csum_update, 40, ##ctx) FN(set_hash_invalid, 41, ##ctx) FN(get_numa_node_id, 42, ##ctx) FN(skb_change_head, 43, ##ctx) FN(xdp_adjust_head, 44, ##ctx) FN(probe_read_str, 45, ##ctx) FN(get_socket_cookie, 46, ##ctx) FN(get_socket_uid, 47, ##ctx) FN(set_hash, 48, ##ctx) FN(setsockopt, 49, ##ctx) FN(skb_adjust_room, 50, ##ctx) FN(redirect_map, 51, ##ctx) FN(sk_redirect_map, 52, ##ctx) FN(sock_map_update, 53, ##ctx) FN(xdp_adjust_meta, 54, ##ctx) FN(perf_event_read_value, 55, ##ctx) FN(perf_prog_read_value, 56, ##ctx) FN(getsockopt, 57, ##ctx) FN(override_return, 58, ##ctx) FN(sock_ops_cb_flags_set, 59, ##ctx) FN(msg_redirect_map, 60, ##ctx) FN(msg_apply_bytes, 61, ##ctx) FN(msg_cork_bytes, 62, ##ctx) FN(msg_pull_data, 63, ##ctx) FN(bind, 64, ##ctx) FN(xdp_adjust_tail, 65, ##ctx) FN(skb_get_xfrm_state, 66, ##ctx) FN(get_stack, 67, ##ctx) FN(skb_load_bytes_relative, 68, ##ctx) FN(fib_lookup, 69, ##ctx) FN(sock_hash_update, 70, ##ctx) FN(msg_redirect_hash, 71, ##ctx) FN(sk_redirect_hash, 72, ##ctx) FN(lwt_push_encap, 73, ##ctx) FN(lwt_seg6_store_bytes, 74, ##ctx) FN(lwt_seg6_adjust_srh, 75, ##ctx) FN(lwt_seg6_action, 76, ##ctx) FN(rc_repeat, 77, ##ctx) FN(rc_keydown, 78, ##ctx) FN(skb_cgroup_id, 79, ##ctx) FN(get_current_cgroup_id, 80, ##ctx) FN(get_local_storage, 81, ##ctx) FN(sk_select_reuseport, 82, ##ctx) FN(skb_ancestor_cgroup_id, 83, ##ctx) FN(sk_lookup_tcp, 84, ##ctx) FN(sk_lookup_udp, 85, ##ctx) FN(sk_release, 86, ##ctx) FN(map_push_elem, 87, ##ctx) FN(map_pop_elem, 88, ##ctx) FN(map_peek_elem, 89, ##ctx) FN(msg_push_data, 90, ##ctx) FN(msg_pop_data, 91, ##ctx) FN(rc_pointer_rel, 92, ##ctx) FN(spin_lock, 93, ##ctx) FN(spin_unlock, 94, ##ctx) FN(sk_fullsock, 95, ##ctx) FN(tcp_sock, 96, ##ctx) FN(skb_ecn_set_ce, 97, ##ctx) FN(get_listener_sock, 98, ##ctx) FN(skc_lookup_tcp, 99, ##ctx) FN(tcp_check_syncookie, 100, ##ctx) FN(sysctl_get_name, 101, ##ctx) FN(sysctl_get_current_value, 102, ##ctx) FN(sysctl_get_new_value, 103, ##ctx) FN(sysctl_set_new_value, 104, ##ctx) FN(strtol, 105, ##ctx) FN(strtoul, 106, ##ctx) FN(sk_storage_get, 107, ##ctx) FN(sk_storage_delete, 108, ##ctx) FN(send_signal, 109, ##ctx) FN(tcp_gen_syncookie, 110, ##ctx) FN(skb_output, 111, ##ctx) FN(probe_read_user, 112, ##ctx) FN(probe_read_kernel, 113, ##ctx) FN(probe_read_user_str, 114, ##ctx) FN(probe_read_kernel_str, 115, ##ctx) FN(tcp_send_ack, 116, ##ctx) FN(send_signal_thread, 117, ##ctx) FN(jiffies64, 118, ##ctx) FN(read_branch_records, 119, ##ctx) FN(get_ns_current_pid_tgid, 120, ##ctx) FN(xdp_output, 121, ##ctx) FN(get_netns_cookie, 122, ##ctx) FN(get_current_ancestor_cgroup_id, 123, ##ctx) FN(sk_assign, 124, ##ctx) FN(ktime_get_boot_ns, 125, ##ctx) FN(seq_printf, 126, ##ctx) FN(seq_write, 127, ##ctx) FN(sk_cgroup_id, 128, ##ctx) FN(sk_ancestor_cgroup_id, 129, ##ctx) FN(ringbuf_output, 130, ##ctx) FN(ringbuf_reserve, 131, ##ctx) FN(ringbuf_submit, 132, ##ctx) FN(ringbuf_discard, 133, ##ctx) FN(ringbuf_query, 134, ##ctx) FN(csum_level, 135, ##ctx) FN(skc_to_tcp6_sock, 136, ##ctx) FN(skc_to_tcp_sock, 137, ##ctx) FN(skc_to_tcp_timewait_sock, 138, ##ctx) FN(skc_to_tcp_request_sock, 139, ##ctx) FN(skc_to_udp6_sock, 140, ##ctx) FN(get_task_stack, 141, ##ctx) FN(load_hdr_opt, 142, ##ctx) FN(store_hdr_opt, 143, ##ctx) FN(reserve_hdr_opt, 144, ##ctx) FN(inode_storage_get, 145, ##ctx) FN(inode_storage_delete, 146, ##ctx) FN(d_path, 147, ##ctx) FN(copy_from_user, 148, ##ctx) FN(snprintf_btf, 149, ##ctx) FN(seq_printf_btf, 150, ##ctx) FN(skb_cgroup_classid, 151, ##ctx) FN(redirect_neigh, 152, ##ctx) FN(per_cpu_ptr, 153, ##ctx) FN(this_cpu_ptr, 154, ##ctx) FN(redirect_peer, 155, ##ctx) FN(task_storage_get, 156, ##ctx) FN(task_storage_delete, 157, ##ctx) FN(get_current_task_btf, 158, ##ctx) FN(bprm_opts_set, 159, ##ctx) FN(ktime_get_coarse_ns, 160, ##ctx) FN(ima_inode_hash, 161, ##ctx) FN(sock_from_file, 162, ##ctx) FN(check_mtu, 163, ##ctx) FN(for_each_map_elem, 164, ##ctx) FN(snprintf, 165, ##ctx) FN(sys_bpf, 166, ##ctx) FN(btf_find_by_name_kind, 167, ##ctx) FN(sys_close, 168, ##ctx) FN(timer_init, 169, ##ctx) FN(timer_set_callback, 170, ##ctx) FN(timer_start, 171, ##ctx) FN(timer_cancel, 172, ##ctx) FN(get_func_ip, 173, ##ctx) FN(get_attach_cookie, 174, ##ctx) FN(task_pt_regs, 175, ##ctx) FN(get_branch_snapshot, 176, ##ctx) FN(trace_vprintk, 177, ##ctx) FN(skc_to_unix_sock, 178, ##ctx) FN(kallsyms_lookup_name, 179, ##ctx) FN(find_vma, 180, ##ctx) FN(loop, 181, ##ctx) FN(strncmp, 182, ##ctx) FN(get_func_arg, 183, ##ctx) FN(get_func_ret, 184, ##ctx) FN(get_func_arg_cnt, 185, ##ctx) FN(get_retval, 186, ##ctx) FN(set_retval, 187, ##ctx) FN(xdp_get_buff_len, 188, ##ctx) FN(xdp_load_bytes, 189, ##ctx) FN(xdp_store_bytes, 190, ##ctx) FN(copy_from_user_task, 191, ##ctx) FN(skb_set_tstamp, 192, ##ctx) FN(ima_file_hash, 193, ##ctx) FN(kptr_xchg, 194, ##ctx) FN(map_lookup_percpu_elem, 195, ##ctx) FN(skc_to_mptcp_sock, 196, ##ctx) FN(dynptr_from_mem, 197, ##ctx) FN(ringbuf_reserve_dynptr, 198, ##ctx) FN(ringbuf_submit_dynptr, 199, ##ctx) FN(ringbuf_discard_dynptr, 200, ##ctx) FN(dynptr_read, 201, ##ctx) FN(dynptr_write, 202, ##ctx) FN(dynptr_data, 203, ##ctx) FN(tcp_raw_gen_syncookie_ipv4, 204, ##ctx) FN(tcp_raw_gen_syncookie_ipv6, 205, ##ctx) FN(tcp_raw_check_syncookie_ipv4, 206, ##ctx) FN(tcp_raw_check_syncookie_ipv6, 207, ##ctx) FN(ktime_get_tai_ns, 208, ##ctx) FN(user_ringbuf_drain, 209, ##ctx) FN(cgrp_storage_get, 210, ##ctx) FN(cgrp_storage_delete, 211, ##ctx)
+#define __BPF_FUNC_MAPPER_APPLY(name,value,FN) FN(name),
+#define __BPF_FUNC_MAPPER(FN) ___BPF_FUNC_MAPPER(__BPF_FUNC_MAPPER_APPLY, FN)
+#define __BPF_ENUM_FN(x,y) BPF_FUNC_ ##x = y,
 enum bpf_func_id {
-  __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
+  ___BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
 };
 #undef __BPF_ENUM_FN
 enum {
@@ -1005,6 +1009,7 @@
   __bpf_md_ptr(void *, skb_data_end);
   __u32 skb_len;
   __u32 skb_tcp_flags;
+  __u64 skb_hwtstamp;
 };
 enum {
   BPF_SOCK_OPS_RTO_CB_FLAG = (1 << 0),
@@ -1205,6 +1210,14 @@
   __u64 : 64;
   __u64 : 64;
 } __attribute__((aligned(8)));
+struct bpf_list_head {
+  __u64 : 64;
+  __u64 : 64;
+} __attribute__((aligned(8)));
+struct bpf_list_node {
+  __u64 : 64;
+  __u64 : 64;
+} __attribute__((aligned(8)));
 struct bpf_sysctl {
   __u32 write;
   __u32 file_pos;
diff --git a/libc/kernel/uapi/linux/btrfs.h b/libc/kernel/uapi/linux/btrfs.h
index 506238f..8039625 100644
--- a/libc/kernel/uapi/linux/btrfs.h
+++ b/libc/kernel/uapi/linux/btrfs.h
@@ -18,8 +18,12 @@
  ****************************************************************************/
 #ifndef _UAPI_LINUX_BTRFS_H
 #define _UAPI_LINUX_BTRFS_H
+#ifdef __cplusplus
+extern "C" {
+#endif
 #include <linux/types.h>
 #include <linux/ioctl.h>
+#include <linux/fs.h>
 #define BTRFS_IOCTL_MAGIC 0x94
 #define BTRFS_VOL_NAME_MAX 255
 #define BTRFS_LABEL_SIZE 256
@@ -296,7 +300,7 @@
   __u64 offset;
   __u32 type;
   __u32 len;
-};
+} __attribute__((__may_alias__));
 #define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key))
 struct btrfs_ioctl_search_args {
   struct btrfs_ioctl_search_key key;
@@ -562,4 +566,7 @@
 #define BTRFS_IOC_SNAP_DESTROY_V2 _IOW(BTRFS_IOCTL_MAGIC, 63, struct btrfs_ioctl_vol_args_v2)
 #define BTRFS_IOC_ENCODED_READ _IOR(BTRFS_IOCTL_MAGIC, 64, struct btrfs_ioctl_encoded_io_args)
 #define BTRFS_IOC_ENCODED_WRITE _IOW(BTRFS_IOCTL_MAGIC, 64, struct btrfs_ioctl_encoded_io_args)
+#ifdef __cplusplus
+}
+#endif
 #endif
diff --git a/libc/kernel/uapi/linux/btrfs_tree.h b/libc/kernel/uapi/linux/btrfs_tree.h
index 6cd46dd..02422c0 100644
--- a/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/libc/kernel/uapi/linux/btrfs_tree.h
@@ -21,6 +21,10 @@
 #include <linux/btrfs.h>
 #include <linux/types.h>
 #include <stddef.h>
+#define BTRFS_MAGIC 0x4D5F53665248425FULL
+#define BTRFS_MAX_LEVEL 8
+#define BTRFS_NAME_LEN 255
+#define BTRFS_LINK_MAX 65535U
 #define BTRFS_ROOT_TREE_OBJECTID 1ULL
 #define BTRFS_EXTENT_TREE_OBJECTID 2ULL
 #define BTRFS_CHUNK_TREE_OBJECTID 3ULL
@@ -113,6 +117,23 @@
 #define BTRFS_FT_SYMLINK 7
 #define BTRFS_FT_XATTR 8
 #define BTRFS_FT_MAX 9
+#define BTRFS_FT_ENCRYPTED 0x80
+#define BTRFS_INODE_NODATASUM (1U << 0)
+#define BTRFS_INODE_NODATACOW (1U << 1)
+#define BTRFS_INODE_READONLY (1U << 2)
+#define BTRFS_INODE_NOCOMPRESS (1U << 3)
+#define BTRFS_INODE_PREALLOC (1U << 4)
+#define BTRFS_INODE_SYNC (1U << 5)
+#define BTRFS_INODE_IMMUTABLE (1U << 6)
+#define BTRFS_INODE_APPEND (1U << 7)
+#define BTRFS_INODE_NODUMP (1U << 8)
+#define BTRFS_INODE_NOATIME (1U << 9)
+#define BTRFS_INODE_DIRSYNC (1U << 10)
+#define BTRFS_INODE_COMPRESS (1U << 11)
+#define BTRFS_INODE_ROOT_ITEM_INIT (1U << 31)
+#define BTRFS_INODE_FLAG_MASK (BTRFS_INODE_NODATASUM | BTRFS_INODE_NODATACOW | BTRFS_INODE_READONLY | BTRFS_INODE_NOCOMPRESS | BTRFS_INODE_PREALLOC | BTRFS_INODE_SYNC | BTRFS_INODE_IMMUTABLE | BTRFS_INODE_APPEND | BTRFS_INODE_NODUMP | BTRFS_INODE_NOATIME | BTRFS_INODE_DIRSYNC | BTRFS_INODE_COMPRESS | BTRFS_INODE_ROOT_ITEM_INIT)
+#define BTRFS_INODE_RO_VERITY (1U << 0)
+#define BTRFS_INODE_RO_FLAG_MASK (BTRFS_INODE_RO_VERITY)
 struct btrfs_disk_key {
   __le64 objectid;
   __u8 type;
@@ -123,6 +144,62 @@
   __u8 type;
   __u64 offset;
 } __attribute__((__packed__));
+struct btrfs_header {
+  __u8 csum[BTRFS_CSUM_SIZE];
+  __u8 fsid[BTRFS_FSID_SIZE];
+  __le64 bytenr;
+  __le64 flags;
+  __u8 chunk_tree_uuid[BTRFS_UUID_SIZE];
+  __le64 generation;
+  __le64 owner;
+  __le32 nritems;
+  __u8 level;
+} __attribute__((__packed__));
+#define BTRFS_SYSTEM_CHUNK_ARRAY_SIZE 2048
+#define BTRFS_NUM_BACKUP_ROOTS 4
+struct btrfs_root_backup {
+  __le64 tree_root;
+  __le64 tree_root_gen;
+  __le64 chunk_root;
+  __le64 chunk_root_gen;
+  __le64 extent_root;
+  __le64 extent_root_gen;
+  __le64 fs_root;
+  __le64 fs_root_gen;
+  __le64 dev_root;
+  __le64 dev_root_gen;
+  __le64 csum_root;
+  __le64 csum_root_gen;
+  __le64 total_bytes;
+  __le64 bytes_used;
+  __le64 num_devices;
+  __le64 unused_64[4];
+  __u8 tree_root_level;
+  __u8 chunk_root_level;
+  __u8 extent_root_level;
+  __u8 fs_root_level;
+  __u8 dev_root_level;
+  __u8 csum_root_level;
+  __u8 unused_8[10];
+} __attribute__((__packed__));
+struct btrfs_item {
+  struct btrfs_disk_key key;
+  __le32 offset;
+  __le32 size;
+} __attribute__((__packed__));
+struct btrfs_leaf {
+  struct btrfs_header header;
+  struct btrfs_item items[];
+} __attribute__((__packed__));
+struct btrfs_key_ptr {
+  struct btrfs_disk_key key;
+  __le64 blockptr;
+  __le64 generation;
+} __attribute__((__packed__));
+struct btrfs_node {
+  struct btrfs_header header;
+  struct btrfs_key_ptr ptrs[];
+} __attribute__((__packed__));
 struct btrfs_dev_item {
   __le64 devid;
   __le64 total_bytes;
@@ -156,6 +233,45 @@
   __le16 sub_stripes;
   struct btrfs_stripe stripe;
 } __attribute__((__packed__));
+struct btrfs_super_block {
+  __u8 csum[BTRFS_CSUM_SIZE];
+  __u8 fsid[BTRFS_FSID_SIZE];
+  __le64 bytenr;
+  __le64 flags;
+  __le64 magic;
+  __le64 generation;
+  __le64 root;
+  __le64 chunk_root;
+  __le64 log_root;
+  __le64 __unused_log_root_transid;
+  __le64 total_bytes;
+  __le64 bytes_used;
+  __le64 root_dir_objectid;
+  __le64 num_devices;
+  __le32 sectorsize;
+  __le32 nodesize;
+  __le32 __unused_leafsize;
+  __le32 stripesize;
+  __le32 sys_chunk_array_size;
+  __le64 chunk_root_generation;
+  __le64 compat_flags;
+  __le64 compat_ro_flags;
+  __le64 incompat_flags;
+  __le16 csum_type;
+  __u8 root_level;
+  __u8 chunk_root_level;
+  __u8 log_root_level;
+  struct btrfs_dev_item dev_item;
+  char label[BTRFS_LABEL_SIZE];
+  __le64 cache_generation;
+  __le64 uuid_tree_generation;
+  __u8 metadata_uuid[BTRFS_FSID_SIZE];
+  __u64 nr_global_roots;
+  __le64 reserved[27];
+  __u8 sys_chunk_array[BTRFS_SYSTEM_CHUNK_ARRAY_SIZE];
+  struct btrfs_root_backup super_roots[BTRFS_NUM_BACKUP_ROOTS];
+  __u8 padding[565];
+} __attribute__((__packed__));
 #define BTRFS_FREE_SPACE_EXTENT 1
 #define BTRFS_FREE_SPACE_BITMAP 2
 struct btrfs_free_space_entry {
@@ -188,6 +304,11 @@
 #define BTRFS_EXTENT_FLAG_DATA (1ULL << 0)
 #define BTRFS_EXTENT_FLAG_TREE_BLOCK (1ULL << 1)
 #define BTRFS_BLOCK_FLAG_FULL_BACKREF (1ULL << 8)
+#define BTRFS_BACKREF_REV_MAX 256
+#define BTRFS_BACKREF_REV_SHIFT 56
+#define BTRFS_BACKREF_REV_MASK (((u64) BTRFS_BACKREF_REV_MAX - 1) << BTRFS_BACKREF_REV_SHIFT)
+#define BTRFS_OLD_BACKREF_REV 0
+#define BTRFS_MIXED_BACKREF_REV 1
 #define BTRFS_EXTENT_FLAG_SUPER (1ULL << 48)
 struct btrfs_tree_block_info {
   struct btrfs_disk_key key;
diff --git a/libc/kernel/uapi/linux/dcbnl.h b/libc/kernel/uapi/linux/dcbnl.h
index d1f2eba..bc88387 100644
--- a/libc/kernel/uapi/linux/dcbnl.h
+++ b/libc/kernel/uapi/linux/dcbnl.h
@@ -99,11 +99,13 @@
 #define IEEE_8021QAZ_APP_SEL_DGRAM 3
 #define IEEE_8021QAZ_APP_SEL_ANY 4
 #define IEEE_8021QAZ_APP_SEL_DSCP 5
+#define DCB_APP_SEL_PCP 255
 struct dcb_app {
   __u8 selector;
   __u8 priority;
   __u16 protocol;
 };
+#define IEEE_8021QAZ_APP_SEL_MAX 255
 struct dcb_peer_app_info {
   __u8 willing;
   __u8 error;
@@ -178,12 +180,14 @@
   DCB_ATTR_IEEE_QCN,
   DCB_ATTR_IEEE_QCN_STATS,
   DCB_ATTR_DCB_BUFFER,
+  DCB_ATTR_DCB_APP_TRUST_TABLE,
   __DCB_ATTR_IEEE_MAX
 };
 #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1)
 enum ieee_attrs_app {
   DCB_ATTR_IEEE_APP_UNSPEC,
   DCB_ATTR_IEEE_APP,
+  DCB_ATTR_DCB_APP,
   __DCB_ATTR_IEEE_APP_MAX
 };
 #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1)
diff --git a/libc/kernel/uapi/linux/devlink.h b/libc/kernel/uapi/linux/devlink.h
index b2cdafa..b7705c3 100644
--- a/libc/kernel/uapi/linux/devlink.h
+++ b/libc/kernel/uapi/linux/devlink.h
@@ -426,6 +426,9 @@
   DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES,
   DEVLINK_ATTR_NESTED_DEVLINK,
   DEVLINK_ATTR_SELFTESTS,
+  DEVLINK_ATTR_RATE_TX_PRIORITY,
+  DEVLINK_ATTR_RATE_TX_WEIGHT,
+  DEVLINK_ATTR_REGION_DIRECT,
   __DEVLINK_ATTR_MAX,
   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
 };
@@ -456,11 +459,19 @@
 enum devlink_resource_unit {
   DEVLINK_RESOURCE_UNIT_ENTRY,
 };
+enum devlink_port_fn_attr_cap {
+  DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT,
+  DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT,
+  __DEVLINK_PORT_FN_ATTR_CAPS_MAX,
+};
+#define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT)
+#define DEVLINK_PORT_FN_CAP_MIGRATABLE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT)
 enum devlink_port_function_attr {
   DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
   DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR,
   DEVLINK_PORT_FN_ATTR_STATE,
   DEVLINK_PORT_FN_ATTR_OPSTATE,
+  DEVLINK_PORT_FN_ATTR_CAPS,
   __DEVLINK_PORT_FUNCTION_ATTR_MAX,
   DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1
 };
diff --git a/libc/kernel/uapi/linux/dvb/frontend.h b/libc/kernel/uapi/linux/dvb/frontend.h
index d060138..2ea7d9d 100644
--- a/libc/kernel/uapi/linux/dvb/frontend.h
+++ b/libc/kernel/uapi/linux/dvb/frontend.h
@@ -122,6 +122,22 @@
   FEC_3_5,
   FEC_9_10,
   FEC_2_5,
+  FEC_1_3,
+  FEC_1_4,
+  FEC_5_9,
+  FEC_7_9,
+  FEC_8_15,
+  FEC_11_15,
+  FEC_13_18,
+  FEC_9_20,
+  FEC_11_20,
+  FEC_23_36,
+  FEC_25_36,
+  FEC_13_45,
+  FEC_26_45,
+  FEC_28_45,
+  FEC_32_45,
+  FEC_77_90,
 };
 enum fe_modulation {
   QPSK,
@@ -138,6 +154,13 @@
   APSK_32,
   DQPSK,
   QAM_4_NR,
+  QAM_1024,
+  QAM_4096,
+  APSK_8_L,
+  APSK_16_L,
+  APSK_32_L,
+  APSK_64,
+  APSK_64_L,
 };
 enum fe_transmit_mode {
   TRANSMISSION_MODE_2K,
@@ -162,6 +185,7 @@
   GUARD_INTERVAL_PN420,
   GUARD_INTERVAL_PN595,
   GUARD_INTERVAL_PN945,
+  GUARD_INTERVAL_1_64,
 };
 enum fe_hierarchy {
   HIERARCHY_NONE,
@@ -259,6 +283,9 @@
   ROLLOFF_20,
   ROLLOFF_25,
   ROLLOFF_AUTO,
+  ROLLOFF_15,
+  ROLLOFF_10,
+  ROLLOFF_5,
 };
 enum fe_delivery_system {
   SYS_UNDEFINED,
@@ -280,6 +307,7 @@
   SYS_DVBT2,
   SYS_TURBO,
   SYS_DVBC_ANNEX_C,
+  SYS_DVBC2,
 };
 #define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
 #define SYS_DMBTH SYS_DTMB
diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h
index 8bdd622..a58be6f 100644
--- a/libc/kernel/uapi/linux/ethtool.h
+++ b/libc/kernel/uapi/linux/ethtool.h
@@ -719,6 +719,12 @@
   ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
   ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
   ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92,
+  ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93,
+  ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94,
+  ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95,
+  ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96,
+  ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97,
+  ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98,
   __ETHTOOL_LINK_MODE_MASK_NBITS
 };
 #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) (1UL << (ETHTOOL_LINK_MODE_ ##base_name ##_BIT))
@@ -799,6 +805,7 @@
 #define SPEED_100000 100000
 #define SPEED_200000 200000
 #define SPEED_400000 400000
+#define SPEED_800000 800000
 #define SPEED_UNKNOWN - 1
 #define DUPLEX_HALF 0x00
 #define DUPLEX_FULL 0x01
diff --git a/libc/kernel/uapi/linux/ethtool_netlink.h b/libc/kernel/uapi/linux/ethtool_netlink.h
index 08c6936..cc9c53c 100644
--- a/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -58,6 +58,7 @@
   ETHTOOL_MSG_MODULE_SET,
   ETHTOOL_MSG_PSE_GET,
   ETHTOOL_MSG_PSE_SET,
+  ETHTOOL_MSG_RSS_GET,
   __ETHTOOL_MSG_USER_CNT,
   ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
 };
@@ -100,6 +101,7 @@
   ETHTOOL_MSG_MODULE_GET_REPLY,
   ETHTOOL_MSG_MODULE_NTF,
   ETHTOOL_MSG_PSE_GET_REPLY,
+  ETHTOOL_MSG_RSS_GET_REPLY,
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
@@ -208,6 +210,7 @@
   ETHTOOL_A_LINKSTATE_SQI_MAX,
   ETHTOOL_A_LINKSTATE_EXT_STATE,
   ETHTOOL_A_LINKSTATE_EXT_SUBSTATE,
+  ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT,
   __ETHTOOL_A_LINKSTATE_CNT,
   ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1
 };
@@ -622,6 +625,16 @@
   __ETHTOOL_A_PSE_CNT,
   ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
 };
+enum {
+  ETHTOOL_A_RSS_UNSPEC,
+  ETHTOOL_A_RSS_HEADER,
+  ETHTOOL_A_RSS_CONTEXT,
+  ETHTOOL_A_RSS_HFUNC,
+  ETHTOOL_A_RSS_INDIR,
+  ETHTOOL_A_RSS_HKEY,
+  __ETHTOOL_A_RSS_CNT,
+  ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1),
+};
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
diff --git a/libc/kernel/uapi/linux/eventpoll.h b/libc/kernel/uapi/linux/eventpoll.h
index d2601e5..2a1a26a 100644
--- a/libc/kernel/uapi/linux/eventpoll.h
+++ b/libc/kernel/uapi/linux/eventpoll.h
@@ -37,6 +37,7 @@
 #define EPOLLWRBAND (__force __poll_t) 0x00000200
 #define EPOLLMSG (__force __poll_t) 0x00000400
 #define EPOLLRDHUP (__force __poll_t) 0x00002000
+#define EPOLL_URING_WAKE ((__force __poll_t) (1U << 27))
 #define EPOLLEXCLUSIVE ((__force __poll_t) (1U << 28))
 #define EPOLLWAKEUP ((__force __poll_t) (1U << 29))
 #define EPOLLONESHOT ((__force __poll_t) (1U << 30))
diff --git a/libc/kernel/uapi/linux/f2fs.h b/libc/kernel/uapi/linux/f2fs.h
index 3fcd444..7c9629a 100644
--- a/libc/kernel/uapi/linux/f2fs.h
+++ b/libc/kernel/uapi/linux/f2fs.h
@@ -45,6 +45,7 @@
 #define F2FS_IOC_SET_COMPRESS_OPTION _IOW(F2FS_IOCTL_MAGIC, 22, struct f2fs_comp_option)
 #define F2FS_IOC_DECOMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 23)
 #define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24)
+#define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25)
 #define F2FS_IOC_SHUTDOWN _IOR('X', 125, __u32)
 #define F2FS_GOING_DOWN_FULLSYNC 0x0
 #define F2FS_GOING_DOWN_METASYNC 0x1
diff --git a/libc/kernel/uapi/linux/fscrypt.h b/libc/kernel/uapi/linux/fscrypt.h
index e6b5358..9efafae 100644
--- a/libc/kernel/uapi/linux/fscrypt.h
+++ b/libc/kernel/uapi/linux/fscrypt.h
@@ -32,6 +32,8 @@
 #define FSCRYPT_MODE_AES_256_CTS 4
 #define FSCRYPT_MODE_AES_128_CBC 5
 #define FSCRYPT_MODE_AES_128_CTS 6
+#define FSCRYPT_MODE_SM4_XTS 7
+#define FSCRYPT_MODE_SM4_CTS 8
 #define FSCRYPT_MODE_ADIANTUM 9
 #define FSCRYPT_MODE_AES_256_HCTR2 10
 #define FSCRYPT_POLICY_V1 0
@@ -138,8 +140,6 @@
 #define FS_ENCRYPTION_MODE_AES_256_CTS FSCRYPT_MODE_AES_256_CTS
 #define FS_ENCRYPTION_MODE_AES_128_CBC FSCRYPT_MODE_AES_128_CBC
 #define FS_ENCRYPTION_MODE_AES_128_CTS FSCRYPT_MODE_AES_128_CTS
-#define FS_ENCRYPTION_MODE_SPECK128_256_XTS 7
-#define FS_ENCRYPTION_MODE_SPECK128_256_CTS 8
 #define FS_ENCRYPTION_MODE_ADIANTUM FSCRYPT_MODE_ADIANTUM
 #define FS_KEY_DESC_PREFIX FSCRYPT_KEY_DESC_PREFIX
 #define FS_KEY_DESC_PREFIX_SIZE FSCRYPT_KEY_DESC_PREFIX_SIZE
diff --git a/libc/kernel/uapi/linux/fuse.h b/libc/kernel/uapi/linux/fuse.h
index ae667eb..f1eec4d 100644
--- a/libc/kernel/uapi/linux/fuse.h
+++ b/libc/kernel/uapi/linux/fuse.h
@@ -20,7 +20,7 @@
 #define _LINUX_FUSE_H
 #include <stdint.h>
 #define FUSE_KERNEL_VERSION 7
-#define FUSE_KERNEL_MINOR_VERSION 37
+#define FUSE_KERNEL_MINOR_VERSION 38
 #define FUSE_ROOT_ID 1
 struct fuse_attr {
   uint64_t ino;
@@ -76,6 +76,7 @@
 #define FOPEN_CACHE_DIR (1 << 3)
 #define FOPEN_STREAM (1 << 4)
 #define FOPEN_NOFLUSH (1 << 5)
+#define FOPEN_PARALLEL_DIRECT_WRITES (1 << 6)
 #define FUSE_ASYNC_READ (1 << 0)
 #define FUSE_POSIX_LOCKS (1 << 1)
 #define FUSE_FILE_OPS (1 << 2)
@@ -138,6 +139,7 @@
 #define FUSE_ATTR_DAX (1 << 1)
 #define FUSE_OPEN_KILL_SUIDGID (1 << 0)
 #define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
+#define FUSE_EXPIRE_ONLY (1 << 0)
 enum fuse_opcode {
   FUSE_LOOKUP = 1,
   FUSE_FORGET = 2,
@@ -495,7 +497,7 @@
 struct fuse_notify_inval_entry_out {
   uint64_t parent;
   uint32_t namelen;
-  uint32_t padding;
+  uint32_t flags;
 };
 struct fuse_notify_delete_out {
   uint64_t parent;
diff --git a/libc/kernel/uapi/linux/idxd.h b/libc/kernel/uapi/linux/idxd.h
index a456352..01c62f2 100644
--- a/libc/kernel/uapi/linux/idxd.h
+++ b/libc/kernel/uapi/linux/idxd.h
@@ -276,7 +276,7 @@
       uint32_t rsvd2 : 8;
     };
     uint32_t delta_rec_size;
-    uint32_t crc_val;
+    uint64_t crc_val;
     struct {
       uint32_t dif_chk_ref_tag;
       uint16_t dif_chk_app_tag_mask;
diff --git a/libc/kernel/uapi/linux/if_alg.h b/libc/kernel/uapi/linux/if_alg.h
index 237fe6e..41ba868 100644
--- a/libc/kernel/uapi/linux/if_alg.h
+++ b/libc/kernel/uapi/linux/if_alg.h
@@ -43,6 +43,7 @@
 #define ALG_SET_AEAD_ASSOCLEN 4
 #define ALG_SET_AEAD_AUTHSIZE 5
 #define ALG_SET_DRBG_ENTROPY 6
+#define ALG_SET_KEY_BY_KEY_SERIAL 7
 #define ALG_OP_DECRYPT 0
 #define ALG_OP_ENCRYPT 1
 #endif
diff --git a/libc/kernel/uapi/linux/if_bridge.h b/libc/kernel/uapi/linux/if_bridge.h
index 0f08866..702363e 100644
--- a/libc/kernel/uapi/linux/if_bridge.h
+++ b/libc/kernel/uapi/linux/if_bridge.h
@@ -576,10 +576,25 @@
 enum {
   MDBE_ATTR_UNSPEC,
   MDBE_ATTR_SOURCE,
+  MDBE_ATTR_SRC_LIST,
+  MDBE_ATTR_GROUP_MODE,
+  MDBE_ATTR_RTPROT,
   __MDBE_ATTR_MAX,
 };
 #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1)
 enum {
+  MDBE_SRC_LIST_UNSPEC,
+  MDBE_SRC_LIST_ENTRY,
+  __MDBE_SRC_LIST_MAX,
+};
+#define MDBE_SRC_LIST_MAX (__MDBE_SRC_LIST_MAX - 1)
+enum {
+  MDBE_SRCATTR_UNSPEC,
+  MDBE_SRCATTR_ADDRESS,
+  __MDBE_SRCATTR_MAX,
+};
+#define MDBE_SRCATTR_MAX (__MDBE_SRCATTR_MAX - 1)
+enum {
   BRIDGE_XSTATS_UNSPEC,
   BRIDGE_XSTATS_VLAN,
   BRIDGE_XSTATS_MCAST,
diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h
index ebf403a..19c6346 100644
--- a/libc/kernel/uapi/linux/if_link.h
+++ b/libc/kernel/uapi/linux/if_link.h
@@ -166,6 +166,7 @@
   IFLA_TSO_MAX_SIZE,
   IFLA_TSO_MAX_SEGS,
   IFLA_ALLMULTI,
+  IFLA_DEVLINK_PORT,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -305,6 +306,7 @@
   IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
   IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
   IFLA_BRPORT_LOCKED,
+  IFLA_BRPORT_MAB,
   __IFLA_BRPORT_MAX
 };
 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
diff --git a/libc/kernel/uapi/linux/if_packet.h b/libc/kernel/uapi/linux/if_packet.h
index e7e7a33..340b2ee 100644
--- a/libc/kernel/uapi/linux/if_packet.h
+++ b/libc/kernel/uapi/linux/if_packet.h
@@ -75,6 +75,7 @@
 #define PACKET_FANOUT_EBPF 7
 #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
 #define PACKET_FANOUT_FLAG_UNIQUEID 0x2000
+#define PACKET_FANOUT_FLAG_IGNORE_OUTGOING 0x4000
 #define PACKET_FANOUT_FLAG_DEFRAG 0x8000
 struct tpacket_stats {
   unsigned int tp_packets;
diff --git a/libc/kernel/uapi/linux/if_tun.h b/libc/kernel/uapi/linux/if_tun.h
index dda0830..93bac9c 100644
--- a/libc/kernel/uapi/linux/if_tun.h
+++ b/libc/kernel/uapi/linux/if_tun.h
@@ -73,6 +73,8 @@
 #define TUN_F_TSO6 0x04
 #define TUN_F_TSO_ECN 0x08
 #define TUN_F_UFO 0x10
+#define TUN_F_USO4 0x20
+#define TUN_F_USO6 0x40
 #define TUN_PKT_STRIP 0x0001
 struct tun_pi {
   __u16 flags;
diff --git a/libc/kernel/uapi/linux/input-event-codes.h b/libc/kernel/uapi/linux/input-event-codes.h
index 40827b5..712a9db 100644
--- a/libc/kernel/uapi/linux/input-event-codes.h
+++ b/libc/kernel/uapi/linux/input-event-codes.h
@@ -551,6 +551,9 @@
 #define KEY_KBD_LAYOUT_NEXT 0x248
 #define KEY_EMOJI_PICKER 0x249
 #define KEY_DICTATE 0x24a
+#define KEY_CAMERA_ACCESS_ENABLE 0x24b
+#define KEY_CAMERA_ACCESS_DISABLE 0x24c
+#define KEY_CAMERA_ACCESS_TOGGLE 0x24d
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/libc/kernel/uapi/linux/io_uring.h b/libc/kernel/uapi/linux/io_uring.h
index 82dee97..5561448 100644
--- a/libc/kernel/uapi/linux/io_uring.h
+++ b/libc/kernel/uapi/linux/io_uring.h
@@ -20,7 +20,9 @@
 #define LINUX_IO_URING_H
 #include <linux/fs.h>
 #include <linux/types.h>
+#ifndef UAPI_LINUX_IO_URING_H_SKIP_LINUX_TIME_TYPES_H
 #include <linux/time_types.h>
+#endif
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -190,6 +192,8 @@
 #define IORING_RECVSEND_POLL_FIRST (1U << 0)
 #define IORING_RECV_MULTISHOT (1U << 1)
 #define IORING_RECVSEND_FIXED_BUF (1U << 2)
+#define IORING_SEND_ZC_REPORT_USAGE (1U << 3)
+#define IORING_NOTIF_USAGE_ZC_COPIED (1U << 31)
 #define IORING_ACCEPT_MULTISHOT (1U << 0)
 enum {
   IORING_MSG_DATA,
diff --git a/libc/kernel/uapi/linux/iommufd.h b/libc/kernel/uapi/linux/iommufd.h
new file mode 100644
index 0000000..b7f5815
--- /dev/null
+++ b/libc/kernel/uapi/linux/iommufd.h
@@ -0,0 +1,129 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _UAPI_IOMMUFD_H
+#define _UAPI_IOMMUFD_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#define IOMMUFD_TYPE (';')
+enum {
+  IOMMUFD_CMD_BASE = 0x80,
+  IOMMUFD_CMD_DESTROY = IOMMUFD_CMD_BASE,
+  IOMMUFD_CMD_IOAS_ALLOC,
+  IOMMUFD_CMD_IOAS_ALLOW_IOVAS,
+  IOMMUFD_CMD_IOAS_COPY,
+  IOMMUFD_CMD_IOAS_IOVA_RANGES,
+  IOMMUFD_CMD_IOAS_MAP,
+  IOMMUFD_CMD_IOAS_UNMAP,
+  IOMMUFD_CMD_OPTION,
+  IOMMUFD_CMD_VFIO_IOAS,
+};
+struct iommu_destroy {
+  __u32 size;
+  __u32 id;
+};
+#define IOMMU_DESTROY _IO(IOMMUFD_TYPE, IOMMUFD_CMD_DESTROY)
+struct iommu_ioas_alloc {
+  __u32 size;
+  __u32 flags;
+  __u32 out_ioas_id;
+};
+#define IOMMU_IOAS_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_ALLOC)
+struct iommu_iova_range {
+  __aligned_u64 start;
+  __aligned_u64 last;
+};
+struct iommu_ioas_iova_ranges {
+  __u32 size;
+  __u32 ioas_id;
+  __u32 num_iovas;
+  __u32 __reserved;
+  __aligned_u64 allowed_iovas;
+  __aligned_u64 out_iova_alignment;
+};
+#define IOMMU_IOAS_IOVA_RANGES _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_IOVA_RANGES)
+struct iommu_ioas_allow_iovas {
+  __u32 size;
+  __u32 ioas_id;
+  __u32 num_iovas;
+  __u32 __reserved;
+  __aligned_u64 allowed_iovas;
+};
+#define IOMMU_IOAS_ALLOW_IOVAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_ALLOW_IOVAS)
+enum iommufd_ioas_map_flags {
+  IOMMU_IOAS_MAP_FIXED_IOVA = 1 << 0,
+  IOMMU_IOAS_MAP_WRITEABLE = 1 << 1,
+  IOMMU_IOAS_MAP_READABLE = 1 << 2,
+};
+struct iommu_ioas_map {
+  __u32 size;
+  __u32 flags;
+  __u32 ioas_id;
+  __u32 __reserved;
+  __aligned_u64 user_va;
+  __aligned_u64 length;
+  __aligned_u64 iova;
+};
+#define IOMMU_IOAS_MAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP)
+struct iommu_ioas_copy {
+  __u32 size;
+  __u32 flags;
+  __u32 dst_ioas_id;
+  __u32 src_ioas_id;
+  __aligned_u64 length;
+  __aligned_u64 dst_iova;
+  __aligned_u64 src_iova;
+};
+#define IOMMU_IOAS_COPY _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_COPY)
+struct iommu_ioas_unmap {
+  __u32 size;
+  __u32 ioas_id;
+  __aligned_u64 iova;
+  __aligned_u64 length;
+};
+#define IOMMU_IOAS_UNMAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_UNMAP)
+enum iommufd_option {
+  IOMMU_OPTION_RLIMIT_MODE = 0,
+  IOMMU_OPTION_HUGE_PAGES = 1,
+};
+enum iommufd_option_ops {
+  IOMMU_OPTION_OP_SET = 0,
+  IOMMU_OPTION_OP_GET = 1,
+};
+struct iommu_option {
+  __u32 size;
+  __u32 option_id;
+  __u16 op;
+  __u16 __reserved;
+  __u32 object_id;
+  __aligned_u64 val64;
+};
+#define IOMMU_OPTION _IO(IOMMUFD_TYPE, IOMMUFD_CMD_OPTION)
+enum iommufd_vfio_ioas_op {
+  IOMMU_VFIO_IOAS_GET = 0,
+  IOMMU_VFIO_IOAS_SET = 1,
+  IOMMU_VFIO_IOAS_CLEAR = 2,
+};
+struct iommu_vfio_ioas {
+  __u32 size;
+  __u32 ioas_id;
+  __u16 op;
+  __u16 __reserved;
+};
+#define IOMMU_VFIO_IOAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VFIO_IOAS)
+#endif
diff --git a/libc/kernel/uapi/linux/ip.h b/libc/kernel/uapi/linux/ip.h
index 766a808..9249f5c 100644
--- a/libc/kernel/uapi/linux/ip.h
+++ b/libc/kernel/uapi/linux/ip.h
@@ -19,6 +19,7 @@
 #ifndef _UAPI_LINUX_IP_H
 #define _UAPI_LINUX_IP_H
 #include <linux/types.h>
+#include <linux/stddef.h>
 #include <asm/byteorder.h>
 #define IPTOS_TOS_MASK 0x1E
 #define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK)
diff --git a/libc/kernel/uapi/linux/ipmi_ssif_bmc.h b/libc/kernel/uapi/linux/ipmi_ssif_bmc.h
new file mode 100644
index 0000000..866ed17
--- /dev/null
+++ b/libc/kernel/uapi/linux/ipmi_ssif_bmc.h
@@ -0,0 +1,27 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _UAPI_LINUX_IPMI_SSIF_BMC_H
+#define _UAPI_LINUX_IPMI_SSIF_BMC_H
+#include <linux/types.h>
+#define IPMI_SSIF_PAYLOAD_MAX 254
+struct ipmi_ssif_msg {
+  unsigned int len;
+  __u8 payload[IPMI_SSIF_PAYLOAD_MAX];
+};
+#endif
diff --git a/libc/kernel/uapi/linux/ipv6.h b/libc/kernel/uapi/linux/ipv6.h
index 2e57ed1..d62d269 100644
--- a/libc/kernel/uapi/linux/ipv6.h
+++ b/libc/kernel/uapi/linux/ipv6.h
@@ -20,6 +20,7 @@
 #define _UAPI_IPV6_H
 #include <linux/libc-compat.h>
 #include <linux/types.h>
+#include <linux/stddef.h>
 #include <linux/in6.h>
 #include <asm/byteorder.h>
 #define IPV6_MIN_MTU 1280
diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h
index 768f57e..9566f01 100644
--- a/libc/kernel/uapi/linux/kvm.h
+++ b/libc/kernel/uapi/linux/kvm.h
@@ -77,12 +77,6 @@
   __u32 singlestep;
 };
 #define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest)
-struct kvm_memory_region {
-  __u32 slot;
-  __u32 flags;
-  __u64 guest_phys_addr;
-  __u64 memory_size;
-};
 struct kvm_userspace_memory_region {
   __u32 slot;
   __u32 flags;
@@ -370,6 +364,7 @@
 #define KVM_MSR_EXIT_REASON_INVAL (1 << 0)
 #define KVM_MSR_EXIT_REASON_UNKNOWN (1 << 1)
 #define KVM_MSR_EXIT_REASON_FILTER (1 << 2)
+#define KVM_MSR_EXIT_REASON_VALID_MASK (KVM_MSR_EXIT_REASON_INVAL | KVM_MSR_EXIT_REASON_UNKNOWN | KVM_MSR_EXIT_REASON_FILTER)
       __u32 reason;
       __u32 index;
       __u64 data;
@@ -929,6 +924,8 @@
 #define KVM_CAP_S390_ZPCI_OP 221
 #define KVM_CAP_S390_CPU_TOPOLOGY 222
 #define KVM_CAP_DIRTY_LOG_RING_ACQ_REL 223
+#define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 224
+#define KVM_CAP_DIRTY_LOG_RING_WITH_BITMAP 225
 #ifdef KVM_CAP_IRQ_ROUTING
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
@@ -1003,6 +1000,7 @@
 #define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
 #define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
 #define KVM_XEN_HVM_CONFIG_EVTCHN_SEND (1 << 5)
+#define KVM_XEN_HVM_CONFIG_RUNSTATE_UPDATE_FLAG (1 << 6)
 struct kvm_xen_hvm_config {
   __u32 flags;
   __u32 msr;
@@ -1130,10 +1128,8 @@
   __s32 groupfd;
   __s32 tablefd;
 };
-#define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region)
 #define KVM_CREATE_VCPU _IO(KVMIO, 0x41)
 #define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log)
-#define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias)
 #define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44)
 #define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45)
 #define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46, struct kvm_userspace_memory_region)
@@ -1334,6 +1330,8 @@
   KVM_PV_UNSHARE_ALL,
   KVM_PV_INFO,
   KVM_PV_DUMP,
+  KVM_PV_ASYNC_CLEANUP_PREPARE,
+  KVM_PV_ASYNC_CLEANUP_PERFORM,
 };
 struct kvm_pv_cmd {
   __u32 cmd;
@@ -1354,8 +1352,10 @@
   union {
     __u8 long_mode;
     __u8 vector;
+    __u8 runstate_update_flag;
     struct {
       __u64 gfn;
+#define KVM_XEN_INVALID_GFN ((__u64) - 1)
     } shared_info;
     struct {
       __u32 send_port;
@@ -1386,6 +1386,7 @@
 #define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
 #define KVM_XEN_ATTR_TYPE_EVTCHN 0x3
 #define KVM_XEN_ATTR_TYPE_XEN_VERSION 0x4
+#define KVM_XEN_ATTR_TYPE_RUNSTATE_UPDATE_FLAG 0x5
 #define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_HVM_EVTCHN_SEND _IOW(KVMIO, 0xd0, struct kvm_irq_routing_xen_evtchn)
@@ -1396,6 +1397,7 @@
   __u16 pad[3];
   union {
     __u64 gpa;
+#define KVM_XEN_INVALID_GPA ((__u64) - 1)
     __u64 pad[8];
     struct {
       __u64 state;
diff --git a/libc/kernel/uapi/linux/landlock.h b/libc/kernel/uapi/linux/landlock.h
index ea2fd74..c284ea4 100644
--- a/libc/kernel/uapi/linux/landlock.h
+++ b/libc/kernel/uapi/linux/landlock.h
@@ -44,4 +44,5 @@
 #define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11)
 #define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
 #define LANDLOCK_ACCESS_FS_REFER (1ULL << 13)
+#define LANDLOCK_ACCESS_FS_TRUNCATE (1ULL << 14)
 #endif
diff --git a/libc/kernel/uapi/linux/media-bus-format.h b/libc/kernel/uapi/linux/media-bus-format.h
index 4555de1..87614cf 100644
--- a/libc/kernel/uapi/linux/media-bus-format.h
+++ b/libc/kernel/uapi/linux/media-bus-format.h
@@ -74,6 +74,7 @@
 #define MEDIA_BUS_FMT_YUYV12_2X12 0x201e
 #define MEDIA_BUS_FMT_YVYU12_2X12 0x201f
 #define MEDIA_BUS_FMT_Y14_1X14 0x202d
+#define MEDIA_BUS_FMT_Y16_1X16 0x202e
 #define MEDIA_BUS_FMT_UYVY8_1X16 0x200f
 #define MEDIA_BUS_FMT_VYUY8_1X16 0x2010
 #define MEDIA_BUS_FMT_YUYV8_1X16 0x2011
diff --git a/libc/kernel/uapi/linux/mptcp.h b/libc/kernel/uapi/linux/mptcp.h
index da1b5af..9f7215c 100644
--- a/libc/kernel/uapi/linux/mptcp.h
+++ b/libc/kernel/uapi/linux/mptcp.h
@@ -125,6 +125,8 @@
   MPTCP_EVENT_SUB_ESTABLISHED = 10,
   MPTCP_EVENT_SUB_CLOSED = 11,
   MPTCP_EVENT_SUB_PRIORITY = 13,
+  MPTCP_EVENT_LISTENER_CREATED = 15,
+  MPTCP_EVENT_LISTENER_CLOSED = 16,
 };
 enum mptcp_event_attr {
   MPTCP_ATTR_UNSPEC = 0,
diff --git a/libc/kernel/uapi/linux/neighbour.h b/libc/kernel/uapi/linux/neighbour.h
index b86d2ae..4b479a1 100644
--- a/libc/kernel/uapi/linux/neighbour.h
+++ b/libc/kernel/uapi/linux/neighbour.h
@@ -60,6 +60,7 @@
 #define NTF_STICKY (1 << 6)
 #define NTF_ROUTER (1 << 7)
 #define NTF_EXT_MANAGED (1 << 0)
+#define NTF_EXT_LOCKED (1 << 1)
 #define NUD_INCOMPLETE 0x01
 #define NUD_REACHABLE 0x02
 #define NUD_STALE 0x04
diff --git a/libc/kernel/uapi/linux/net_tstamp.h b/libc/kernel/uapi/linux/net_tstamp.h
index 510c0da..d79d98a 100644
--- a/libc/kernel/uapi/linux/net_tstamp.h
+++ b/libc/kernel/uapi/linux/net_tstamp.h
@@ -37,7 +37,8 @@
   SOF_TIMESTAMPING_OPT_PKTINFO = (1 << 13),
   SOF_TIMESTAMPING_OPT_TX_SWHW = (1 << 14),
   SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
-  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
+  SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16),
+  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_ID_TCP,
   SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
 };
 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
index 4252530..a5aa6bc 100644
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
+++ b/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
@@ -80,6 +80,7 @@
   IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO,
   IPSET_ATTR_MARK,
   IPSET_ATTR_MARKMASK,
+  IPSET_ATTR_BITMASK,
   IPSET_ATTR_CADT_MAX = 16,
   IPSET_ATTR_INITVAL,
   IPSET_ATTR_HASHSIZE,
@@ -138,6 +139,7 @@
   IPSET_ERR_COMMENT,
   IPSET_ERR_INVALID_MARKMASK,
   IPSET_ERR_SKBINFO,
+  IPSET_ERR_BITMASK_NETMASK_EXCL,
   IPSET_ERR_TYPE_SPECIFIC = 4352,
 };
 enum ipset_cmd_flags {
diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables.h b/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 441cd60..f07d7c7 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -86,6 +86,7 @@
   NFT_MSG_NEWFLOWTABLE,
   NFT_MSG_GETFLOWTABLE,
   NFT_MSG_DELFLOWTABLE,
+  NFT_MSG_GETRULE_RESET,
   NFT_MSG_MAX,
 };
 enum nft_list_attributes {
@@ -387,6 +388,7 @@
   NFT_PAYLOAD_NETWORK_HEADER,
   NFT_PAYLOAD_TRANSPORT_HEADER,
   NFT_PAYLOAD_INNER_HEADER,
+  NFT_PAYLOAD_TUN_HEADER,
 };
 enum nft_payload_csum_types {
   NFT_PAYLOAD_CSUM_NONE,
@@ -396,6 +398,28 @@
 enum nft_payload_csum_flags {
   NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0),
 };
+enum nft_inner_type {
+  NFT_INNER_UNSPEC = 0,
+  NFT_INNER_VXLAN,
+  NFT_INNER_GENEVE,
+};
+enum nft_inner_flags {
+  NFT_INNER_HDRSIZE = (1 << 0),
+  NFT_INNER_LL = (1 << 1),
+  NFT_INNER_NH = (1 << 2),
+  NFT_INNER_TH = (1 << 3),
+};
+#define NFT_INNER_MASK (NFT_INNER_HDRSIZE | NFT_INNER_LL | NFT_INNER_NH | NFT_INNER_TH)
+enum nft_inner_attributes {
+  NFTA_INNER_UNSPEC,
+  NFTA_INNER_NUM,
+  NFTA_INNER_TYPE,
+  NFTA_INNER_FLAGS,
+  NFTA_INNER_HDRSIZE,
+  NFTA_INNER_EXPR,
+  __NFTA_INNER_MAX
+};
+#define NFTA_INNER_MAX (__NFTA_INNER_MAX - 1)
 enum nft_payload_attributes {
   NFTA_PAYLOAD_UNSPEC,
   NFTA_PAYLOAD_DREG,
diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h
index faff80a..83fe597 100644
--- a/libc/kernel/uapi/linux/nl80211.h
+++ b/libc/kernel/uapi/linux/nl80211.h
@@ -527,6 +527,7 @@
   NL80211_ATTR_MLD_CAPA_AND_OPS,
   NL80211_ATTR_TX_HW_TIMESTAMP,
   NL80211_ATTR_RX_HW_TIMESTAMP,
+  NL80211_ATTR_TD_BITMAP,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
diff --git a/libc/kernel/uapi/linux/openvswitch.h b/libc/kernel/uapi/linux/openvswitch.h
index c44e950..0226e93 100644
--- a/libc/kernel/uapi/linux/openvswitch.h
+++ b/libc/kernel/uapi/linux/openvswitch.h
@@ -131,9 +131,16 @@
   OVS_VPORT_ATTR_PAD,
   OVS_VPORT_ATTR_IFINDEX,
   OVS_VPORT_ATTR_NETNSID,
+  OVS_VPORT_ATTR_UPCALL_STATS,
   __OVS_VPORT_ATTR_MAX
 };
 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
+enum ovs_vport_upcall_attr {
+  OVS_VPORT_UPCALL_ATTR_SUCCESS,
+  OVS_VPORT_UPCALL_ATTR_FAIL,
+  __OVS_VPORT_UPCALL_ATTR_MAX
+};
+#define OVS_VPORT_UPCALL_ATTR_MAX (__OVS_VPORT_UPCALL_ATTR_MAX - 1)
 enum {
   OVS_VXLAN_EXT_UNSPEC,
   OVS_VXLAN_EXT_GBP,
diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h
index 87549aa..f932c18 100644
--- a/libc/kernel/uapi/linux/pci_regs.h
+++ b/libc/kernel/uapi/linux/pci_regs.h
@@ -902,6 +902,7 @@
 #define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34
 #define PCI_PTM_CAP 0x04
 #define PCI_PTM_CAP_REQ 0x00000001
+#define PCI_PTM_CAP_RES 0x00000002
 #define PCI_PTM_CAP_ROOT 0x00000004
 #define PCI_PTM_GRANULARITY_MASK 0x0000FF00
 #define PCI_PTM_CTRL 0x08
@@ -953,6 +954,7 @@
 #define PCI_DOE_STATUS_DATA_OBJECT_READY 0x80000000
 #define PCI_DOE_WRITE 0x10
 #define PCI_DOE_READ 0x14
+#define PCI_DOE_CAP_SIZEOF 0x18
 #define PCI_DOE_DATA_OBJECT_HEADER_1_VID 0x0000ffff
 #define PCI_DOE_DATA_OBJECT_HEADER_1_TYPE 0x00ff0000
 #define PCI_DOE_DATA_OBJECT_HEADER_2_LENGTH 0x0003ffff
diff --git a/libc/kernel/uapi/linux/pr.h b/libc/kernel/uapi/linux/pr.h
index 7a7b8b1..b3128ee 100644
--- a/libc/kernel/uapi/linux/pr.h
+++ b/libc/kernel/uapi/linux/pr.h
@@ -19,6 +19,14 @@
 #ifndef _UAPI_PR_H
 #define _UAPI_PR_H
 #include <linux/types.h>
+enum pr_status {
+  PR_STS_SUCCESS = 0x0,
+  PR_STS_IOERR = 0x2,
+  PR_STS_RESERVATION_CONFLICT = 0x18,
+  PR_STS_RETRY_PATH_FAILURE = 0xe0000,
+  PR_STS_PATH_FAST_FAILED = 0xf0000,
+  PR_STS_PATH_FAILED = 0x10000,
+};
 enum pr_type {
   PR_WRITE_EXCLUSIVE = 1,
   PR_EXCLUSIVE_ACCESS = 2,
diff --git a/libc/kernel/uapi/linux/psci.h b/libc/kernel/uapi/linux/psci.h
index 4dead17..ea8ce59 100644
--- a/libc/kernel/uapi/linux/psci.h
+++ b/libc/kernel/uapi/linux/psci.h
@@ -48,14 +48,14 @@
 #define PSCI_1_0_FN_STAT_COUNT PSCI_0_2_FN(17)
 #define PSCI_1_1_FN_SYSTEM_RESET2 PSCI_0_2_FN(18)
 #define PSCI_1_1_FN_MEM_PROTECT PSCI_0_2_FN(19)
-#define PSCI_1_1_FN_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN(19)
+#define PSCI_1_1_FN_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN(20)
 #define PSCI_1_0_FN64_CPU_DEFAULT_SUSPEND PSCI_0_2_FN64(12)
 #define PSCI_1_0_FN64_NODE_HW_STATE PSCI_0_2_FN64(13)
 #define PSCI_1_0_FN64_SYSTEM_SUSPEND PSCI_0_2_FN64(14)
 #define PSCI_1_0_FN64_STAT_RESIDENCY PSCI_0_2_FN64(16)
 #define PSCI_1_0_FN64_STAT_COUNT PSCI_0_2_FN64(17)
 #define PSCI_1_1_FN64_SYSTEM_RESET2 PSCI_0_2_FN64(18)
-#define PSCI_1_1_FN64_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN64(19)
+#define PSCI_1_1_FN64_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN64(20)
 #define PSCI_0_2_POWER_STATE_ID_MASK 0xffff
 #define PSCI_0_2_POWER_STATE_ID_SHIFT 0
 #define PSCI_0_2_POWER_STATE_TYPE_SHIFT 16
diff --git a/libc/kernel/uapi/linux/sed-opal.h b/libc/kernel/uapi/linux/sed-opal.h
index f7ac9bd..4c66231 100644
--- a/libc/kernel/uapi/linux/sed-opal.h
+++ b/libc/kernel/uapi/linux/sed-opal.h
@@ -46,6 +46,9 @@
   OPAL_RW = 0x02,
   OPAL_LK = 0x04,
 };
+enum opal_lock_flags {
+  OPAL_SAVE_FOR_LOCK = 0x01,
+};
 struct opal_key {
   __u8 lr;
   __u8 key_len;
@@ -74,7 +77,8 @@
 struct opal_lock_unlock {
   struct opal_session_info session;
   __u32 l_state;
-  __u8 __align[4];
+  __u16 flags;
+  __u8 __align[2];
 };
 struct opal_new_pw {
   struct opal_session_info session;
diff --git a/libc/kernel/uapi/linux/snmp.h b/libc/kernel/uapi/linux/snmp.h
index d98f39e..e3d6ee3 100644
--- a/libc/kernel/uapi/linux/snmp.h
+++ b/libc/kernel/uapi/linux/snmp.h
@@ -259,6 +259,7 @@
   LINUX_MIB_TCPDSACKIGNOREDDUBIOUS,
   LINUX_MIB_TCPMIGRATEREQSUCCESS,
   LINUX_MIB_TCPMIGRATEREQFAILURE,
+  LINUX_MIB_TCPPLBREHASH,
   __LINUX_MIB_MAX
 };
 enum {
diff --git a/libc/kernel/uapi/linux/swab.h b/libc/kernel/uapi/linux/swab.h
index e96085e..332023a 100644
--- a/libc/kernel/uapi/linux/swab.h
+++ b/libc/kernel/uapi/linux/swab.h
@@ -19,7 +19,7 @@
 #ifndef _UAPI_LINUX_SWAB_H
 #define _UAPI_LINUX_SWAB_H
 #include <linux/types.h>
-#include <linux/compiler.h>
+#include <linux/stddef.h>
 #include <asm/bitsperlong.h>
 #include <asm/swab.h>
 #define ___constant_swab16(x) ((__u16) ((((__u16) (x) & (__u16) 0x00ffU) << 8) | (((__u16) (x) & (__u16) 0xff00U) >> 8)))
diff --git a/libc/kernel/uapi/linux/tc_act/tc_ct.h b/libc/kernel/uapi/linux/tc_act/tc_ct.h
index 0443b95..be83c60 100644
--- a/libc/kernel/uapi/linux/tc_act/tc_ct.h
+++ b/libc/kernel/uapi/linux/tc_act/tc_ct.h
@@ -37,6 +37,9 @@
   TCA_CT_NAT_PORT_MIN,
   TCA_CT_NAT_PORT_MAX,
   TCA_CT_PAD,
+  TCA_CT_HELPER_NAME,
+  TCA_CT_HELPER_FAMILY,
+  TCA_CT_HELPER_PROTO,
   __TCA_CT_MAX
 };
 #define TCA_CT_MAX (__TCA_CT_MAX - 1)
diff --git a/libc/kernel/uapi/linux/tcp.h b/libc/kernel/uapi/linux/tcp.h
index c96d695..7a93208 100644
--- a/libc/kernel/uapi/linux/tcp.h
+++ b/libc/kernel/uapi/linux/tcp.h
@@ -192,6 +192,8 @@
   __u32 tcpi_reord_seen;
   __u32 tcpi_rcv_ooopack;
   __u32 tcpi_snd_wnd;
+  __u32 tcpi_rcv_wnd;
+  __u32 tcpi_rehash;
 };
 enum {
   TCP_NLA_PAD,
@@ -221,6 +223,7 @@
   TCP_NLA_BYTES_NOTSENT,
   TCP_NLA_EDT,
   TCP_NLA_TTL,
+  TCP_NLA_REHASH,
 };
 #define TCP_MD5SIG_MAXKEYLEN 80
 #define TCP_MD5SIG_FLAG_PREFIX 0x1
diff --git a/libc/kernel/uapi/linux/tdx-guest.h b/libc/kernel/uapi/linux/tdx-guest.h
new file mode 100644
index 0000000..50f9c62
--- /dev/null
+++ b/libc/kernel/uapi/linux/tdx-guest.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _UAPI_LINUX_TDX_GUEST_H_
+#define _UAPI_LINUX_TDX_GUEST_H_
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define TDX_REPORTDATA_LEN 64
+#define TDX_REPORT_LEN 1024
+struct tdx_report_req {
+  __u8 reportdata[TDX_REPORTDATA_LEN];
+  __u8 tdreport[TDX_REPORT_LEN];
+};
+#define TDX_CMD_GET_REPORT0 _IOWR('T', 1, struct tdx_report_req)
+#endif
diff --git a/libc/kernel/uapi/linux/usb/g_uvc.h b/libc/kernel/uapi/linux/usb/g_uvc.h
index 0aeba3d..40fad1d 100644
--- a/libc/kernel/uapi/linux/usb/g_uvc.h
+++ b/libc/kernel/uapi/linux/usb/g_uvc.h
@@ -29,6 +29,8 @@
 #define UVC_EVENT_SETUP (V4L2_EVENT_PRIVATE_START + 4)
 #define UVC_EVENT_DATA (V4L2_EVENT_PRIVATE_START + 5)
 #define UVC_EVENT_LAST (V4L2_EVENT_PRIVATE_START + 5)
+#define UVC_STRING_CONTROL_IDX 0
+#define UVC_STRING_STREAMING_IDX 1
 struct uvc_request_data {
   __s32 length;
   __u8 data[60];
diff --git a/libc/kernel/uapi/linux/usb/video.h b/libc/kernel/uapi/linux/usb/video.h
index b45bada..c3d360a 100644
--- a/libc/kernel/uapi/linux/usb/video.h
+++ b/libc/kernel/uapi/linux/usb/video.h
@@ -316,7 +316,7 @@
   __u8 bDefaultFrameIndex;
   __u8 bAspectRatioX;
   __u8 bAspectRatioY;
-  __u8 bmInterfaceFlags;
+  __u8 bmInterlaceFlags;
   __u8 bCopyProtect;
 } __attribute__((__packed__));
 #define UVC_DT_FORMAT_UNCOMPRESSED_SIZE 27
@@ -349,7 +349,7 @@
   __u8 bDefaultFrameIndex;
   __u8 bAspectRatioX;
   __u8 bAspectRatioY;
-  __u8 bmInterfaceFlags;
+  __u8 bmInterlaceFlags;
   __u8 bCopyProtect;
 } __attribute__((__packed__));
 #define UVC_DT_FORMAT_MJPEG_SIZE 11
diff --git a/libc/kernel/uapi/linux/v4l2-controls.h b/libc/kernel/uapi/linux/v4l2-controls.h
index 276ecaa..a6e70c0 100644
--- a/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/libc/kernel/uapi/linux/v4l2-controls.h
@@ -121,6 +121,7 @@
 #define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
 #define V4L2_CID_USER_ISL7998X_BASE (V4L2_CID_USER_BASE + 0x1180)
 #define V4L2_CID_USER_DW100_BASE (V4L2_CID_USER_BASE + 0x1190)
+#define V4L2_CID_USER_ASPEED_BASE (V4L2_CID_USER_BASE + 0x11a0)
 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE + 0)
@@ -850,6 +851,7 @@
 #define V4L2_CAMERA_ORIENTATION_BACK 1
 #define V4L2_CAMERA_ORIENTATION_EXTERNAL 2
 #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE + 35)
+#define V4L2_CID_HDR_SENSOR_MODE (V4L2_CID_CAMERA_CLASS_BASE + 36)
 #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900)
 #define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1)
 #define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1)
diff --git a/libc/kernel/uapi/linux/vdpa.h b/libc/kernel/uapi/linux/vdpa.h
index ed61cdd..989a61b 100644
--- a/libc/kernel/uapi/linux/vdpa.h
+++ b/libc/kernel/uapi/linux/vdpa.h
@@ -53,7 +53,6 @@
   VDPA_ATTR_DEV_VENDOR_ATTR_NAME,
   VDPA_ATTR_DEV_VENDOR_ATTR_VALUE,
   VDPA_ATTR_DEV_FEATURES,
-  VDPA_ATTR_VDPA_DEV_SUPPORTED_FEATURES,
   VDPA_ATTR_MAX,
 };
 #endif
diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h
index ab95caf..0d50613 100644
--- a/libc/kernel/uapi/linux/version.h
+++ b/libc/kernel/uapi/linux/version.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#define LINUX_VERSION_CODE 393472
+#define LINUX_VERSION_CODE 393728
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 6
-#define LINUX_VERSION_PATCHLEVEL 1
+#define LINUX_VERSION_PATCHLEVEL 2
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/libc/kernel/uapi/linux/vfio.h b/libc/kernel/uapi/linux/vfio.h
index dffa136..7dc3440 100644
--- a/libc/kernel/uapi/linux/vfio.h
+++ b/libc/kernel/uapi/linux/vfio.h
@@ -289,6 +289,7 @@
   __aligned_u64 flags;
 #define VFIO_MIGRATION_STOP_COPY (1 << 0)
 #define VFIO_MIGRATION_P2P (1 << 1)
+#define VFIO_MIGRATION_PRE_COPY (1 << 2)
 };
 #define VFIO_DEVICE_FEATURE_MIGRATION 1
 struct vfio_device_feature_mig_state {
@@ -303,7 +304,16 @@
   VFIO_DEVICE_STATE_STOP_COPY = 3,
   VFIO_DEVICE_STATE_RESUMING = 4,
   VFIO_DEVICE_STATE_RUNNING_P2P = 5,
+  VFIO_DEVICE_STATE_PRE_COPY = 6,
+  VFIO_DEVICE_STATE_PRE_COPY_P2P = 7,
 };
+struct vfio_precopy_info {
+  __u32 argsz;
+  __u32 flags;
+  __aligned_u64 initial_bytes;
+  __aligned_u64 dirty_bytes;
+};
+#define VFIO_MIG_GET_PRECOPY_INFO _IO(VFIO_TYPE, VFIO_BASE + 21)
 #define VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY 3
 struct vfio_device_low_power_entry_with_wakeup {
   __s32 wakeup_eventfd;
@@ -330,6 +340,10 @@
   __aligned_u64 bitmap;
 };
 #define VFIO_DEVICE_FEATURE_DMA_LOGGING_REPORT 8
+struct vfio_device_feature_mig_data_size {
+  __aligned_u64 stop_copy_length;
+};
+#define VFIO_DEVICE_FEATURE_MIG_DATA_SIZE 9
 struct vfio_iommu_type1_info {
   __u32 argsz;
   __u32 flags;
diff --git a/libc/kernel/uapi/linux/videodev2.h b/libc/kernel/uapi/linux/videodev2.h
index 3d8dd72..d418fd2 100644
--- a/libc/kernel/uapi/linux/videodev2.h
+++ b/libc/kernel/uapi/linux/videodev2.h
@@ -302,6 +302,8 @@
 #define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2')
 #define V4L2_PIX_FMT_P010_4L4 v4l2_fourcc('T', '0', '1', '0')
+#define V4L2_PIX_FMT_NV12_8L128 v4l2_fourcc('A', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12_10BE_8L128 v4l2_fourcc_be('A', 'X', '1', '2')
 #define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12M_8L128 v4l2_fourcc('N', 'A', '1', '2')
@@ -408,6 +410,7 @@
 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
 #define V4L2_PIX_FMT_QC08C v4l2_fourcc('Q', '0', '8', 'C')
 #define V4L2_PIX_FMT_QC10C v4l2_fourcc('Q', '1', '0', 'C')
+#define V4L2_PIX_FMT_AJPG v4l2_fourcc('A', 'J', 'P', 'G')
 #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
 #define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g')
 #define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G')
@@ -896,6 +899,8 @@
     __u8 __user * p_u8;
     __u16 __user * p_u16;
     __u32 __user * p_u32;
+    __u32 __user * p_s32;
+    __u32 __user * p_s64;
     struct v4l2_area __user * p_area;
     struct v4l2_ctrl_h264_sps __user * p_h264_sps;
     struct v4l2_ctrl_h264_pps * p_h264_pps;
diff --git a/libc/kernel/uapi/linux/virtio_bt.h b/libc/kernel/uapi/linux/virtio_bt.h
index 7e29eaa..9049adc 100644
--- a/libc/kernel/uapi/linux/virtio_bt.h
+++ b/libc/kernel/uapi/linux/virtio_bt.h
@@ -22,6 +22,7 @@
 #define VIRTIO_BT_F_VND_HCI 0
 #define VIRTIO_BT_F_MSFT_EXT 1
 #define VIRTIO_BT_F_AOSP_EXT 2
+#define VIRTIO_BT_F_CONFIG_V2 3
 enum virtio_bt_config_type {
   VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
   VIRTIO_BT_CONFIG_TYPE_AMP = 1,
@@ -37,4 +38,10 @@
   __u16 vendor;
   __u16 msft_opcode;
 } __attribute__((packed));
+struct virtio_bt_config_v2 {
+  __u8 type;
+  __u8 alignment;
+  __u16 vendor;
+  __u16 msft_opcode;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/virtio_net.h b/libc/kernel/uapi/linux/virtio_net.h
index 6fe90aa..da7285e 100644
--- a/libc/kernel/uapi/linux/virtio_net.h
+++ b/libc/kernel/uapi/linux/virtio_net.h
@@ -46,6 +46,9 @@
 #define VIRTIO_NET_F_MQ 22
 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23
 #define VIRTIO_NET_F_NOTF_COAL 53
+#define VIRTIO_NET_F_GUEST_USO4 54
+#define VIRTIO_NET_F_GUEST_USO6 55
+#define VIRTIO_NET_F_HOST_USO 56
 #define VIRTIO_NET_F_HASH_REPORT 57
 #define VIRTIO_NET_F_RSS 60
 #define VIRTIO_NET_F_RSC_EXT 61
@@ -85,6 +88,7 @@
 #define VIRTIO_NET_HDR_GSO_TCPV4 1
 #define VIRTIO_NET_HDR_GSO_UDP 3
 #define VIRTIO_NET_HDR_GSO_TCPV6 4
+#define VIRTIO_NET_HDR_GSO_UDP_L4 5
 #define VIRTIO_NET_HDR_GSO_ECN 0x80
   __u8 gso_type;
   __virtio16 hdr_len;
diff --git a/libc/kernel/uapi/linux/xfrm.h b/libc/kernel/uapi/linux/xfrm.h
index 77ded42..b8a2efc 100644
--- a/libc/kernel/uapi/linux/xfrm.h
+++ b/libc/kernel/uapi/linux/xfrm.h
@@ -435,6 +435,7 @@
 };
 #define XFRM_OFFLOAD_IPV6 1
 #define XFRM_OFFLOAD_INBOUND 2
+#define XFRM_OFFLOAD_PACKET 4
 struct xfrm_userpolicy_default {
 #define XFRM_USERPOLICY_UNSPEC 0
 #define XFRM_USERPOLICY_BLOCK 1
diff --git a/libc/kernel/uapi/misc/fastrpc.h b/libc/kernel/uapi/misc/fastrpc.h
index e82b961..336ecf2 100644
--- a/libc/kernel/uapi/misc/fastrpc.h
+++ b/libc/kernel/uapi/misc/fastrpc.h
@@ -27,6 +27,7 @@
 #define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap)
 #define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap)
 #define FASTRPC_IOCTL_INIT_ATTACH_SNS _IO('R', 8)
+#define FASTRPC_IOCTL_INIT_CREATE_STATIC _IOWR('R', 9, struct fastrpc_init_create_static)
 #define FASTRPC_IOCTL_MEM_MAP _IOWR('R', 10, struct fastrpc_mem_map)
 #define FASTRPC_IOCTL_MEM_UNMAP _IOWR('R', 11, struct fastrpc_mem_unmap)
 #define FASTRPC_IOCTL_GET_DSP_INFO _IOWR('R', 13, struct fastrpc_ioctl_capability)
@@ -66,6 +67,11 @@
   __u32 siglen;
   __u64 file;
 };
+struct fastrpc_init_create_static {
+  __u32 namelen;
+  __u32 memlen;
+  __u64 name;
+};
 struct fastrpc_alloc_dma_buf {
   __s32 fd;
   __u32 flags;
diff --git a/libc/kernel/uapi/misc/habanalabs.h b/libc/kernel/uapi/misc/habanalabs.h
index b6140bc..b25c833 100644
--- a/libc/kernel/uapi/misc/habanalabs.h
+++ b/libc/kernel/uapi/misc/habanalabs.h
@@ -549,6 +549,10 @@
   GAUDI2_ENGINE_ID_NIC10_1,
   GAUDI2_ENGINE_ID_NIC11_0,
   GAUDI2_ENGINE_ID_NIC11_1,
+  GAUDI2_ENGINE_ID_PCIE,
+  GAUDI2_ENGINE_ID_PSOC,
+  GAUDI2_ENGINE_ID_ARC_FARM,
+  GAUDI2_ENGINE_ID_KDMA,
   GAUDI2_ENGINE_ID_SIZE
 };
 enum hl_goya_pll_index {
@@ -624,6 +628,8 @@
 #define HL_NOTIFIER_EVENT_DEVICE_UNAVAILABLE (1ULL << 4)
 #define HL_NOTIFIER_EVENT_USER_ENGINE_ERR (1ULL << 5)
 #define HL_NOTIFIER_EVENT_GENERAL_HW_ERR (1ULL << 6)
+#define HL_NOTIFIER_EVENT_RAZWI (1ULL << 7)
+#define HL_NOTIFIER_EVENT_PAGE_FAULT (1ULL << 8)
 #define HL_INFO_HW_IP_INFO 0
 #define HL_INFO_HW_EVENTS 1
 #define HL_INFO_DRAM_USAGE 2
@@ -654,6 +660,8 @@
 #define HL_INFO_GET_EVENTS 30
 #define HL_INFO_UNDEFINED_OPCODE_EVENT 31
 #define HL_INFO_ENGINE_STATUS 32
+#define HL_INFO_PAGE_FAULT_EVENT 33
+#define HL_INFO_USER_MAPPINGS 34
 #define HL_INFO_VERSION_MAX_LEN 128
 #define HL_INFO_CARD_NAME_MAX_LEN 16
 #define HL_ENGINES_DATA_MAX_SIZE SZ_1M
@@ -686,12 +694,18 @@
   __u16 pad2;
   __u64 reserved4;
   __u64 device_mem_alloc_default_page_size;
+  __u64 reserved5;
+  __u64 reserved6;
+  __u32 reserved7;
+  __u8 reserved8;
+  __u8 revision_id;
+  __u8 pad[2];
 };
 struct hl_info_dram_usage {
   __u64 dram_free_mem;
   __u64 ctx_dram_mem;
 };
-#define HL_BUSY_ENGINES_MASK_EXT_SIZE 2
+#define HL_BUSY_ENGINES_MASK_EXT_SIZE 4
 struct hl_info_hw_idle {
   __u32 is_idle;
   __u32 busy_engines_mask;
@@ -779,16 +793,21 @@
   __s64 timestamp;
   __u64 seq;
 };
-#define HL_RAZWI_PAGE_FAULT 0
-#define HL_RAZWI_MMU_ACCESS_ERROR 1
+#define HL_RAZWI_NA_ENG_ID U16_MAX
+#define HL_RAZWI_MAX_NUM_OF_ENGINES_PER_RTR 128
+#define HL_RAZWI_READ BIT(0)
+#define HL_RAZWI_WRITE BIT(1)
+#define HL_RAZWI_LBW BIT(2)
+#define HL_RAZWI_HBW BIT(3)
+#define HL_RAZWI_RR BIT(4)
+#define HL_RAZWI_ADDR_DEC BIT(5)
 struct hl_info_razwi_event {
   __s64 timestamp;
   __u64 addr;
-  __u16 engine_id_1;
-  __u16 engine_id_2;
-  __u8 no_engine_id;
-  __u8 error_type;
-  __u8 pad[2];
+  __u16 engine_id[HL_RAZWI_MAX_NUM_OF_ENGINES_PER_RTR];
+  __u16 num_of_possible_engines;
+  __u8 flags;
+  __u8 pad[5];
 };
 #define MAX_QMAN_STREAMS_INFO 4
 #define OPCODE_INFO_MAX_ADDR_SIZE 8
@@ -824,6 +843,16 @@
   __u8 certificate[SEC_CERTIFICATE_BUF_SZ];
   __u8 pad0[2];
 };
+struct hl_page_fault_info {
+  __s64 timestamp;
+  __u64 addr;
+  __u16 engine_id;
+  __u8 pad[6];
+};
+struct hl_user_mapping {
+  __u64 dev_va;
+  __u64 size;
+};
 enum gaudi_dcores {
   HL_GAUDI_WS_DCORE,
   HL_GAUDI_WN_DCORE,
@@ -842,6 +871,7 @@
     __u32 eventfd;
     __u32 user_buffer_actual_size;
     __u32 sec_attest_nonce;
+    __u32 array_size;
   };
   __u32 pad;
 };
diff --git a/libc/kernel/uapi/rdma/hns-abi.h b/libc/kernel/uapi/rdma/hns-abi.h
index 9c8d028..0407571 100644
--- a/libc/kernel/uapi/rdma/hns-abi.h
+++ b/libc/kernel/uapi/rdma/hns-abi.h
@@ -60,11 +60,23 @@
   __aligned_u64 cap_flags;
   __aligned_u64 dwqe_mmap_key;
 };
+enum {
+  HNS_ROCE_EXSGE_FLAGS = 1 << 0,
+};
+enum {
+  HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0,
+};
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
   __u32 cqe_size;
   __u32 srq_tab_size;
   __u32 reserved;
+  __u32 config;
+  __u32 max_inline_data;
+};
+struct hns_roce_ib_alloc_ucontext {
+  __u32 config;
+  __u32 reserved;
 };
 struct hns_roce_ib_alloc_pd_resp {
   __u32 pdn;
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index 766d5be..6b9a436 100644
--- a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -37,6 +37,8 @@
   IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5,
   IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6,
   IB_UVERBS_ACCESS_HUGETLB = 1 << 7,
+  IB_UVERBS_ACCESS_FLUSH_GLOBAL = 1 << 8,
+  IB_UVERBS_ACCESS_FLUSH_PERSISTENT = 1 << 9,
   IB_UVERBS_ACCESS_RELAXED_ORDERING = IB_UVERBS_ACCESS_OPTIONAL_FIRST,
   IB_UVERBS_ACCESS_OPTIONAL_RANGE = ((IB_UVERBS_ACCESS_OPTIONAL_LAST << 1) - 1) & ~(IB_UVERBS_ACCESS_OPTIONAL_FIRST - 1)
 };
@@ -192,6 +194,7 @@
   RDMA_DRIVER_EFA,
   RDMA_DRIVER_SIW,
   RDMA_DRIVER_ERDMA,
+  RDMA_DRIVER_MANA,
 };
 enum ib_uverbs_gid_type {
   IB_UVERBS_GID_TYPE_IB,
diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h
index 552c80a..6894bf1 100644
--- a/libc/kernel/uapi/rdma/ib_user_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_verbs.h
@@ -78,6 +78,14 @@
   IB_USER_VERBS_EX_CMD_DESTROY_RWQ_IND_TBL,
   IB_USER_VERBS_EX_CMD_MODIFY_CQ
 };
+enum ib_placement_type {
+  IB_FLUSH_GLOBAL = 1U << 0,
+  IB_FLUSH_PERSISTENT = 1U << 1,
+};
+enum ib_selectivity_level {
+  IB_FLUSH_RANGE = 0,
+  IB_FLUSH_MR,
+};
 struct ib_uverbs_async_event_desc {
   __aligned_u64 element;
   __u32 event_type;
@@ -370,6 +378,8 @@
   IB_UVERBS_WC_BIND_MW = 5,
   IB_UVERBS_WC_LOCAL_INV = 6,
   IB_UVERBS_WC_TSO = 7,
+  IB_UVERBS_WC_FLUSH = 8,
+  IB_UVERBS_WC_ATOMIC_WRITE = 9,
 };
 struct ib_uverbs_wc {
   __aligned_u64 wr_id;
@@ -648,6 +658,8 @@
   IB_UVERBS_WR_RDMA_READ_WITH_INV = 11,
   IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
   IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
+  IB_UVERBS_WR_FLUSH = 14,
+  IB_UVERBS_WR_ATOMIC_WRITE = 15,
 };
 struct ib_uverbs_send_wr {
   __aligned_u64 wr_id;
@@ -1105,6 +1117,9 @@
   IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING = 1 << 29,
   IB_UVERBS_DEVICE_RAW_SCATTER_FCS = 1ULL << 34,
   IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING = 1ULL << 36,
+  IB_UVERBS_DEVICE_FLUSH_GLOBAL = 1ULL << 38,
+  IB_UVERBS_DEVICE_FLUSH_PERSISTENT = 1ULL << 39,
+  IB_UVERBS_DEVICE_ATOMIC_WRITE = 1ULL << 40,
 };
 enum ib_uverbs_raw_packet_caps {
   IB_UVERBS_RAW_PACKET_CAP_CVLAN_STRIPPING = 1 << 0,
diff --git a/libc/kernel/uapi/rdma/mana-abi.h b/libc/kernel/uapi/rdma/mana-abi.h
new file mode 100644
index 0000000..4f1a73f
--- /dev/null
+++ b/libc/kernel/uapi/rdma/mana-abi.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef MANA_ABI_USER_H
+#define MANA_ABI_USER_H
+#include <linux/types.h>
+#include <rdma/ib_user_ioctl_verbs.h>
+#define MANA_IB_UVERBS_ABI_VERSION 1
+struct mana_ib_create_cq {
+  __aligned_u64 buf_addr;
+};
+struct mana_ib_create_qp {
+  __aligned_u64 sq_buf_addr;
+  __u32 sq_buf_size;
+  __u32 port;
+};
+struct mana_ib_create_qp_resp {
+  __u32 sqid;
+  __u32 cqid;
+  __u32 tx_vp_offset;
+  __u32 reserved;
+};
+struct mana_ib_create_wq {
+  __aligned_u64 wq_buf_addr;
+  __u32 wq_buf_size;
+  __u32 reserved;
+};
+enum mana_ib_rx_hash_function_flags {
+  MANA_IB_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
+};
+struct mana_ib_create_qp_rss {
+  __aligned_u64 rx_hash_fields_mask;
+  __u8 rx_hash_function;
+  __u8 reserved[7];
+  __u32 rx_hash_key_len;
+  __u8 rx_hash_key[40];
+  __u32 port;
+};
+struct rss_resp_entry {
+  __u32 cqid;
+  __u32 wqid;
+};
+struct mana_ib_create_qp_rss_resp {
+  __aligned_u64 num_entries;
+  struct rss_resp_entry entries[64];
+};
+#endif
diff --git a/libc/kernel/uapi/rdma/rdma_user_rxe.h b/libc/kernel/uapi/rdma/rdma_user_rxe.h
index 2476699..e7619d8 100644
--- a/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -62,6 +62,13 @@
   union {
     struct {
       __aligned_u64 remote_addr;
+      __u32 length;
+      __u32 rkey;
+      __u8 type;
+      __u8 level;
+    } flush;
+    struct {
+      __aligned_u64 remote_addr;
       __u32 rkey;
       __u32 reserved;
     } rdma;
@@ -110,6 +117,7 @@
   __u32 reserved;
   union {
     __DECLARE_FLEX_ARRAY(__u8, inline_data);
+    __DECLARE_FLEX_ARRAY(__u8, atomic_wr);
     __DECLARE_FLEX_ARRAY(struct rxe_sge, sge);
   };
 };
diff --git a/libc/kernel/uapi/sound/asequencer.h b/libc/kernel/uapi/sound/asequencer.h
index ac72736..0076933 100644
--- a/libc/kernel/uapi/sound/asequencer.h
+++ b/libc/kernel/uapi/sound/asequencer.h
@@ -212,10 +212,10 @@
 #define NO_CLIENT ((__force snd_seq_client_type_t) 0)
 #define USER_CLIENT ((__force snd_seq_client_type_t) 1)
 #define KERNEL_CLIENT ((__force snd_seq_client_type_t) 2)
-#define SNDRV_SEQ_FILTER_BROADCAST (1 << 0)
-#define SNDRV_SEQ_FILTER_MULTICAST (1 << 1)
-#define SNDRV_SEQ_FILTER_BOUNCE (1 << 2)
-#define SNDRV_SEQ_FILTER_USE_EVENT (1 << 31)
+#define SNDRV_SEQ_FILTER_BROADCAST (1U << 0)
+#define SNDRV_SEQ_FILTER_MULTICAST (1U << 1)
+#define SNDRV_SEQ_FILTER_BOUNCE (1U << 2)
+#define SNDRV_SEQ_FILTER_USE_EVENT (1U << 31)
 struct snd_seq_client_info {
   int client;
   snd_seq_client_type_t type;
diff --git a/libc/kernel/uapi/sound/snd_ar_tokens.h b/libc/kernel/uapi/sound/snd_ar_tokens.h
index 39c0684..7b87caa 100644
--- a/libc/kernel/uapi/sound/snd_ar_tokens.h
+++ b/libc/kernel/uapi/sound/snd_ar_tokens.h
@@ -68,6 +68,27 @@
 #define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
 #define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
 #define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID1 210
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID1 211
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID1 212
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID2 213
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID2 214
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID2 215
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID3 216
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID3 217
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID3 218
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID4 219
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID4 220
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID4 221
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID5 222
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID5 223
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID5 224
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID6 225
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID6 226
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID6 227
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID7 228
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID7 229
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID7 230
 #define AR_TKN_U32_MODULE_HW_IF_IDX 250
 #define AR_TKN_U32_MODULE_HW_IF_TYPE 251
 #define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
diff --git a/libc/kernel/uapi/sound/sof/tokens.h b/libc/kernel/uapi/sound/sof/tokens.h
index b07ed42..3726546 100644
--- a/libc/kernel/uapi/sound/sof/tokens.h
+++ b/libc/kernel/uapi/sound/sof/tokens.h
@@ -59,6 +59,10 @@
 #define SOF_TKN_COMP_CPC 406
 #define SOF_TKN_COMP_IS_PAGES 409
 #define SOF_TKN_COMP_NUM_AUDIO_FORMATS 410
+#define SOF_TKN_COMP_NUM_SINK_PINS 411
+#define SOF_TKN_COMP_NUM_SOURCE_PINS 412
+#define SOF_TKN_COMP_SINK_PIN_BINDING_WNAME 413
+#define SOF_TKN_COMP_SRC_PIN_BINDING_WNAME 414
 #define SOF_TKN_INTEL_SSP_CLKS_CONTROL 500
 #define SOF_TKN_INTEL_SSP_MCLK_ID 501
 #define SOF_TKN_INTEL_SSP_SAMPLE_BITS 502
@@ -123,4 +127,7 @@
 #define SOF_TKN_CAVS_AUDIO_FORMAT_OBS 1971
 #define SOF_TKN_CAVS_AUDIO_FORMAT_DMA_BUFFER_SIZE 1972
 #define SOF_TKN_INTEL_COPIER_NODE_TYPE 1980
+#define SOF_TKN_AMD_ACPI2S_RATE 1700
+#define SOF_TKN_AMD_ACPI2S_CH 1701
+#define SOF_TKN_AMD_ACPI2S_TDM_MODE 1702
 #endif