diff --git a/libc/kernel/uapi/asm-arm/asm/kvm.h b/libc/kernel/uapi/asm-arm/asm/kvm.h
index 448a773..6cbc533 100644
--- a/libc/kernel/uapi/asm-arm/asm/kvm.h
+++ b/libc/kernel/uapi/asm-arm/asm/kvm.h
@@ -101,6 +101,8 @@
 #define KVM_REG_ARM_CRM_SHIFT 7
 #define KVM_REG_ARM_32_CRN_MASK 0x0000000000007800
 #define KVM_REG_ARM_32_CRN_SHIFT 11
+#define KVM_REG_ARM_SECURE_MASK 0x0000000010000000
+#define KVM_REG_ARM_SECURE_SHIFT 28
 #define ARM_CP15_REG_SHIFT_MASK(x,n) (((x) << KVM_REG_ARM_ ##n ##_SHIFT) & KVM_REG_ARM_ ##n ##_MASK)
 #define __ARM_CP15_REG(op1,crn,crm,op2) (KVM_REG_ARM | (15 << KVM_REG_ARM_COPROC_SHIFT) | ARM_CP15_REG_SHIFT_MASK(op1, OPC1) | ARM_CP15_REG_SHIFT_MASK(crn, 32_CRN) | ARM_CP15_REG_SHIFT_MASK(crm, CRM) | ARM_CP15_REG_SHIFT_MASK(op2, 32_OPC2))
 #define ARM_CP15_REG32(...) (__ARM_CP15_REG(__VA_ARGS__) | KVM_REG_SIZE_U32)
@@ -130,6 +132,9 @@
 #define KVM_REG_ARM_VFP_FPEXC 0x1008
 #define KVM_REG_ARM_VFP_FPINST 0x1009
 #define KVM_REG_ARM_VFP_FPINST2 0x100A
+#define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT)
+#define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM | KVM_REG_SIZE_U64 | KVM_REG_ARM_FW | ((r) & 0xffff))
+#define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0)
 #define KVM_DEV_ARM_VGIC_GRP_ADDR 0
 #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
 #define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2
diff --git a/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index 4e95b95..a7cd560 100644
--- a/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -41,4 +41,9 @@
 #define HWCAP_ASIMDDP (1 << 20)
 #define HWCAP_SHA512 (1 << 21)
 #define HWCAP_SVE (1 << 22)
+#define HWCAP_ASIMDFHM (1 << 23)
+#define HWCAP_DIT (1 << 24)
+#define HWCAP_USCAT (1 << 25)
+#define HWCAP_ILRCPC (1 << 26)
+#define HWCAP_FLAGM (1 << 27)
 #endif
diff --git a/libc/kernel/uapi/asm-arm64/asm/kvm.h b/libc/kernel/uapi/asm-arm64/asm/kvm.h
index c4178a1..167d811 100644
--- a/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -123,6 +123,9 @@
 #define KVM_REG_ARM_TIMER_CTL ARM64_SYS_REG(3, 3, 14, 3, 1)
 #define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2)
 #define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2)
+#define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT)
+#define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM64 | KVM_REG_SIZE_U64 | KVM_REG_ARM_FW | ((r) & 0xffff))
+#define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0)
 #define KVM_DEV_ARM_VGIC_GRP_ADDR 0
 #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1
 #define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2
diff --git a/libc/kernel/uapi/asm-generic/mman-common.h b/libc/kernel/uapi/asm-generic/mman-common.h
index e752bb6..6f688a1 100644
--- a/libc/kernel/uapi/asm-generic/mman-common.h
+++ b/libc/kernel/uapi/asm-generic/mman-common.h
@@ -32,6 +32,7 @@
 #define MAP_FIXED 0x10
 #define MAP_ANONYMOUS 0x20
 #define MAP_UNINITIALIZED 0x0
+#define MAP_FIXED_NOREPLACE 0x100000
 #define MLOCK_ONFAULT 0x01
 #define MS_ASYNC 1
 #define MS_INVALIDATE 2
diff --git a/libc/kernel/uapi/asm-generic/poll.h b/libc/kernel/uapi/asm-generic/poll.h
index 11c43df..372bc77 100644
--- a/libc/kernel/uapi/asm-generic/poll.h
+++ b/libc/kernel/uapi/asm-generic/poll.h
@@ -41,8 +41,8 @@
 #ifndef POLLRDHUP
 #define POLLRDHUP 0x2000
 #endif
-#define POLLFREE 0x4000
-#define POLL_BUSY_LOOP 0x8000
+#define POLLFREE (__force __poll_t) 0x4000
+#define POLL_BUSY_LOOP (__force __poll_t) 0x8000
 struct pollfd {
   int fd;
   short events;
diff --git a/libc/kernel/uapi/asm-generic/siginfo.h b/libc/kernel/uapi/asm-generic/siginfo.h
index 669c9d4..af3d98e 100644
--- a/libc/kernel/uapi/asm-generic/siginfo.h
+++ b/libc/kernel/uapi/asm-generic/siginfo.h
@@ -31,9 +31,6 @@
 #ifndef SI_PAD_SIZE
 #define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
 #endif
-#ifndef __ARCH_SI_UID_T
-#define __ARCH_SI_UID_T __kernel_uid32_t
-#endif
 #ifndef __ARCH_SI_BAND_T
 #define __ARCH_SI_BAND_T long
 #endif
@@ -43,32 +40,35 @@
 #ifndef __ARCH_SI_ATTRIBUTES
 #define __ARCH_SI_ATTRIBUTES
 #endif
-#ifndef HAVE_ARCH_SIGINFO_T
 typedef struct siginfo {
   int si_signo;
+#ifndef __ARCH_HAS_SWAPPED_SIGINFO
   int si_errno;
   int si_code;
+#else
+  int si_code;
+  int si_errno;
+#endif
   union {
     int _pad[SI_PAD_SIZE];
     struct {
       __kernel_pid_t _pid;
-      __ARCH_SI_UID_T _uid;
+      __kernel_uid32_t _uid;
     } _kill;
     struct {
       __kernel_timer_t _tid;
       int _overrun;
-      char _pad[sizeof(__ARCH_SI_UID_T) - sizeof(int)];
       sigval_t _sigval;
       int _sys_private;
     } _timer;
     struct {
       __kernel_pid_t _pid;
-      __ARCH_SI_UID_T _uid;
+      __kernel_uid32_t _uid;
       sigval_t _sigval;
     } _rt;
     struct {
       __kernel_pid_t _pid;
-      __ARCH_SI_UID_T _uid;
+      __kernel_uid32_t _uid;
       int _status;
       __ARCH_SI_CLOCK_T _utime;
       __ARCH_SI_CLOCK_T _stime;
@@ -78,13 +78,23 @@
 #ifdef __ARCH_SI_TRAPNO
       int _trapno;
 #endif
-      short _addr_lsb;
+#ifdef __ia64__
+      int _imm;
+      unsigned int _flags;
+      unsigned long _isr;
+#endif
+#define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
       union {
+        short _addr_lsb;
         struct {
+          char _dummy_bnd[__ADDR_BND_PKEY_PAD];
           void __user * _lower;
           void __user * _upper;
         } _addr_bnd;
-        __u32 _pkey;
+        struct {
+          char _dummy_pkey[__ADDR_BND_PKEY_PAD];
+          __u32 _pkey;
+        } _addr_pkey;
       };
     } _sigfault;
     struct {
@@ -98,8 +108,6 @@
     } _sigsys;
   } _sifields;
 } __ARCH_SI_ATTRIBUTES siginfo_t;
-#define __ARCH_SIGSYS
-#endif
 #define si_pid _sifields._kill._pid
 #define si_uid _sifields._kill._uid
 #define si_tid _sifields._timer._tid
@@ -118,14 +126,12 @@
 #define si_addr_lsb _sifields._sigfault._addr_lsb
 #define si_lower _sifields._sigfault._addr_bnd._lower
 #define si_upper _sifields._sigfault._addr_bnd._upper
-#define si_pkey _sifields._sigfault._pkey
+#define si_pkey _sifields._sigfault._addr_pkey._pkey
 #define si_band _sifields._sigpoll._band
 #define si_fd _sifields._sigpoll._fd
-#ifdef __ARCH_SIGSYS
 #define si_call_addr _sifields._sigsys._call_addr
 #define si_syscall _sifields._sigsys._syscall
 #define si_arch _sifields._sigsys._arch
-#endif
 #define SI_USER 0
 #define SI_KERNEL 0x80
 #define SI_QUEUE - 1
@@ -135,6 +141,7 @@
 #define SI_SIGIO - 5
 #define SI_TKILL - 6
 #define SI_DETHREAD - 7
+#define SI_ASYNCNL - 60
 #define SI_FROMUSER(siptr) ((siptr)->si_code <= 0)
 #define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0)
 #define ILL_ILLOPC 1
@@ -145,7 +152,10 @@
 #define ILL_PRVREG 6
 #define ILL_COPROC 7
 #define ILL_BADSTK 8
-#define NSIGILL 8
+#define ILL_BADIADDR 9
+#define __ILL_BREAK 10
+#define __ILL_BNDMOD 11
+#define NSIGILL 11
 #define FPE_INTDIV 1
 #define FPE_INTOVF 2
 #define FPE_FLTDIV 3
@@ -154,12 +164,26 @@
 #define FPE_FLTRES 6
 #define FPE_FLTINV 7
 #define FPE_FLTSUB 8
-#define NSIGFPE 8
+#define __FPE_DECOVF 9
+#define __FPE_DECDIV 10
+#define __FPE_DECERR 11
+#define __FPE_INVASC 12
+#define __FPE_INVDEC 13
+#define FPE_FLTUNK 14
+#define FPE_CONDTRAP 15
+#define NSIGFPE 15
 #define SEGV_MAPERR 1
 #define SEGV_ACCERR 2
 #define SEGV_BNDERR 3
+#ifdef __ia64__
+#define __SEGV_PSTKOVF 4
+#else
 #define SEGV_PKUERR 4
-#define NSIGSEGV 4
+#endif
+#define SEGV_ACCADI 5
+#define SEGV_ADIDERR 6
+#define SEGV_ADIPERR 7
+#define NSIGSEGV 7
 #define BUS_ADRALN 1
 #define BUS_ADRERR 2
 #define BUS_OBJERR 3
diff --git a/libc/kernel/uapi/asm-generic/unistd.h b/libc/kernel/uapi/asm-generic/unistd.h
index 83c41f9..39b7c1a 100644
--- a/libc/kernel/uapi/asm-generic/unistd.h
+++ b/libc/kernel/uapi/asm-generic/unistd.h
@@ -319,89 +319,6 @@
 #define __NR_statx 291
 #undef __NR_syscalls
 #define __NR_syscalls 292
-#ifdef __ARCH_WANT_SYSCALL_NO_AT
-#define __NR_open 1024
-#define __NR_link 1025
-#define __NR_unlink 1026
-#define __NR_mknod 1027
-#define __NR_chmod 1028
-#define __NR_chown 1029
-#define __NR_mkdir 1030
-#define __NR_rmdir 1031
-#define __NR_lchown 1032
-#define __NR_access 1033
-#define __NR_rename 1034
-#define __NR_readlink 1035
-#define __NR_symlink 1036
-#define __NR_utimes 1037
-#define __NR3264_stat 1038
-#define __NR3264_lstat 1039
-#undef __NR_syscalls
-#define __NR_syscalls (__NR3264_lstat + 1)
-#endif
-#ifdef __ARCH_WANT_SYSCALL_NO_FLAGS
-#define __NR_pipe 1040
-#define __NR_dup2 1041
-#define __NR_epoll_create 1042
-#define __NR_inotify_init 1043
-#define __NR_eventfd 1044
-#define __NR_signalfd 1045
-#undef __NR_syscalls
-#define __NR_syscalls (__NR_signalfd + 1)
-#endif
-#if (__BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)) && defined(__ARCH_WANT_SYSCALL_OFF_T)
-#define __NR_sendfile 1046
-#define __NR_ftruncate 1047
-#define __NR_truncate 1048
-#define __NR_stat 1049
-#define __NR_lstat 1050
-#define __NR_fstat 1051
-#define __NR_fcntl 1052
-#define __NR_fadvise64 1053
-#define __ARCH_WANT_SYS_FADVISE64
-#define __NR_newfstatat 1054
-#define __ARCH_WANT_SYS_NEWFSTATAT
-#define __NR_fstatfs 1055
-#define __NR_statfs 1056
-#define __NR_lseek 1057
-#define __NR_mmap 1058
-#undef __NR_syscalls
-#define __NR_syscalls (__NR_mmap + 1)
-#endif
-#ifdef __ARCH_WANT_SYSCALL_DEPRECATED
-#define __NR_alarm 1059
-#define __ARCH_WANT_SYS_ALARM
-#define __NR_getpgrp 1060
-#define __ARCH_WANT_SYS_GETPGRP
-#define __NR_pause 1061
-#define __ARCH_WANT_SYS_PAUSE
-#define __NR_time 1062
-#define __ARCH_WANT_SYS_TIME
-#define __ARCH_WANT_COMPAT_SYS_TIME
-#define __NR_utime 1063
-#define __ARCH_WANT_SYS_UTIME
-#define __NR_creat 1064
-#define __NR_getdents 1065
-#define __ARCH_WANT_SYS_GETDENTS
-#define __NR_futimesat 1066
-#define __NR_select 1067
-#define __ARCH_WANT_SYS_SELECT
-#define __NR_poll 1068
-#define __NR_epoll_wait 1069
-#define __NR_ustat 1070
-#define __NR_vfork 1071
-#define __NR_oldwait4 1072
-#define __NR_recv 1073
-#define __NR_send 1074
-#define __NR_bdflush 1075
-#define __NR_umount 1076
-#define __ARCH_WANT_SYS_OLDUMOUNT
-#define __NR_uselib 1077
-#define __NR__sysctl 1078
-#define __NR_fork 1079
-#undef __NR_syscalls
-#define __NR_syscalls (__NR_fork + 1)
-#endif
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/libc/kernel/uapi/asm-mips/asm/hwcap.h b/libc/kernel/uapi/asm-mips/asm/hwcap.h
index 638017e..6151555 100644
--- a/libc/kernel/uapi/asm-mips/asm/hwcap.h
+++ b/libc/kernel/uapi/asm-mips/asm/hwcap.h
@@ -20,4 +20,5 @@
 #define _UAPI_ASM_HWCAP_H
 #define HWCAP_MIPS_R6 (1 << 0)
 #define HWCAP_MIPS_MSA (1 << 1)
+#define HWCAP_MIPS_CRC32 (1 << 2)
 #endif
diff --git a/libc/kernel/uapi/asm-mips/asm/mman.h b/libc/kernel/uapi/asm-mips/asm/mman.h
index 5e8e28a..7ca4a99 100644
--- a/libc/kernel/uapi/asm-mips/asm/mman.h
+++ b/libc/kernel/uapi/asm-mips/asm/mman.h
@@ -44,6 +44,7 @@
 #define MAP_NONBLOCK 0x20000
 #define MAP_STACK 0x40000
 #define MAP_HUGETLB 0x80000
+#define MAP_FIXED_NOREPLACE 0x100000
 #define MS_ASYNC 0x0001
 #define MS_INVALIDATE 0x0002
 #define MS_SYNC 0x0004
diff --git a/libc/kernel/uapi/asm-mips/asm/siginfo.h b/libc/kernel/uapi/asm-mips/asm/siginfo.h
index 413abd9..c37107b 100644
--- a/libc/kernel/uapi/asm-mips/asm/siginfo.h
+++ b/libc/kernel/uapi/asm-mips/asm/siginfo.h
@@ -20,7 +20,6 @@
 #define _UAPI_ASM_SIGINFO_H
 #define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(long) + 2 * sizeof(int))
 #undef __ARCH_SI_TRAPNO
-#define HAVE_ARCH_SIGINFO_T
 #if _MIPS_SZLONG == 32
 #define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
 #elif _MIPS_SZLONG==64
@@ -28,69 +27,8 @@
 #else
 #error _MIPS_SZLONG neither 32 nor 64
 #endif
-#define __ARCH_SIGSYS
+#define __ARCH_HAS_SWAPPED_SIGINFO
 #include <asm-generic/siginfo.h>
-typedef struct siginfo {
-  int si_signo;
-  int si_code;
-  int si_errno;
-  int __pad0[SI_MAX_SIZE / sizeof(int) - SI_PAD_SIZE - 3];
-  union {
-    int _pad[SI_PAD_SIZE];
-    struct {
-      __kernel_pid_t _pid;
-      __ARCH_SI_UID_T _uid;
-    } _kill;
-    struct {
-      __kernel_timer_t _tid;
-      int _overrun;
-      char _pad[sizeof(__ARCH_SI_UID_T) - sizeof(int)];
-      sigval_t _sigval;
-      int _sys_private;
-    } _timer;
-    struct {
-      __kernel_pid_t _pid;
-      __ARCH_SI_UID_T _uid;
-      sigval_t _sigval;
-    } _rt;
-    struct {
-      __kernel_pid_t _pid;
-      __ARCH_SI_UID_T _uid;
-      int _status;
-      __kernel_clock_t _utime;
-      __kernel_clock_t _stime;
-    } _sigchld;
-    struct {
-      __kernel_pid_t _pid;
-      __kernel_clock_t _utime;
-      int _status;
-      __kernel_clock_t _stime;
-    } _irix_sigchld;
-    struct {
-      void __user * _addr;
-#ifdef __ARCH_SI_TRAPNO
-      int _trapno;
-#endif
-      short _addr_lsb;
-      union {
-        struct {
-          void __user * _lower;
-          void __user * _upper;
-        } _addr_bnd;
-        __u32 _pkey;
-      };
-    } _sigfault;
-    struct {
-      __ARCH_SI_BAND_T _band;
-      int _fd;
-    } _sigpoll;
-    struct {
-      void __user * _call_addr;
-      int _syscall;
-      unsigned int _arch;
-    } _sigsys;
-  } _sifields;
-} siginfo_t;
 #undef SI_ASYNCIO
 #undef SI_TIMER
 #undef SI_MESGQ
diff --git a/libc/kernel/uapi/asm-x86/asm/bootparam.h b/libc/kernel/uapi/asm-x86/asm/bootparam.h
index 772f552..b010277 100644
--- a/libc/kernel/uapi/asm-x86/asm/bootparam.h
+++ b/libc/kernel/uapi/asm-x86/asm/bootparam.h
@@ -24,6 +24,7 @@
 #define SETUP_PCI 3
 #define SETUP_EFI 4
 #define SETUP_APPLE_PROPERTIES 5
+#define SETUP_JAILHOUSE 6
 #define RAMDISK_IMAGE_START_MASK 0x07FF
 #define RAMDISK_PROMPT_FLAG 0x8000
 #define RAMDISK_LOAD_FLAG 0x4000
@@ -116,6 +117,18 @@
   __u64 size;
   __u32 type;
 } __attribute__((packed));
+#define JAILHOUSE_SETUP_REQUIRED_VERSION 1
+struct jailhouse_setup_data {
+  __u16 version;
+  __u16 compatible_version;
+  __u16 pm_timer_address;
+  __u16 num_cpus;
+  __u64 pci_mmconfig_base;
+  __u32 tsc_khz;
+  __u32 apic_khz;
+  __u8 standard_ioapic;
+  __u8 cpu_ids[255];
+} __attribute__((packed));
 struct boot_params {
   struct screen_info screen_info;
   struct apm_bios_info apm_bios_info;
diff --git a/libc/kernel/uapi/asm-x86/asm/hyperv.h b/libc/kernel/uapi/asm-x86/asm/hyperv.h
deleted file mode 100644
index d5c9b19..0000000
--- a/libc/kernel/uapi/asm-x86/asm/hyperv.h
+++ /dev/null
@@ -1,234 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   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 _ASM_X86_HYPERV_H
-#define _ASM_X86_HYPERV_H
-#include <linux/types.h>
-#define HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS 0x40000000
-#define HYPERV_CPUID_INTERFACE 0x40000001
-#define HYPERV_CPUID_VERSION 0x40000002
-#define HYPERV_CPUID_FEATURES 0x40000003
-#define HYPERV_CPUID_ENLIGHTMENT_INFO 0x40000004
-#define HYPERV_CPUID_IMPLEMENT_LIMITS 0x40000005
-#define HYPERV_HYPERVISOR_PRESENT_BIT 0x80000000
-#define HYPERV_CPUID_MIN 0x40000005
-#define HYPERV_CPUID_MAX 0x4000ffff
-#define HV_X64_MSR_VP_RUNTIME_AVAILABLE (1 << 0)
-#define HV_X64_MSR_TIME_REF_COUNT_AVAILABLE (1 << 1)
-#define HV_X64_MSR_REFERENCE_TSC_AVAILABLE (1 << 9)
-#define HV_X64_MSR_REFERENCE_TSC 0x40000021
-#define HV_X64_ACCESS_FREQUENCY_MSRS (1 << 11)
-#define HV_X64_MSR_SYNIC_AVAILABLE (1 << 2)
-#define HV_X64_MSR_SYNTIMER_AVAILABLE (1 << 3)
-#define HV_X64_MSR_APIC_ACCESS_AVAILABLE (1 << 4)
-#define HV_X64_MSR_HYPERCALL_AVAILABLE (1 << 5)
-#define HV_X64_MSR_VP_INDEX_AVAILABLE (1 << 6)
-#define HV_X64_MSR_RESET_AVAILABLE (1 << 7)
-#define HV_X64_MSR_STAT_PAGES_AVAILABLE (1 << 8)
-#define HV_FEATURE_FREQUENCY_MSRS_AVAILABLE (1 << 8)
-#define HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE (1 << 10)
-#define HV_X64_CREATE_PARTITIONS (1 << 0)
-#define HV_X64_ACCESS_PARTITION_ID (1 << 1)
-#define HV_X64_ACCESS_MEMORY_POOL (1 << 2)
-#define HV_X64_ADJUST_MESSAGE_BUFFERS (1 << 3)
-#define HV_X64_POST_MESSAGES (1 << 4)
-#define HV_X64_SIGNAL_EVENTS (1 << 5)
-#define HV_X64_CREATE_PORT (1 << 6)
-#define HV_X64_CONNECT_PORT (1 << 7)
-#define HV_X64_ACCESS_STATS (1 << 8)
-#define HV_X64_DEBUGGING (1 << 11)
-#define HV_X64_CPU_POWER_MANAGEMENT (1 << 12)
-#define HV_X64_CONFIGURE_PROFILER (1 << 13)
-#define HV_X64_MWAIT_AVAILABLE (1 << 0)
-#define HV_X64_GUEST_DEBUGGING_AVAILABLE (1 << 1)
-#define HV_X64_PERF_MONITOR_AVAILABLE (1 << 2)
-#define HV_X64_CPU_DYNAMIC_PARTITIONING_AVAILABLE (1 << 3)
-#define HV_X64_HYPERCALL_PARAMS_XMM_AVAILABLE (1 << 4)
-#define HV_X64_GUEST_IDLE_STATE_AVAILABLE (1 << 5)
-#define HV_X64_GUEST_CRASH_MSR_AVAILABLE (1 << 10)
-#define HV_X64_AS_SWITCH_RECOMMENDED (1 << 0)
-#define HV_X64_LOCAL_TLB_FLUSH_RECOMMENDED (1 << 1)
-#define HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED (1 << 2)
-#define HV_X64_APIC_ACCESS_RECOMMENDED (1 << 3)
-#define HV_X64_SYSTEM_RESET_RECOMMENDED (1 << 4)
-#define HV_X64_RELAXED_TIMING_RECOMMENDED (1 << 5)
-#define HV_X64_DEPRECATING_AEOI_RECOMMENDED (1 << 9)
-#define HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED (1 << 11)
-#define HV_CRASH_CTL_CRASH_NOTIFY (1ULL << 63)
-#define HV_X64_MSR_GUEST_OS_ID 0x40000000
-#define HV_X64_MSR_HYPERCALL 0x40000001
-#define HV_X64_MSR_VP_INDEX 0x40000002
-#define HV_X64_MSR_RESET 0x40000003
-#define HV_X64_MSR_VP_RUNTIME 0x40000010
-#define HV_X64_MSR_TIME_REF_COUNT 0x40000020
-#define HV_X64_MSR_TSC_FREQUENCY 0x40000022
-#define HV_X64_MSR_APIC_FREQUENCY 0x40000023
-#define HV_X64_MSR_EOI 0x40000070
-#define HV_X64_MSR_ICR 0x40000071
-#define HV_X64_MSR_TPR 0x40000072
-#define HV_X64_MSR_APIC_ASSIST_PAGE 0x40000073
-#define HV_X64_MSR_SCONTROL 0x40000080
-#define HV_X64_MSR_SVERSION 0x40000081
-#define HV_X64_MSR_SIEFP 0x40000082
-#define HV_X64_MSR_SIMP 0x40000083
-#define HV_X64_MSR_EOM 0x40000084
-#define HV_X64_MSR_SINT0 0x40000090
-#define HV_X64_MSR_SINT1 0x40000091
-#define HV_X64_MSR_SINT2 0x40000092
-#define HV_X64_MSR_SINT3 0x40000093
-#define HV_X64_MSR_SINT4 0x40000094
-#define HV_X64_MSR_SINT5 0x40000095
-#define HV_X64_MSR_SINT6 0x40000096
-#define HV_X64_MSR_SINT7 0x40000097
-#define HV_X64_MSR_SINT8 0x40000098
-#define HV_X64_MSR_SINT9 0x40000099
-#define HV_X64_MSR_SINT10 0x4000009A
-#define HV_X64_MSR_SINT11 0x4000009B
-#define HV_X64_MSR_SINT12 0x4000009C
-#define HV_X64_MSR_SINT13 0x4000009D
-#define HV_X64_MSR_SINT14 0x4000009E
-#define HV_X64_MSR_SINT15 0x4000009F
-#define HV_X64_MSR_STIMER0_CONFIG 0x400000B0
-#define HV_X64_MSR_STIMER0_COUNT 0x400000B1
-#define HV_X64_MSR_STIMER1_CONFIG 0x400000B2
-#define HV_X64_MSR_STIMER1_COUNT 0x400000B3
-#define HV_X64_MSR_STIMER2_CONFIG 0x400000B4
-#define HV_X64_MSR_STIMER2_COUNT 0x400000B5
-#define HV_X64_MSR_STIMER3_CONFIG 0x400000B6
-#define HV_X64_MSR_STIMER3_COUNT 0x400000B7
-#define HV_X64_MSR_CRASH_P0 0x40000100
-#define HV_X64_MSR_CRASH_P1 0x40000101
-#define HV_X64_MSR_CRASH_P2 0x40000102
-#define HV_X64_MSR_CRASH_P3 0x40000103
-#define HV_X64_MSR_CRASH_P4 0x40000104
-#define HV_X64_MSR_CRASH_CTL 0x40000105
-#define HV_X64_MSR_CRASH_CTL_NOTIFY (1ULL << 63)
-#define HV_X64_MSR_CRASH_PARAMS (1 + (HV_X64_MSR_CRASH_P4 - HV_X64_MSR_CRASH_P0))
-#define HV_X64_MSR_HYPERCALL_ENABLE 0x00000001
-#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT 12
-#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_MASK (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1))
-#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE 0x0002
-#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST 0x0003
-#define HVCALL_NOTIFY_LONG_SPIN_WAIT 0x0008
-#define HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX 0x0013
-#define HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX 0x0014
-#define HVCALL_POST_MESSAGE 0x005c
-#define HVCALL_SIGNAL_EVENT 0x005d
-#define HV_X64_MSR_APIC_ASSIST_PAGE_ENABLE 0x00000001
-#define HV_X64_MSR_APIC_ASSIST_PAGE_ADDRESS_SHIFT 12
-#define HV_X64_MSR_APIC_ASSIST_PAGE_ADDRESS_MASK (~((1ull << HV_X64_MSR_APIC_ASSIST_PAGE_ADDRESS_SHIFT) - 1))
-#define HV_X64_MSR_TSC_REFERENCE_ENABLE 0x00000001
-#define HV_X64_MSR_TSC_REFERENCE_ADDRESS_SHIFT 12
-#define HV_PROCESSOR_POWER_STATE_C0 0
-#define HV_PROCESSOR_POWER_STATE_C1 1
-#define HV_PROCESSOR_POWER_STATE_C2 2
-#define HV_PROCESSOR_POWER_STATE_C3 3
-#define HV_FLUSH_ALL_PROCESSORS BIT(0)
-#define HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES BIT(1)
-#define HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY BIT(2)
-#define HV_FLUSH_USE_EXTENDED_RANGE_FORMAT BIT(3)
-enum HV_GENERIC_SET_FORMAT {
-  HV_GENERIC_SET_SPARCE_4K,
-  HV_GENERIC_SET_ALL,
-};
-#define HV_STATUS_SUCCESS 0
-#define HV_STATUS_INVALID_HYPERCALL_CODE 2
-#define HV_STATUS_INVALID_HYPERCALL_INPUT 3
-#define HV_STATUS_INVALID_ALIGNMENT 4
-#define HV_STATUS_INSUFFICIENT_MEMORY 11
-#define HV_STATUS_INVALID_CONNECTION_ID 18
-#define HV_STATUS_INSUFFICIENT_BUFFERS 19
-typedef struct _HV_REFERENCE_TSC_PAGE {
-  __u32 tsc_sequence;
-  __u32 res1;
-  __u64 tsc_scale;
-  __s64 tsc_offset;
-} HV_REFERENCE_TSC_PAGE, * PHV_REFERENCE_TSC_PAGE;
-#define HV_SYNIC_SINT_COUNT (16)
-#define HV_SYNIC_VERSION_1 (0x1)
-#define HV_SYNIC_CONTROL_ENABLE (1ULL << 0)
-#define HV_SYNIC_SIMP_ENABLE (1ULL << 0)
-#define HV_SYNIC_SIEFP_ENABLE (1ULL << 0)
-#define HV_SYNIC_SINT_MASKED (1ULL << 16)
-#define HV_SYNIC_SINT_AUTO_EOI (1ULL << 17)
-#define HV_SYNIC_SINT_VECTOR_MASK (0xFF)
-#define HV_SYNIC_STIMER_COUNT (4)
-#define HV_MESSAGE_SIZE (256)
-#define HV_MESSAGE_PAYLOAD_BYTE_COUNT (240)
-#define HV_MESSAGE_PAYLOAD_QWORD_COUNT (30)
-enum hv_message_type {
-  HVMSG_NONE = 0x00000000,
-  HVMSG_UNMAPPED_GPA = 0x80000000,
-  HVMSG_GPA_INTERCEPT = 0x80000001,
-  HVMSG_TIMER_EXPIRED = 0x80000010,
-  HVMSG_INVALID_VP_REGISTER_VALUE = 0x80000020,
-  HVMSG_UNRECOVERABLE_EXCEPTION = 0x80000021,
-  HVMSG_UNSUPPORTED_FEATURE = 0x80000022,
-  HVMSG_EVENTLOG_BUFFERCOMPLETE = 0x80000040,
-  HVMSG_X64_IOPORT_INTERCEPT = 0x80010000,
-  HVMSG_X64_MSR_INTERCEPT = 0x80010001,
-  HVMSG_X64_CPUID_INTERCEPT = 0x80010002,
-  HVMSG_X64_EXCEPTION_INTERCEPT = 0x80010003,
-  HVMSG_X64_APIC_EOI = 0x80010004,
-  HVMSG_X64_LEGACY_FP_ERROR = 0x80010005
-};
-union hv_message_flags {
-  __u8 asu8;
-  struct {
-    __u8 msg_pending : 1;
-    __u8 reserved : 7;
-  };
-};
-union hv_port_id {
-  __u32 asu32;
-  struct {
-    __u32 id : 24;
-    __u32 reserved : 8;
-  } u;
-};
-struct hv_message_header {
-  __u32 message_type;
-  __u8 payload_size;
-  union hv_message_flags message_flags;
-  __u8 reserved[2];
-  union {
-    __u64 sender;
-    union hv_port_id port;
-  };
-};
-struct hv_message {
-  struct hv_message_header header;
-  union {
-    __u64 payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT];
-  } u;
-};
-struct hv_message_page {
-  struct hv_message sint_message[HV_SYNIC_SINT_COUNT];
-};
-struct hv_timer_message_payload {
-  __u32 timer_index;
-  __u32 reserved;
-  __u64 expiration_time;
-  __u64 delivery_time;
-};
-#define HV_STIMER_ENABLE (1ULL << 0)
-#define HV_STIMER_PERIODIC (1ULL << 1)
-#define HV_STIMER_LAZY (1ULL << 2)
-#define HV_STIMER_AUTOENABLE (1ULL << 3)
-#define HV_STIMER_SINT(config) (__u8) (((config) >> 16) & 0x0F)
-#endif
diff --git a/libc/kernel/uapi/asm-x86/asm/kvm.h b/libc/kernel/uapi/asm-x86/asm/kvm.h
index 913d4bc..df1b396 100644
--- a/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -302,7 +302,14 @@
   struct kvm_xcr xcrs[KVM_MAX_XCRS];
   __u64 padding[16];
 };
+#define KVM_SYNC_X86_REGS (1UL << 0)
+#define KVM_SYNC_X86_SREGS (1UL << 1)
+#define KVM_SYNC_X86_EVENTS (1UL << 2)
+#define KVM_SYNC_X86_VALID_FIELDS (KVM_SYNC_X86_REGS | KVM_SYNC_X86_SREGS | KVM_SYNC_X86_EVENTS)
 struct kvm_sync_regs {
+  struct kvm_regs regs;
+  struct kvm_sregs sregs;
+  struct kvm_vcpu_events events;
 };
 #define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0)
 #define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1)
diff --git a/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/libc/kernel/uapi/asm-x86/asm/kvm_para.h
index b7635cb..0e4f2e0 100644
--- a/libc/kernel/uapi/asm-x86/asm/kvm_para.h
+++ b/libc/kernel/uapi/asm-x86/asm/kvm_para.h
@@ -19,7 +19,6 @@
 #ifndef _UAPI_ASM_X86_KVM_PARA_H
 #define _UAPI_ASM_X86_KVM_PARA_H
 #include <linux/types.h>
-#include <asm/hyperv.h>
 #define KVM_CPUID_SIGNATURE 0x40000000
 #define KVM_CPUID_FEATURES 0x40000001
 #define KVM_FEATURE_CLOCKSOURCE 0
@@ -30,6 +29,9 @@
 #define KVM_FEATURE_STEAL_TIME 5
 #define KVM_FEATURE_PV_EOI 6
 #define KVM_FEATURE_PV_UNHALT 7
+#define KVM_FEATURE_PV_TLB_FLUSH 9
+#define KVM_FEATURE_ASYNC_PF_VMEXIT 10
+#define KVM_HINTS_REALTIME 0
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24
 #define MSR_KVM_WALL_CLOCK 0x11
 #define MSR_KVM_SYSTEM_TIME 0x12
@@ -47,6 +49,8 @@
   __u8 u8_pad[3];
   __u32 pad[11];
 };
+#define KVM_VCPU_PREEMPTED (1 << 0)
+#define KVM_VCPU_FLUSH_TLB (1 << 1)
 #define KVM_CLOCK_PAIRING_WALLCLOCK 0
 struct kvm_clock_pairing {
   __s64 sec;
diff --git a/libc/kernel/uapi/asm-x86/asm/mce.h b/libc/kernel/uapi/asm-x86/asm/mce.h
index 9448a61..4a3230c 100644
--- a/libc/kernel/uapi/asm-x86/asm/mce.h
+++ b/libc/kernel/uapi/asm-x86/asm/mce.h
@@ -44,6 +44,7 @@
   __u64 synd;
   __u64 ipid;
   __u64 ppin;
+  __u32 microcode;
 };
 #define MCE_GET_RECORD_LEN _IOR('M', 1, int)
 #define MCE_GET_LOG_LEN _IOR('M', 2, int)
diff --git a/libc/kernel/uapi/asm-x86/asm/msgbuf.h b/libc/kernel/uapi/asm-x86/asm/msgbuf.h
index 7809e3c..92ab491 100644
--- a/libc/kernel/uapi/asm-x86/asm/msgbuf.h
+++ b/libc/kernel/uapi/asm-x86/asm/msgbuf.h
@@ -16,4 +16,23 @@
  ***
  ****************************************************************************
  ****************************************************************************/
+#ifndef __ASM_X64_MSGBUF_H
+#define __ASM_X64_MSGBUF_H
+#if !defined(__x86_64__) || !defined(__ILP32__)
 #include <asm-generic/msgbuf.h>
+#else
+struct msqid64_ds {
+  struct ipc64_perm msg_perm;
+  __kernel_time_t msg_stime;
+  __kernel_time_t msg_rtime;
+  __kernel_time_t msg_ctime;
+  __kernel_ulong_t msg_cbytes;
+  __kernel_ulong_t msg_qnum;
+  __kernel_ulong_t msg_qbytes;
+  __kernel_pid_t msg_lspid;
+  __kernel_pid_t msg_lrpid;
+  __kernel_ulong_t __unused4;
+  __kernel_ulong_t __unused5;
+};
+#endif
+#endif
diff --git a/libc/kernel/uapi/asm-x86/asm/shmbuf.h b/libc/kernel/uapi/asm-x86/asm/shmbuf.h
index fe8b1be..4486c7b 100644
--- a/libc/kernel/uapi/asm-x86/asm/shmbuf.h
+++ b/libc/kernel/uapi/asm-x86/asm/shmbuf.h
@@ -16,4 +16,33 @@
  ***
  ****************************************************************************
  ****************************************************************************/
+#ifndef __ASM_X86_SHMBUF_H
+#define __ASM_X86_SHMBUF_H
+#if !defined(__x86_64__) || !defined(__ILP32__)
 #include <asm-generic/shmbuf.h>
+#else
+struct shmid64_ds {
+  struct ipc64_perm shm_perm;
+  size_t shm_segsz;
+  __kernel_time_t shm_atime;
+  __kernel_time_t shm_dtime;
+  __kernel_time_t shm_ctime;
+  __kernel_pid_t shm_cpid;
+  __kernel_pid_t shm_lpid;
+  __kernel_ulong_t shm_nattch;
+  __kernel_ulong_t __unused4;
+  __kernel_ulong_t __unused5;
+};
+struct shminfo64 {
+  __kernel_ulong_t shmmax;
+  __kernel_ulong_t shmmin;
+  __kernel_ulong_t shmmni;
+  __kernel_ulong_t shmseg;
+  __kernel_ulong_t shmall;
+  __kernel_ulong_t __unused1;
+  __kernel_ulong_t __unused2;
+  __kernel_ulong_t __unused3;
+  __kernel_ulong_t __unused4;
+};
+#endif
+#endif
diff --git a/libc/kernel/uapi/drm/amdgpu_drm.h b/libc/kernel/uapi/drm/amdgpu_drm.h
index 1cdae16..59f5260 100644
--- a/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -106,10 +106,14 @@
 #define AMDGPU_CTX_OP_ALLOC_CTX 1
 #define AMDGPU_CTX_OP_FREE_CTX 2
 #define AMDGPU_CTX_OP_QUERY_STATE 3
+#define AMDGPU_CTX_OP_QUERY_STATE2 4
 #define AMDGPU_CTX_NO_RESET 0
 #define AMDGPU_CTX_GUILTY_RESET 1
 #define AMDGPU_CTX_INNOCENT_RESET 2
 #define AMDGPU_CTX_UNKNOWN_RESET 3
+#define AMDGPU_CTX_QUERY2_FLAGS_RESET (1 << 0)
+#define AMDGPU_CTX_QUERY2_FLAGS_VRAMLOST (1 << 1)
+#define AMDGPU_CTX_QUERY2_FLAGS_GUILTY (1 << 2)
 #define AMDGPU_CTX_PRIORITY_UNSET - 2048
 #define AMDGPU_CTX_PRIORITY_VERY_LOW - 1023
 #define AMDGPU_CTX_PRIORITY_LOW - 512
@@ -392,6 +396,7 @@
 #define AMDGPU_INFO_FW_SDMA 0x0b
 #define AMDGPU_INFO_FW_SOS 0x0c
 #define AMDGPU_INFO_FW_ASD 0x0d
+#define AMDGPU_INFO_FW_VCN 0x0e
 #define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f
 #define AMDGPU_INFO_VRAM_USAGE 0x10
 #define AMDGPU_INFO_GTT_USAGE 0x11
@@ -415,6 +420,8 @@
 #define AMDGPU_INFO_SENSOR_GPU_AVG_POWER 0x5
 #define AMDGPU_INFO_SENSOR_VDDNB 0x6
 #define AMDGPU_INFO_SENSOR_VDDGFX 0x7
+#define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_SCLK 0x8
+#define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_MCLK 0x9
 #define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS 0x1E
 #define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
@@ -494,6 +501,7 @@
 #define AMDGPU_VRAM_TYPE_GDDR5 5
 #define AMDGPU_VRAM_TYPE_HBM 6
 #define AMDGPU_VRAM_TYPE_DDR3 7
+#define AMDGPU_VRAM_TYPE_DDR4 8
 struct drm_amdgpu_info_device {
   __u32 device_id;
   __u32 chip_rev;
@@ -540,6 +548,8 @@
   __u32 max_gs_waves_per_vgt;
   __u32 _pad1;
   __u32 cu_ao_bitmap[4][4];
+  __u64 high_va_offset;
+  __u64 high_va_max;
 };
 struct drm_amdgpu_info_hw_ip {
   __u32 hw_ip_version_major;
diff --git a/libc/kernel/uapi/drm/drm_fourcc.h b/libc/kernel/uapi/drm/drm_fourcc.h
index da416cf..d5fb055 100644
--- a/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/libc/kernel/uapi/drm/drm_fourcc.h
@@ -101,13 +101,13 @@
 #define DRM_FORMAT_MOD_VENDOR_NONE 0
 #define DRM_FORMAT_MOD_VENDOR_INTEL 0x01
 #define DRM_FORMAT_MOD_VENDOR_AMD 0x02
-#define DRM_FORMAT_MOD_VENDOR_NV 0x03
+#define DRM_FORMAT_MOD_VENDOR_NVIDIA 0x03
 #define DRM_FORMAT_MOD_VENDOR_SAMSUNG 0x04
 #define DRM_FORMAT_MOD_VENDOR_QCOM 0x05
 #define DRM_FORMAT_MOD_VENDOR_VIVANTE 0x06
 #define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
 #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
-#define fourcc_mod_code(vendor,val) ((((__u64) DRM_FORMAT_MOD_VENDOR_ ##vendor) << 56) | (val & 0x00ffffffffffffffULL))
+#define fourcc_mod_code(vendor,val) ((((__u64) DRM_FORMAT_MOD_VENDOR_ ##vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
 #define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
 #define DRM_FORMAT_MOD_LINEAR fourcc_mod_code(NONE, 0)
 #define I915_FORMAT_MOD_X_TILED fourcc_mod_code(INTEL, 1)
@@ -120,12 +120,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 __fourcc_mod_tegra_mode_shift 32
-#define fourcc_mod_tegra_code(val,params) fourcc_mod_code(NV, ((((__u64) val) << __fourcc_mod_tegra_mode_shift) | params))
-#define fourcc_mod_tegra_mod(m) (m & ~((1ULL << __fourcc_mod_tegra_mode_shift) - 1))
-#define fourcc_mod_tegra_param(m) (m & ((1ULL << __fourcc_mod_tegra_mode_shift) - 1))
-#define NV_FORMAT_MOD_TEGRA_TILED fourcc_mod_tegra_code(1, 0)
-#define NV_FORMAT_MOD_TEGRA_16BX2_BLOCK(v) fourcc_mod_tegra_code(2, v)
+#define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) fourcc_mod_code(NVIDIA, 0x10 | ((v) & 0xf))
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_ONE_GOB fourcc_mod_code(NVIDIA, 0x10)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_TWO_GOB fourcc_mod_code(NVIDIA, 0x11)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_FOUR_GOB fourcc_mod_code(NVIDIA, 0x12)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_EIGHT_GOB fourcc_mod_code(NVIDIA, 0x13)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_SIXTEEN_GOB fourcc_mod_code(NVIDIA, 0x14)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB fourcc_mod_code(NVIDIA, 0x15)
 #define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1)
 #ifdef __cplusplus
 #endif
diff --git a/libc/kernel/uapi/drm/drm_mode.h b/libc/kernel/uapi/drm/drm_mode.h
index 2c9defb..b91f161 100644
--- a/libc/kernel/uapi/drm/drm_mode.h
+++ b/libc/kernel/uapi/drm/drm_mode.h
@@ -32,6 +32,7 @@
 #define DRM_MODE_TYPE_DEFAULT (1 << 4)
 #define DRM_MODE_TYPE_USERDEF (1 << 5)
 #define DRM_MODE_TYPE_DRIVER (1 << 6)
+#define DRM_MODE_TYPE_ALL (DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_USERDEF | DRM_MODE_TYPE_DRIVER)
 #define DRM_MODE_FLAG_PHSYNC (1 << 0)
 #define DRM_MODE_FLAG_NHSYNC (1 << 1)
 #define DRM_MODE_FLAG_PVSYNC (1 << 2)
@@ -63,6 +64,7 @@
 #define DRM_MODE_FLAG_PIC_AR_NONE (DRM_MODE_PICTURE_ASPECT_NONE << 19)
 #define DRM_MODE_FLAG_PIC_AR_4_3 (DRM_MODE_PICTURE_ASPECT_4_3 << 19)
 #define DRM_MODE_FLAG_PIC_AR_16_9 (DRM_MODE_PICTURE_ASPECT_16_9 << 19)
+#define DRM_MODE_FLAG_ALL (DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLSCAN | DRM_MODE_FLAG_CSYNC | DRM_MODE_FLAG_PCSYNC | DRM_MODE_FLAG_NCSYNC | DRM_MODE_FLAG_HSKEW | DRM_MODE_FLAG_DBLCLK | DRM_MODE_FLAG_CLKDIV2 | DRM_MODE_FLAG_3D_MASK)
 #define DRM_MODE_DPMS_ON 0
 #define DRM_MODE_DPMS_STANDBY 1
 #define DRM_MODE_DPMS_SUSPEND 2
@@ -87,6 +89,9 @@
 #define DRM_MODE_REFLECT_X (1 << 4)
 #define DRM_MODE_REFLECT_Y (1 << 5)
 #define DRM_MODE_REFLECT_MASK (DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y)
+#define DRM_MODE_CONTENT_PROTECTION_UNDESIRED 0
+#define DRM_MODE_CONTENT_PROTECTION_DESIRED 1
+#define DRM_MODE_CONTENT_PROTECTION_ENABLED 2
 struct drm_mode_modeinfo {
   __u32 clock;
   __u16 hdisplay;
@@ -345,7 +350,7 @@
   __u64 blue;
 };
 struct drm_color_ctm {
-  __s64 matrix[9];
+  __u64 matrix[9];
 };
 struct drm_color_lut {
   __u16 red;
diff --git a/libc/kernel/uapi/drm/etnaviv_drm.h b/libc/kernel/uapi/drm/etnaviv_drm.h
index 58bd536..bb502d9 100644
--- a/libc/kernel/uapi/drm/etnaviv_drm.h
+++ b/libc/kernel/uapi/drm/etnaviv_drm.h
@@ -34,6 +34,12 @@
 #define ETNAVIV_PARAM_GPU_FEATURES_4 0x07
 #define ETNAVIV_PARAM_GPU_FEATURES_5 0x08
 #define ETNAVIV_PARAM_GPU_FEATURES_6 0x09
+#define ETNAVIV_PARAM_GPU_FEATURES_7 0x0a
+#define ETNAVIV_PARAM_GPU_FEATURES_8 0x0b
+#define ETNAVIV_PARAM_GPU_FEATURES_9 0x0c
+#define ETNAVIV_PARAM_GPU_FEATURES_10 0x0d
+#define ETNAVIV_PARAM_GPU_FEATURES_11 0x0e
+#define ETNAVIV_PARAM_GPU_FEATURES_12 0x0f
 #define ETNAVIV_PARAM_GPU_STREAM_COUNT 0x10
 #define ETNAVIV_PARAM_GPU_REGISTER_MAX 0x11
 #define ETNAVIV_PARAM_GPU_THREAD_COUNT 0x12
diff --git a/libc/kernel/uapi/drm/exynos_drm.h b/libc/kernel/uapi/drm/exynos_drm.h
index 9514d75..ed9022b 100644
--- a/libc/kernel/uapi/drm/exynos_drm.h
+++ b/libc/kernel/uapi/drm/exynos_drm.h
@@ -80,103 +80,6 @@
 struct drm_exynos_g2d_exec {
   __u64 async;
 };
-enum drm_exynos_ops_id {
-  EXYNOS_DRM_OPS_SRC,
-  EXYNOS_DRM_OPS_DST,
-  EXYNOS_DRM_OPS_MAX,
-};
-struct drm_exynos_sz {
-  __u32 hsize;
-  __u32 vsize;
-};
-struct drm_exynos_pos {
-  __u32 x;
-  __u32 y;
-  __u32 w;
-  __u32 h;
-};
-enum drm_exynos_flip {
-  EXYNOS_DRM_FLIP_NONE = (0 << 0),
-  EXYNOS_DRM_FLIP_VERTICAL = (1 << 0),
-  EXYNOS_DRM_FLIP_HORIZONTAL = (1 << 1),
-  EXYNOS_DRM_FLIP_BOTH = EXYNOS_DRM_FLIP_VERTICAL | EXYNOS_DRM_FLIP_HORIZONTAL,
-};
-enum drm_exynos_degree {
-  EXYNOS_DRM_DEGREE_0,
-  EXYNOS_DRM_DEGREE_90,
-  EXYNOS_DRM_DEGREE_180,
-  EXYNOS_DRM_DEGREE_270,
-};
-enum drm_exynos_planer {
-  EXYNOS_DRM_PLANAR_Y,
-  EXYNOS_DRM_PLANAR_CB,
-  EXYNOS_DRM_PLANAR_CR,
-  EXYNOS_DRM_PLANAR_MAX,
-};
-struct drm_exynos_ipp_prop_list {
-  __u32 version;
-  __u32 ipp_id;
-  __u32 count;
-  __u32 writeback;
-  __u32 flip;
-  __u32 degree;
-  __u32 csc;
-  __u32 crop;
-  __u32 scale;
-  __u32 refresh_min;
-  __u32 refresh_max;
-  __u32 reserved;
-  struct drm_exynos_sz crop_min;
-  struct drm_exynos_sz crop_max;
-  struct drm_exynos_sz scale_min;
-  struct drm_exynos_sz scale_max;
-};
-struct drm_exynos_ipp_config {
-  __u32 ops_id;
-  __u32 flip;
-  __u32 degree;
-  __u32 fmt;
-  struct drm_exynos_sz sz;
-  struct drm_exynos_pos pos;
-};
-enum drm_exynos_ipp_cmd {
-  IPP_CMD_NONE,
-  IPP_CMD_M2M,
-  IPP_CMD_WB,
-  IPP_CMD_OUTPUT,
-  IPP_CMD_MAX,
-};
-struct drm_exynos_ipp_property {
-  struct drm_exynos_ipp_config config[EXYNOS_DRM_OPS_MAX];
-  __u32 cmd;
-  __u32 ipp_id;
-  __u32 prop_id;
-  __u32 refresh_rate;
-};
-enum drm_exynos_ipp_buf_type {
-  IPP_BUF_ENQUEUE,
-  IPP_BUF_DEQUEUE,
-};
-struct drm_exynos_ipp_queue_buf {
-  __u32 ops_id;
-  __u32 buf_type;
-  __u32 prop_id;
-  __u32 buf_id;
-  __u32 handle[EXYNOS_DRM_PLANAR_MAX];
-  __u32 reserved;
-  __u64 user_data;
-};
-enum drm_exynos_ipp_ctrl {
-  IPP_CTRL_PLAY,
-  IPP_CTRL_STOP,
-  IPP_CTRL_PAUSE,
-  IPP_CTRL_RESUME,
-  IPP_CTRL_MAX,
-};
-struct drm_exynos_ipp_cmd_ctrl {
-  __u32 prop_id;
-  __u32 ctrl;
-};
 #define DRM_EXYNOS_GEM_CREATE 0x00
 #define DRM_EXYNOS_GEM_MAP 0x01
 #define DRM_EXYNOS_GEM_GET 0x04
@@ -184,10 +87,6 @@
 #define DRM_EXYNOS_G2D_GET_VER 0x20
 #define DRM_EXYNOS_G2D_SET_CMDLIST 0x21
 #define DRM_EXYNOS_G2D_EXEC 0x22
-#define DRM_EXYNOS_IPP_GET_PROPERTY 0x30
-#define DRM_EXYNOS_IPP_SET_PROPERTY 0x31
-#define DRM_EXYNOS_IPP_QUEUE_BUF 0x32
-#define DRM_EXYNOS_IPP_CMD_CTRL 0x33
 #define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create)
 #define DRM_IOCTL_EXYNOS_GEM_MAP DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_MAP, struct drm_exynos_gem_map)
 #define DRM_IOCTL_EXYNOS_GEM_GET DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_GET, struct drm_exynos_gem_info)
@@ -195,12 +94,7 @@
 #define DRM_IOCTL_EXYNOS_G2D_GET_VER DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_GET_VER, struct drm_exynos_g2d_get_ver)
 #define DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_SET_CMDLIST, struct drm_exynos_g2d_set_cmdlist)
 #define DRM_IOCTL_EXYNOS_G2D_EXEC DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_EXEC, struct drm_exynos_g2d_exec)
-#define DRM_IOCTL_EXYNOS_IPP_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_GET_PROPERTY, struct drm_exynos_ipp_prop_list)
-#define DRM_IOCTL_EXYNOS_IPP_SET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_SET_PROPERTY, struct drm_exynos_ipp_property)
-#define DRM_IOCTL_EXYNOS_IPP_QUEUE_BUF DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_QUEUE_BUF, struct drm_exynos_ipp_queue_buf)
-#define DRM_IOCTL_EXYNOS_IPP_CMD_CTRL DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_CMD_CTRL, struct drm_exynos_ipp_cmd_ctrl)
 #define DRM_EXYNOS_G2D_EVENT 0x80000000
-#define DRM_EXYNOS_IPP_EVENT 0x80000001
 struct drm_exynos_g2d_event {
   struct drm_event base;
   __u64 user_data;
@@ -209,15 +103,6 @@
   __u32 cmdlist_no;
   __u32 reserved;
 };
-struct drm_exynos_ipp_event {
-  struct drm_event base;
-  __u64 user_data;
-  __u32 tv_sec;
-  __u32 tv_usec;
-  __u32 prop_id;
-  __u32 reserved;
-  __u32 buf_id[EXYNOS_DRM_OPS_MAX];
-};
 #ifdef __cplusplus
 #endif
 #endif
diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h
index 34342bf..4c1d87f 100644
--- a/libc/kernel/uapi/drm/i915_drm.h
+++ b/libc/kernel/uapi/drm/i915_drm.h
@@ -29,6 +29,32 @@
   I915_MOCS_PTE,
   I915_MOCS_CACHED,
 };
+enum drm_i915_gem_engine_class {
+  I915_ENGINE_CLASS_RENDER = 0,
+  I915_ENGINE_CLASS_COPY = 1,
+  I915_ENGINE_CLASS_VIDEO = 2,
+  I915_ENGINE_CLASS_VIDEO_ENHANCE = 3,
+  I915_ENGINE_CLASS_INVALID = - 1
+};
+enum drm_i915_pmu_engine_sample {
+  I915_SAMPLE_BUSY = 0,
+  I915_SAMPLE_WAIT = 1,
+  I915_SAMPLE_SEMA = 2
+};
+#define I915_PMU_SAMPLE_BITS (4)
+#define I915_PMU_SAMPLE_MASK (0xf)
+#define I915_PMU_SAMPLE_INSTANCE_BITS (8)
+#define I915_PMU_CLASS_SHIFT (I915_PMU_SAMPLE_BITS + I915_PMU_SAMPLE_INSTANCE_BITS)
+#define __I915_PMU_ENGINE(class,instance,sample) ((class) << I915_PMU_CLASS_SHIFT | (instance) << I915_PMU_SAMPLE_BITS | (sample))
+#define I915_PMU_ENGINE_BUSY(class,instance) __I915_PMU_ENGINE(class, instance, I915_SAMPLE_BUSY)
+#define I915_PMU_ENGINE_WAIT(class,instance) __I915_PMU_ENGINE(class, instance, I915_SAMPLE_WAIT)
+#define I915_PMU_ENGINE_SEMA(class,instance) __I915_PMU_ENGINE(class, instance, I915_SAMPLE_SEMA)
+#define __I915_PMU_OTHER(x) (__I915_PMU_ENGINE(0xff, 0xff, 0xf) + 1 + (x))
+#define I915_PMU_ACTUAL_FREQUENCY __I915_PMU_OTHER(0)
+#define I915_PMU_REQUESTED_FREQUENCY __I915_PMU_OTHER(1)
+#define I915_PMU_INTERRUPTS __I915_PMU_OTHER(2)
+#define I915_PMU_RC6_RESIDENCY __I915_PMU_OTHER(3)
+#define I915_PMU_LAST I915_PMU_RC6_RESIDENCY
 #define I915_NR_TEX_REGIONS 255
 #define I915_LOG_MIN_TEX_REGION_SIZE 14
 typedef struct _drm_i915_init {
@@ -174,6 +200,7 @@
 #define DRM_I915_PERF_OPEN 0x36
 #define DRM_I915_PERF_ADD_CONFIG 0x37
 #define DRM_I915_PERF_REMOVE_CONFIG 0x38
+#define DRM_I915_QUERY 0x39
 #define DRM_IOCTL_I915_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
 #define DRM_IOCTL_I915_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLUSH)
 #define DRM_IOCTL_I915_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLIP)
@@ -230,6 +257,7 @@
 #define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param)
 #define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config)
 #define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64)
+#define DRM_IOCTL_I915_QUERY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_QUERY, struct drm_i915_query)
 typedef struct drm_i915_batchbuffer {
   int start;
   int used;
@@ -304,6 +332,8 @@
 #define I915_PARAM_SUBSLICE_MASK 47
 #define I915_PARAM_HAS_EXEC_BATCH_FIRST 48
 #define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49
+#define I915_PARAM_HAS_CONTEXT_ISOLATION 50
+#define I915_PARAM_CS_TIMESTAMP_FREQUENCY 51
 typedef struct drm_i915_getparam {
   __s32 param;
   int __user * value;
@@ -721,6 +751,29 @@
   __u64 boolean_regs_ptr;
   __u64 flex_regs_ptr;
 };
+struct drm_i915_query_item {
+  __u64 query_id;
+#define DRM_I915_QUERY_TOPOLOGY_INFO 1
+  __s32 length;
+  __u32 flags;
+  __u64 data_ptr;
+};
+struct drm_i915_query {
+  __u32 num_items;
+  __u32 flags;
+  __u64 items_ptr;
+};
+struct drm_i915_query_topology_info {
+  __u16 flags;
+  __u16 max_slices;
+  __u16 max_subslices;
+  __u16 max_eus_per_subslice;
+  __u16 subslice_offset;
+  __u16 subslice_stride;
+  __u16 eu_offset;
+  __u16 eu_stride;
+  __u8 data[];
+};
 #ifdef __cplusplus
 #endif
 #endif
diff --git a/libc/kernel/uapi/drm/msm_drm.h b/libc/kernel/uapi/drm/msm_drm.h
index d2f1b57..1d53c5d 100644
--- a/libc/kernel/uapi/drm/msm_drm.h
+++ b/libc/kernel/uapi/drm/msm_drm.h
@@ -105,7 +105,8 @@
 #define MSM_SUBMIT_NO_IMPLICIT 0x80000000
 #define MSM_SUBMIT_FENCE_FD_IN 0x40000000
 #define MSM_SUBMIT_FENCE_FD_OUT 0x20000000
-#define MSM_SUBMIT_FLAGS (MSM_SUBMIT_NO_IMPLICIT | MSM_SUBMIT_FENCE_FD_IN | MSM_SUBMIT_FENCE_FD_OUT | 0)
+#define MSM_SUBMIT_SUDO 0x10000000
+#define MSM_SUBMIT_FLAGS (MSM_SUBMIT_NO_IMPLICIT | MSM_SUBMIT_FENCE_FD_IN | MSM_SUBMIT_FENCE_FD_OUT | MSM_SUBMIT_SUDO | 0)
 struct drm_msm_gem_submit {
   __u32 flags;
   __u32 fence;
diff --git a/libc/kernel/uapi/drm/vc4_drm.h b/libc/kernel/uapi/drm/vc4_drm.h
index 3ca378f..05ed172 100644
--- a/libc/kernel/uapi/drm/vc4_drm.h
+++ b/libc/kernel/uapi/drm/vc4_drm.h
@@ -33,6 +33,9 @@
 #define DRM_VC4_GET_TILING 0x09
 #define DRM_VC4_LABEL_BO 0x0a
 #define DRM_VC4_GEM_MADVISE 0x0b
+#define DRM_VC4_PERFMON_CREATE 0x0c
+#define DRM_VC4_PERFMON_DESTROY 0x0d
+#define DRM_VC4_PERFMON_GET_VALUES 0x0e
 #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
 #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
 #define DRM_IOCTL_VC4_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_BO, struct drm_vc4_wait_bo)
@@ -45,6 +48,9 @@
 #define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling)
 #define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo)
 #define DRM_IOCTL_VC4_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GEM_MADVISE, struct drm_vc4_gem_madvise)
+#define DRM_IOCTL_VC4_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_CREATE, struct drm_vc4_perfmon_create)
+#define DRM_IOCTL_VC4_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_DESTROY, struct drm_vc4_perfmon_destroy)
+#define DRM_IOCTL_VC4_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_GET_VALUES, struct drm_vc4_perfmon_get_values)
 struct drm_vc4_submit_rcl_surface {
   __u32 hindex;
   __u32 offset;
@@ -84,6 +90,8 @@
 #define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_Y (1 << 3)
   __u32 flags;
   __u64 seqno;
+  __u32 perfmonid;
+  __u32 pad2;
 };
 struct drm_vc4_wait_seqno {
   __u64 seqno;
@@ -145,6 +153,7 @@
 #define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5
 #define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6
 #define DRM_VC4_PARAM_SUPPORTS_MADVISE 7
+#define DRM_VC4_PARAM_SUPPORTS_PERFMON 8
 struct drm_vc4_get_param {
   __u32 param;
   __u32 pad;
@@ -175,6 +184,52 @@
   __u32 retained;
   __u32 pad;
 };
+enum {
+  VC4_PERFCNT_FEP_VALID_PRIMS_NO_RENDER,
+  VC4_PERFCNT_FEP_VALID_PRIMS_RENDER,
+  VC4_PERFCNT_FEP_CLIPPED_QUADS,
+  VC4_PERFCNT_FEP_VALID_QUADS,
+  VC4_PERFCNT_TLB_QUADS_NOT_PASSING_STENCIL,
+  VC4_PERFCNT_TLB_QUADS_NOT_PASSING_Z_AND_STENCIL,
+  VC4_PERFCNT_TLB_QUADS_PASSING_Z_AND_STENCIL,
+  VC4_PERFCNT_TLB_QUADS_ZERO_COVERAGE,
+  VC4_PERFCNT_TLB_QUADS_NON_ZERO_COVERAGE,
+  VC4_PERFCNT_TLB_QUADS_WRITTEN_TO_COLOR_BUF,
+  VC4_PERFCNT_PLB_PRIMS_OUTSIDE_VIEWPORT,
+  VC4_PERFCNT_PLB_PRIMS_NEED_CLIPPING,
+  VC4_PERFCNT_PSE_PRIMS_REVERSED,
+  VC4_PERFCNT_QPU_TOTAL_IDLE_CYCLES,
+  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_VERTEX_COORD_SHADING,
+  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_FRAGMENT_SHADING,
+  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_EXEC_VALID_INST,
+  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_TMUS,
+  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_SCOREBOARD,
+  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_VARYINGS,
+  VC4_PERFCNT_QPU_TOTAL_INST_CACHE_HIT,
+  VC4_PERFCNT_QPU_TOTAL_INST_CACHE_MISS,
+  VC4_PERFCNT_QPU_TOTAL_UNIFORM_CACHE_HIT,
+  VC4_PERFCNT_QPU_TOTAL_UNIFORM_CACHE_MISS,
+  VC4_PERFCNT_TMU_TOTAL_TEXT_QUADS_PROCESSED,
+  VC4_PERFCNT_TMU_TOTAL_TEXT_CACHE_MISS,
+  VC4_PERFCNT_VPM_TOTAL_CLK_CYCLES_VDW_STALLED,
+  VC4_PERFCNT_VPM_TOTAL_CLK_CYCLES_VCD_STALLED,
+  VC4_PERFCNT_L2C_TOTAL_L2_CACHE_HIT,
+  VC4_PERFCNT_L2C_TOTAL_L2_CACHE_MISS,
+  VC4_PERFCNT_NUM_EVENTS,
+};
+#define DRM_VC4_MAX_PERF_COUNTERS 16
+struct drm_vc4_perfmon_create {
+  __u32 id;
+  __u32 ncounters;
+  __u8 events[DRM_VC4_MAX_PERF_COUNTERS];
+};
+struct drm_vc4_perfmon_destroy {
+  __u32 id;
+};
+struct drm_vc4_perfmon_get_values {
+  __u32 id;
+  __u64 values_ptr;
+};
 #ifdef __cplusplus
 #endif
 #endif
diff --git a/libc/kernel/uapi/drm/virtgpu_drm.h b/libc/kernel/uapi/drm/virtgpu_drm.h
index 31e6715..6b7fb0b 100644
--- a/libc/kernel/uapi/drm/virtgpu_drm.h
+++ b/libc/kernel/uapi/drm/virtgpu_drm.h
@@ -44,6 +44,7 @@
   __u32 pad;
 };
 #define VIRTGPU_PARAM_3D_FEATURES 1
+#define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
 struct drm_virtgpu_getparam {
   __u64 param;
   __u64 value;
diff --git a/libc/kernel/uapi/linux/arm_sdei.h b/libc/kernel/uapi/linux/arm_sdei.h
new file mode 100644
index 0000000..4ec9294
--- /dev/null
+++ b/libc/kernel/uapi/linux/arm_sdei.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_ARM_SDEI_H
+#define _UAPI_LINUX_ARM_SDEI_H
+#define SDEI_1_0_FN_BASE 0xC4000020
+#define SDEI_1_0_MASK 0xFFFFFFE0
+#define SDEI_1_0_FN(n) (SDEI_1_0_FN_BASE + (n))
+#define SDEI_1_0_FN_SDEI_VERSION SDEI_1_0_FN(0x00)
+#define SDEI_1_0_FN_SDEI_EVENT_REGISTER SDEI_1_0_FN(0x01)
+#define SDEI_1_0_FN_SDEI_EVENT_ENABLE SDEI_1_0_FN(0x02)
+#define SDEI_1_0_FN_SDEI_EVENT_DISABLE SDEI_1_0_FN(0x03)
+#define SDEI_1_0_FN_SDEI_EVENT_CONTEXT SDEI_1_0_FN(0x04)
+#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE SDEI_1_0_FN(0x05)
+#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE_AND_RESUME SDEI_1_0_FN(0x06)
+#define SDEI_1_0_FN_SDEI_EVENT_UNREGISTER SDEI_1_0_FN(0x07)
+#define SDEI_1_0_FN_SDEI_EVENT_STATUS SDEI_1_0_FN(0x08)
+#define SDEI_1_0_FN_SDEI_EVENT_GET_INFO SDEI_1_0_FN(0x09)
+#define SDEI_1_0_FN_SDEI_EVENT_ROUTING_SET SDEI_1_0_FN(0x0A)
+#define SDEI_1_0_FN_SDEI_PE_MASK SDEI_1_0_FN(0x0B)
+#define SDEI_1_0_FN_SDEI_PE_UNMASK SDEI_1_0_FN(0x0C)
+#define SDEI_1_0_FN_SDEI_INTERRUPT_BIND SDEI_1_0_FN(0x0D)
+#define SDEI_1_0_FN_SDEI_INTERRUPT_RELEASE SDEI_1_0_FN(0x0E)
+#define SDEI_1_0_FN_SDEI_PRIVATE_RESET SDEI_1_0_FN(0x11)
+#define SDEI_1_0_FN_SDEI_SHARED_RESET SDEI_1_0_FN(0x12)
+#define SDEI_VERSION_MAJOR_SHIFT 48
+#define SDEI_VERSION_MAJOR_MASK 0x7fff
+#define SDEI_VERSION_MINOR_SHIFT 32
+#define SDEI_VERSION_MINOR_MASK 0xffff
+#define SDEI_VERSION_VENDOR_SHIFT 0
+#define SDEI_VERSION_VENDOR_MASK 0xffffffff
+#define SDEI_VERSION_MAJOR(x) (x >> SDEI_VERSION_MAJOR_SHIFT & SDEI_VERSION_MAJOR_MASK)
+#define SDEI_VERSION_MINOR(x) (x >> SDEI_VERSION_MINOR_SHIFT & SDEI_VERSION_MINOR_MASK)
+#define SDEI_VERSION_VENDOR(x) (x >> SDEI_VERSION_VENDOR_SHIFT & SDEI_VERSION_VENDOR_MASK)
+#define SDEI_SUCCESS 0
+#define SDEI_NOT_SUPPORTED - 1
+#define SDEI_INVALID_PARAMETERS - 2
+#define SDEI_DENIED - 3
+#define SDEI_PENDING - 5
+#define SDEI_OUT_OF_RESOURCE - 10
+#define SDEI_EVENT_REGISTER_RM_ANY 0
+#define SDEI_EVENT_REGISTER_RM_PE 1
+#define SDEI_EVENT_STATUS_RUNNING 2
+#define SDEI_EVENT_STATUS_ENABLED 1
+#define SDEI_EVENT_STATUS_REGISTERED 0
+#define SDEI_EV_HANDLED 0
+#define SDEI_EV_FAILED 1
+#define SDEI_EVENT_INFO_EV_TYPE 0
+#define SDEI_EVENT_INFO_EV_SIGNALED 1
+#define SDEI_EVENT_INFO_EV_PRIORITY 2
+#define SDEI_EVENT_INFO_EV_ROUTING_MODE 3
+#define SDEI_EVENT_INFO_EV_ROUTING_AFF 4
+#define SDEI_EVENT_TYPE_PRIVATE 0
+#define SDEI_EVENT_TYPE_SHARED 1
+#define SDEI_EVENT_PRIORITY_NORMAL 0
+#define SDEI_EVENT_PRIORITY_CRITICAL 1
+#endif
diff --git a/libc/kernel/uapi/linux/batadv_packet.h b/libc/kernel/uapi/linux/batadv_packet.h
new file mode 100644
index 0000000..6d5226c
--- /dev/null
+++ b/libc/kernel/uapi/linux/batadv_packet.h
@@ -0,0 +1,280 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_BATADV_PACKET_H_
+#define _UAPI_LINUX_BATADV_PACKET_H_
+#include <asm/byteorder.h>
+#include <linux/if_ether.h>
+#include <linux/types.h>
+#define batadv_tp_is_error(n) ((__u8) (n) > 127 ? 1 : 0)
+enum batadv_packettype {
+  BATADV_IV_OGM = 0x00,
+  BATADV_BCAST = 0x01,
+  BATADV_CODED = 0x02,
+  BATADV_ELP = 0x03,
+  BATADV_OGM2 = 0x04,
+#define BATADV_UNICAST_MIN 0x40
+  BATADV_UNICAST = 0x40,
+  BATADV_UNICAST_FRAG = 0x41,
+  BATADV_UNICAST_4ADDR = 0x42,
+  BATADV_ICMP = 0x43,
+  BATADV_UNICAST_TVLV = 0x44,
+#define BATADV_UNICAST_MAX 0x7f
+};
+enum batadv_subtype {
+  BATADV_P_DATA = 0x01,
+  BATADV_P_DAT_DHT_GET = 0x02,
+  BATADV_P_DAT_DHT_PUT = 0x03,
+  BATADV_P_DAT_CACHE_REPLY = 0x04,
+};
+#define BATADV_COMPAT_VERSION 15
+enum batadv_iv_flags {
+  BATADV_NOT_BEST_NEXT_HOP = 1UL << 0,
+  BATADV_PRIMARIES_FIRST_HOP = 1UL << 1,
+  BATADV_DIRECTLINK = 1UL << 2,
+};
+enum batadv_icmp_packettype {
+  BATADV_ECHO_REPLY = 0,
+  BATADV_DESTINATION_UNREACHABLE = 3,
+  BATADV_ECHO_REQUEST = 8,
+  BATADV_TTL_EXCEEDED = 11,
+  BATADV_PARAMETER_PROBLEM = 12,
+  BATADV_TP = 15,
+};
+enum batadv_mcast_flags {
+  BATADV_MCAST_WANT_ALL_UNSNOOPABLES = 1UL << 0,
+  BATADV_MCAST_WANT_ALL_IPV4 = 1UL << 1,
+  BATADV_MCAST_WANT_ALL_IPV6 = 1UL << 2,
+};
+#define BATADV_TT_DATA_TYPE_MASK 0x0F
+enum batadv_tt_data_flags {
+  BATADV_TT_OGM_DIFF = 1UL << 0,
+  BATADV_TT_REQUEST = 1UL << 1,
+  BATADV_TT_RESPONSE = 1UL << 2,
+  BATADV_TT_FULL_TABLE = 1UL << 4,
+};
+enum batadv_vlan_flags {
+  BATADV_VLAN_HAS_TAG = 1UL << 15,
+};
+enum batadv_bla_claimframe {
+  BATADV_CLAIM_TYPE_CLAIM = 0x00,
+  BATADV_CLAIM_TYPE_UNCLAIM = 0x01,
+  BATADV_CLAIM_TYPE_ANNOUNCE = 0x02,
+  BATADV_CLAIM_TYPE_REQUEST = 0x03,
+  BATADV_CLAIM_TYPE_LOOPDETECT = 0x04,
+};
+enum batadv_tvlv_type {
+  BATADV_TVLV_GW = 0x01,
+  BATADV_TVLV_DAT = 0x02,
+  BATADV_TVLV_NC = 0x03,
+  BATADV_TVLV_TT = 0x04,
+  BATADV_TVLV_ROAM = 0x05,
+  BATADV_TVLV_MCAST = 0x06,
+};
+#pragma pack(2)
+struct batadv_bla_claim_dst {
+  __u8 magic[3];
+  __u8 type;
+  __be16 group;
+};
+struct batadv_ogm_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 flags;
+  __be32 seqno;
+  __u8 orig[ETH_ALEN];
+  __u8 prev_sender[ETH_ALEN];
+  __u8 reserved;
+  __u8 tq;
+  __be16 tvlv_len;
+};
+#define BATADV_OGM_HLEN sizeof(struct batadv_ogm_packet)
+struct batadv_ogm2_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 flags;
+  __be32 seqno;
+  __u8 orig[ETH_ALEN];
+  __be16 tvlv_len;
+  __be32 throughput;
+};
+#define BATADV_OGM2_HLEN sizeof(struct batadv_ogm2_packet)
+struct batadv_elp_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 orig[ETH_ALEN];
+  __be32 seqno;
+  __be32 elp_interval;
+};
+#define BATADV_ELP_HLEN sizeof(struct batadv_elp_packet)
+struct batadv_icmp_header {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 msg_type;
+  __u8 dst[ETH_ALEN];
+  __u8 orig[ETH_ALEN];
+  __u8 uid;
+  __u8 align[3];
+};
+struct batadv_icmp_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 msg_type;
+  __u8 dst[ETH_ALEN];
+  __u8 orig[ETH_ALEN];
+  __u8 uid;
+  __u8 reserved;
+  __be16 seqno;
+};
+struct batadv_icmp_tp_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 msg_type;
+  __u8 dst[ETH_ALEN];
+  __u8 orig[ETH_ALEN];
+  __u8 uid;
+  __u8 subtype;
+  __u8 session[2];
+  __be32 seqno;
+  __be32 timestamp;
+};
+enum batadv_icmp_tp_subtype {
+  BATADV_TP_MSG = 0,
+  BATADV_TP_ACK,
+};
+#define BATADV_RR_LEN 16
+struct batadv_icmp_packet_rr {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 msg_type;
+  __u8 dst[ETH_ALEN];
+  __u8 orig[ETH_ALEN];
+  __u8 uid;
+  __u8 rr_cur;
+  __be16 seqno;
+  __u8 rr[BATADV_RR_LEN][ETH_ALEN];
+};
+#define BATADV_ICMP_MAX_PACKET_SIZE sizeof(struct batadv_icmp_packet_rr)
+struct batadv_unicast_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 ttvn;
+  __u8 dest[ETH_ALEN];
+};
+struct batadv_unicast_4addr_packet {
+  struct batadv_unicast_packet u;
+  __u8 src[ETH_ALEN];
+  __u8 subtype;
+  __u8 reserved;
+};
+struct batadv_frag_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+#ifdef __BIG_ENDIAN_BITFIELD
+  __u8 no : 4;
+  __u8 priority : 3;
+  __u8 reserved : 1;
+#elif defined(__LITTLE_ENDIAN_BITFIELD)
+  __u8 reserved : 1;
+  __u8 priority : 3;
+  __u8 no : 4;
+#else
+#error "unknown bitfield endianness"
+#endif
+  __u8 dest[ETH_ALEN];
+  __u8 orig[ETH_ALEN];
+  __be16 seqno;
+  __be16 total_size;
+};
+struct batadv_bcast_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 reserved;
+  __be32 seqno;
+  __u8 orig[ETH_ALEN];
+};
+struct batadv_coded_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 first_ttvn;
+  __u8 first_source[ETH_ALEN];
+  __u8 first_orig_dest[ETH_ALEN];
+  __be32 first_crc;
+  __u8 second_ttl;
+  __u8 second_ttvn;
+  __u8 second_dest[ETH_ALEN];
+  __u8 second_source[ETH_ALEN];
+  __u8 second_orig_dest[ETH_ALEN];
+  __be32 second_crc;
+  __be16 coded_len;
+};
+struct batadv_unicast_tvlv_packet {
+  __u8 packet_type;
+  __u8 version;
+  __u8 ttl;
+  __u8 reserved;
+  __u8 dst[ETH_ALEN];
+  __u8 src[ETH_ALEN];
+  __be16 tvlv_len;
+  __u16 align;
+};
+struct batadv_tvlv_hdr {
+  __u8 type;
+  __u8 version;
+  __be16 len;
+};
+struct batadv_tvlv_gateway_data {
+  __be32 bandwidth_down;
+  __be32 bandwidth_up;
+};
+struct batadv_tvlv_tt_data {
+  __u8 flags;
+  __u8 ttvn;
+  __be16 num_vlan;
+};
+struct batadv_tvlv_tt_vlan_data {
+  __be32 crc;
+  __be16 vid;
+  __u16 reserved;
+};
+struct batadv_tvlv_tt_change {
+  __u8 flags;
+  __u8 reserved[3];
+  __u8 addr[ETH_ALEN];
+  __be16 vid;
+};
+struct batadv_tvlv_roam_adv {
+  __u8 client[ETH_ALEN];
+  __be16 vid;
+};
+struct batadv_tvlv_mcast_data {
+  __u8 flags;
+  __u8 reserved[3];
+};
+#pragma pack()
+#endif
diff --git a/libc/kernel/uapi/linux/batman_adv.h b/libc/kernel/uapi/linux/batman_adv.h
index 65568f9..efec2bb 100644
--- a/libc/kernel/uapi/linux/batman_adv.h
+++ b/libc/kernel/uapi/linux/batman_adv.h
@@ -30,6 +30,13 @@
   BATADV_TT_CLIENT_PENDING = (1 << 10),
   BATADV_TT_CLIENT_TEMP = (1 << 11),
 };
+enum batadv_mcast_flags_priv {
+  BATADV_MCAST_FLAGS_BRIDGED = (1 << 0),
+  BATADV_MCAST_FLAGS_QUERIER_IPV4_EXISTS = (1 << 1),
+  BATADV_MCAST_FLAGS_QUERIER_IPV6_EXISTS = (1 << 2),
+  BATADV_MCAST_FLAGS_QUERIER_IPV4_SHADOWING = (1 << 3),
+  BATADV_MCAST_FLAGS_QUERIER_IPV6_SHADOWING = (1 << 4),
+};
 enum batadv_nl_attrs {
   BATADV_ATTR_UNSPEC,
   BATADV_ATTR_VERSION,
@@ -66,6 +73,11 @@
   BATADV_ATTR_BLA_VID,
   BATADV_ATTR_BLA_BACKBONE,
   BATADV_ATTR_BLA_CRC,
+  BATADV_ATTR_DAT_CACHE_IP4ADDRESS,
+  BATADV_ATTR_DAT_CACHE_HWADDRESS,
+  BATADV_ATTR_DAT_CACHE_VID,
+  BATADV_ATTR_MCAST_FLAGS,
+  BATADV_ATTR_MCAST_FLAGS_PRIV,
   __BATADV_ATTR_AFTER_LAST,
   NUM_BATADV_ATTR = __BATADV_ATTR_AFTER_LAST,
   BATADV_ATTR_MAX = __BATADV_ATTR_AFTER_LAST - 1
@@ -84,6 +96,8 @@
   BATADV_CMD_GET_GATEWAYS,
   BATADV_CMD_GET_BLA_CLAIM,
   BATADV_CMD_GET_BLA_BACKBONE,
+  BATADV_CMD_GET_DAT_CACHE,
+  BATADV_CMD_GET_MCAST_FLAGS,
   __BATADV_CMD_AFTER_LAST,
   BATADV_CMD_MAX = __BATADV_CMD_AFTER_LAST - 1
 };
diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h
index 9ac0729..0eb0d45 100644
--- a/libc/kernel/uapi/linux/bpf.h
+++ b/libc/kernel/uapi/linux/bpf.h
@@ -83,6 +83,7 @@
   BPF_MAP_GET_FD_BY_ID,
   BPF_OBJ_GET_INFO_BY_FD,
   BPF_PROG_QUERY,
+  BPF_RAW_TRACEPOINT_OPEN,
 };
 enum bpf_map_type {
   BPF_MAP_TYPE_UNSPEC,
@@ -120,6 +121,9 @@
   BPF_PROG_TYPE_SOCK_OPS,
   BPF_PROG_TYPE_SK_SKB,
   BPF_PROG_TYPE_CGROUP_DEVICE,
+  BPF_PROG_TYPE_SK_MSG,
+  BPF_PROG_TYPE_RAW_TRACEPOINT,
+  BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
 };
 enum bpf_attach_type {
   BPF_CGROUP_INET_INGRESS,
@@ -129,6 +133,13 @@
   BPF_SK_SKB_STREAM_PARSER,
   BPF_SK_SKB_STREAM_VERDICT,
   BPF_CGROUP_DEVICE,
+  BPF_SK_MSG_VERDICT,
+  BPF_CGROUP_INET4_BIND,
+  BPF_CGROUP_INET6_BIND,
+  BPF_CGROUP_INET4_CONNECT,
+  BPF_CGROUP_INET6_CONNECT,
+  BPF_CGROUP_INET4_POST_BIND,
+  BPF_CGROUP_INET6_POST_BIND,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -136,6 +147,7 @@
 #define BPF_F_ALLOW_MULTI (1U << 1)
 #define BPF_F_STRICT_ALIGNMENT (1U << 0)
 #define BPF_PSEUDO_MAP_FD 1
+#define BPF_PSEUDO_CALL 1
 #define BPF_ANY 0
 #define BPF_NOEXIST 1
 #define BPF_EXIST 2
@@ -146,6 +158,21 @@
 #define BPF_OBJ_NAME_LEN 16U
 #define BPF_F_RDONLY (1U << 3)
 #define BPF_F_WRONLY (1U << 4)
+#define BPF_F_STACK_BUILD_ID (1U << 5)
+enum bpf_stack_build_id_status {
+  BPF_STACK_BUILD_ID_EMPTY = 0,
+  BPF_STACK_BUILD_ID_VALID = 1,
+  BPF_STACK_BUILD_ID_IP = 2,
+};
+#define BPF_BUILD_ID_SIZE 20
+struct bpf_stack_build_id {
+  __s32 status;
+  unsigned char build_id[BPF_BUILD_ID_SIZE];
+  union {
+    __u64 offset;
+    __u64 ip;
+  };
+};
 union bpf_attr {
   struct {
     __u32 map_type;
@@ -156,6 +183,7 @@
     __u32 inner_map_fd;
     __u32 numa_node;
     char map_name[BPF_OBJ_NAME_LEN];
+    __u32 map_ifindex;
   };
   struct {
     __u32 map_fd;
@@ -178,6 +206,7 @@
     __u32 prog_flags;
     char prog_name[BPF_OBJ_NAME_LEN];
     __u32 prog_ifindex;
+    __u32 expected_attach_type;
   };
   struct {
     __aligned_u64 pathname;
@@ -222,8 +251,12 @@
     __aligned_u64 prog_ids;
     __u32 prog_cnt;
   } query;
+  struct {
+    __u64 name;
+    __u32 prog_fd;
+  } raw_tracepoint;
 } __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),
+#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),
 #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
 enum bpf_func_id {
   __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
@@ -243,6 +276,7 @@
 #define BPF_F_REUSE_STACKID (1ULL << 10)
 #define BPF_F_ZERO_CSUM_TX (1ULL << 1)
 #define BPF_F_DONT_FRAGMENT (1ULL << 2)
+#define BPF_F_SEQ_NUMBER (1ULL << 3)
 #define BPF_F_INDEX_MASK 0xffffffffULL
 #define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK
 #define BPF_F_CTXLEN_MASK (0xfffffULL << 32)
@@ -300,6 +334,9 @@
   __u32 protocol;
   __u32 mark;
   __u32 priority;
+  __u32 src_ip4;
+  __u32 src_ip6[4];
+  __u32 src_port;
 };
 #define XDP_PACKET_HEADROOM 256
 enum xdp_action {
@@ -313,11 +350,17 @@
   __u32 data;
   __u32 data_end;
   __u32 data_meta;
+  __u32 ingress_ifindex;
+  __u32 rx_queue_index;
 };
 enum sk_action {
   SK_DROP = 0,
   SK_PASS,
 };
+struct sk_msg_md {
+  void * data;
+  void * data_end;
+};
 #define BPF_TAG_SIZE 8
 struct bpf_prog_info {
   __u32 type;
@@ -332,6 +375,10 @@
   __u32 nr_map_ids;
   __aligned_u64 map_ids;
   char name[BPF_OBJ_NAME_LEN];
+  __u32 ifindex;
+  __u32 : 32;
+  __u64 netns_dev;
+  __u64 netns_ino;
 } __attribute__((aligned(8)));
 struct bpf_map_info {
   __u32 type;
@@ -341,10 +388,24 @@
   __u32 max_entries;
   __u32 map_flags;
   char name[BPF_OBJ_NAME_LEN];
+  __u32 ifindex;
+  __u32 : 32;
+  __u64 netns_dev;
+  __u64 netns_ino;
 } __attribute__((aligned(8)));
+struct bpf_sock_addr {
+  __u32 user_family;
+  __u32 user_ip4;
+  __u32 user_ip6[4];
+  __u32 user_port;
+  __u32 family;
+  __u32 type;
+  __u32 protocol;
+};
 struct bpf_sock_ops {
   __u32 op;
   union {
+    __u32 args[4];
     __u32 reply;
     __u32 replylong[4];
   };
@@ -355,7 +416,37 @@
   __u32 local_ip6[4];
   __u32 remote_port;
   __u32 local_port;
+  __u32 is_fullsock;
+  __u32 snd_cwnd;
+  __u32 srtt_us;
+  __u32 bpf_sock_ops_cb_flags;
+  __u32 state;
+  __u32 rtt_min;
+  __u32 snd_ssthresh;
+  __u32 rcv_nxt;
+  __u32 snd_nxt;
+  __u32 snd_una;
+  __u32 mss_cache;
+  __u32 ecn_flags;
+  __u32 rate_delivered;
+  __u32 rate_interval_us;
+  __u32 packets_out;
+  __u32 retrans_out;
+  __u32 total_retrans;
+  __u32 segs_in;
+  __u32 data_segs_in;
+  __u32 segs_out;
+  __u32 data_segs_out;
+  __u32 lost_out;
+  __u32 sacked_out;
+  __u32 sk_txhash;
+  __u64 bytes_received;
+  __u64 bytes_acked;
 };
+#define BPF_SOCK_OPS_RTO_CB_FLAG (1 << 0)
+#define BPF_SOCK_OPS_RETRANS_CB_FLAG (1 << 1)
+#define BPF_SOCK_OPS_STATE_CB_FLAG (1 << 2)
+#define BPF_SOCK_OPS_ALL_CB_FLAGS 0x7
 enum {
   BPF_SOCK_OPS_VOID,
   BPF_SOCK_OPS_TIMEOUT_INIT,
@@ -365,6 +456,24 @@
   BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB,
   BPF_SOCK_OPS_NEEDS_ECN,
   BPF_SOCK_OPS_BASE_RTT,
+  BPF_SOCK_OPS_RTO_CB,
+  BPF_SOCK_OPS_RETRANS_CB,
+  BPF_SOCK_OPS_STATE_CB,
+};
+enum {
+  BPF_TCP_ESTABLISHED = 1,
+  BPF_TCP_SYN_SENT,
+  BPF_TCP_SYN_RECV,
+  BPF_TCP_FIN_WAIT1,
+  BPF_TCP_FIN_WAIT2,
+  BPF_TCP_TIME_WAIT,
+  BPF_TCP_CLOSE,
+  BPF_TCP_CLOSE_WAIT,
+  BPF_TCP_LAST_ACK,
+  BPF_TCP_LISTEN,
+  BPF_TCP_CLOSING,
+  BPF_TCP_NEW_SYN_RECV,
+  BPF_TCP_MAX_STATES
 };
 #define TCP_BPF_IW 1001
 #define TCP_BPF_SNDCWND_CLAMP 1002
@@ -383,4 +492,7 @@
   __u32 major;
   __u32 minor;
 };
+struct bpf_raw_tracepoint_args {
+  __u64 args[0];
+};
 #endif
diff --git a/libc/kernel/uapi/linux/bpf_perf_event.h b/libc/kernel/uapi/linux/bpf_perf_event.h
index 7a8d212..190b916 100644
--- a/libc/kernel/uapi/linux/bpf_perf_event.h
+++ b/libc/kernel/uapi/linux/bpf_perf_event.h
@@ -22,5 +22,6 @@
 struct bpf_perf_event_data {
   bpf_user_pt_regs_t regs;
   __u64 sample_period;
+  __u64 addr;
 };
 #endif
diff --git a/libc/kernel/uapi/linux/btrfs.h b/libc/kernel/uapi/linux/btrfs.h
index aa7c105..a162bb0 100644
--- a/libc/kernel/uapi/linux/btrfs.h
+++ b/libc/kernel/uapi/linux/btrfs.h
@@ -29,6 +29,10 @@
   char name[BTRFS_PATH_NAME_MAX + 1];
 };
 #define BTRFS_DEVICE_PATH_NAME_MAX 1024
+#define BTRFS_SUBVOL_NAME_MAX 4039
+#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
+#define BTRFS_SUBVOL_RDONLY (1ULL << 1)
+#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2)
 #define BTRFS_DEVICE_SPEC_BY_ID (1ULL << 3)
 #define BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED (BTRFS_SUBVOL_CREATE_ASYNC | BTRFS_SUBVOL_RDONLY | BTRFS_SUBVOL_QGROUP_INHERIT | BTRFS_DEVICE_SPEC_BY_ID)
 #define BTRFS_FSID_SIZE 16
@@ -60,10 +64,6 @@
   __u64 qgroupid;
   struct btrfs_qgroup_limit lim;
 };
-#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0)
-#define BTRFS_SUBVOL_RDONLY (1ULL << 1)
-#define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2)
-#define BTRFS_SUBVOL_NAME_MAX 4039
 struct btrfs_ioctl_vol_args_v2 {
   __s64 fd;
   __u64 transid;
diff --git a/libc/kernel/uapi/linux/btrfs_tree.h b/libc/kernel/uapi/linux/btrfs_tree.h
index c2fbd40..6a461ec 100644
--- a/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/libc/kernel/uapi/linux/btrfs_tree.h
@@ -164,6 +164,8 @@
 #define BTRFS_SUPER_FLAG_ERROR (1ULL << 2)
 #define BTRFS_SUPER_FLAG_SEEDING (1ULL << 32)
 #define BTRFS_SUPER_FLAG_METADUMP (1ULL << 33)
+#define BTRFS_SUPER_FLAG_METADUMP_V2 (1ULL << 34)
+#define BTRFS_SUPER_FLAG_CHANGING_FSID (1ULL << 35)
 struct btrfs_extent_item {
   __le64 refs;
   __le64 generation;
diff --git a/libc/kernel/uapi/linux/can/netlink.h b/libc/kernel/uapi/linux/can/netlink.h
index 7df626d..ddf9058 100644
--- a/libc/kernel/uapi/linux/can/netlink.h
+++ b/libc/kernel/uapi/linux/can/netlink.h
@@ -92,6 +92,7 @@
   IFLA_CAN_TERMINATION_CONST,
   IFLA_CAN_BITRATE_CONST,
   IFLA_CAN_DATA_BITRATE_CONST,
+  IFLA_CAN_BITRATE_MAX,
   __IFLA_CAN_MAX
 };
 #define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
diff --git a/libc/kernel/uapi/linux/const.h b/libc/kernel/uapi/linux/const.h
index 82b8bcd..6a4c1f7 100644
--- a/libc/kernel/uapi/linux/const.h
+++ b/libc/kernel/uapi/linux/const.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _LINUX_CONST_H
-#define _LINUX_CONST_H
+#ifndef _UAPI_LINUX_CONST_H
+#define _UAPI_LINUX_CONST_H
 #ifdef __ASSEMBLY__
 #define _AC(X,Y) X
 #define _AT(T,X) X
@@ -26,6 +26,8 @@
 #define _AC(X,Y) __AC(X, Y)
 #define _AT(T,X) ((T) (X))
 #endif
-#define _BITUL(x) (_AC(1, UL) << (x))
-#define _BITULL(x) (_AC(1, ULL) << (x))
+#define _UL(x) (_AC(x, UL))
+#define _ULL(x) (_AC(x, ULL))
+#define _BITUL(x) (_UL(1) << (x))
+#define _BITULL(x) (_ULL(1) << (x))
 #endif
diff --git a/libc/kernel/uapi/linux/devlink.h b/libc/kernel/uapi/linux/devlink.h
index 1d5c43c..07c5752 100644
--- a/libc/kernel/uapi/linux/devlink.h
+++ b/libc/kernel/uapi/linux/devlink.h
@@ -59,6 +59,9 @@
   DEVLINK_CMD_DPIPE_ENTRIES_GET,
   DEVLINK_CMD_DPIPE_HEADERS_GET,
   DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
+  DEVLINK_CMD_RESOURCE_SET,
+  DEVLINK_CMD_RESOURCE_DUMP,
+  DEVLINK_CMD_RELOAD,
   __DEVLINK_CMD_MAX,
   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
 };
@@ -155,6 +158,20 @@
   DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE,
   DEVLINK_ATTR_PAD,
   DEVLINK_ATTR_ESWITCH_ENCAP_MODE,
+  DEVLINK_ATTR_RESOURCE_LIST,
+  DEVLINK_ATTR_RESOURCE,
+  DEVLINK_ATTR_RESOURCE_NAME,
+  DEVLINK_ATTR_RESOURCE_ID,
+  DEVLINK_ATTR_RESOURCE_SIZE,
+  DEVLINK_ATTR_RESOURCE_SIZE_NEW,
+  DEVLINK_ATTR_RESOURCE_SIZE_VALID,
+  DEVLINK_ATTR_RESOURCE_SIZE_MIN,
+  DEVLINK_ATTR_RESOURCE_SIZE_MAX,
+  DEVLINK_ATTR_RESOURCE_SIZE_GRAN,
+  DEVLINK_ATTR_RESOURCE_UNIT,
+  DEVLINK_ATTR_RESOURCE_OCC,
+  DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID,
+  DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS,
   __DEVLINK_ATTR_MAX,
   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
 };
@@ -182,4 +199,7 @@
   DEVLINK_DPIPE_HEADER_IPV4,
   DEVLINK_DPIPE_HEADER_IPV6,
 };
+enum devlink_resource_unit {
+  DEVLINK_RESOURCE_UNIT_ENTRY,
+};
 #endif
diff --git a/libc/kernel/uapi/linux/dm-ioctl.h b/libc/kernel/uapi/linux/dm-ioctl.h
index cc340b5..05847a7 100644
--- a/libc/kernel/uapi/linux/dm-ioctl.h
+++ b/libc/kernel/uapi/linux/dm-ioctl.h
@@ -102,9 +102,9 @@
 #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 #define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 37
+#define DM_VERSION_MINOR 39
 #define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl(2017-09-20)"
+#define DM_VERSION_EXTRA "-ioctl(2018-04-03)"
 #define DM_READONLY_FLAG (1 << 0)
 #define DM_SUSPEND_FLAG (1 << 1)
 #define DM_PERSISTENT_DEV_FLAG (1 << 3)
diff --git a/libc/kernel/uapi/linux/dvb/dmx.h b/libc/kernel/uapi/linux/dvb/dmx.h
index d4ea26e..e142e57 100644
--- a/libc/kernel/uapi/linux/dvb/dmx.h
+++ b/libc/kernel/uapi/linux/dvb/dmx.h
@@ -85,6 +85,30 @@
   unsigned int base;
   __u64 stc;
 };
+enum dmx_buffer_flags {
+  DMX_BUFFER_FLAG_HAD_CRC32_DISCARD = 1 << 0,
+  DMX_BUFFER_FLAG_TEI = 1 << 1,
+  DMX_BUFFER_PKT_COUNTER_MISMATCH = 1 << 2,
+  DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED = 1 << 3,
+  DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR = 1 << 4,
+};
+struct dmx_buffer {
+  __u32 index;
+  __u32 bytesused;
+  __u32 offset;
+  __u32 length;
+  __u32 flags;
+  __u32 count;
+};
+struct dmx_requestbuffers {
+  __u32 count;
+  __u32 size;
+};
+struct dmx_exportbuffer {
+  __u32 index;
+  __u32 flags;
+  __s32 fd;
+};
 #define DMX_START _IO('o', 41)
 #define DMX_STOP _IO('o', 42)
 #define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params)
@@ -98,4 +122,9 @@
 typedef enum dmx_input dmx_input_t;
 typedef enum dmx_ts_pes dmx_pes_type_t;
 typedef struct dmx_filter dmx_filter_t;
+#define DMX_REQBUFS _IOWR('o', 60, struct dmx_requestbuffers)
+#define DMX_QUERYBUF _IOWR('o', 61, struct dmx_buffer)
+#define DMX_EXPBUF _IOWR('o', 62, struct dmx_exportbuffer)
+#define DMX_QBUF _IOWR('o', 63, struct dmx_buffer)
+#define DMX_DQBUF _IOWR('o', 64, struct dmx_buffer)
 #endif
diff --git a/libc/kernel/uapi/linux/dvb/frontend.h b/libc/kernel/uapi/linux/dvb/frontend.h
index c8a48c1..d060138 100644
--- a/libc/kernel/uapi/linux/dvb/frontend.h
+++ b/libc/kernel/uapi/linux/dvb/frontend.h
@@ -247,7 +247,8 @@
 #define DTV_STAT_POST_TOTAL_BIT_COUNT 67
 #define DTV_STAT_ERROR_BLOCK_COUNT 68
 #define DTV_STAT_TOTAL_BLOCK_COUNT 69
-#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
+#define DTV_SCRAMBLING_SEQUENCE_INDEX 70
+#define DTV_MAX_COMMAND DTV_SCRAMBLING_SEQUENCE_INDEX
 enum fe_pilot {
   PILOT_ON,
   PILOT_OFF,
diff --git a/libc/kernel/uapi/linux/dvb/version.h b/libc/kernel/uapi/linux/dvb/version.h
index 35cbfb1..47c8c74 100644
--- a/libc/kernel/uapi/linux/dvb/version.h
+++ b/libc/kernel/uapi/linux/dvb/version.h
@@ -19,5 +19,5 @@
 #ifndef _DVBVERSION_H_
 #define _DVBVERSION_H_
 #define DVB_API_VERSION 5
-#define DVB_API_VERSION_MINOR 10
+#define DVB_API_VERSION_MINOR 11
 #endif
diff --git a/libc/kernel/uapi/linux/elf.h b/libc/kernel/uapi/linux/elf.h
index bf35f6c..195ef09 100644
--- a/libc/kernel/uapi/linux/elf.h
+++ b/libc/kernel/uapi/linux/elf.h
@@ -331,6 +331,7 @@
 #define NT_PPC_TM_CTAR 0x10d
 #define NT_PPC_TM_CPPR 0x10e
 #define NT_PPC_TM_CDSCR 0x10f
+#define NT_PPC_PKEY 0x110
 #define NT_386_TLS 0x200
 #define NT_386_IOPERM 0x201
 #define NT_X86_XSTATE 0x202
@@ -354,9 +355,6 @@
 #define NT_ARM_HW_WATCH 0x403
 #define NT_ARM_SYSTEM_CALL 0x404
 #define NT_ARM_SVE 0x405
-#define NT_METAG_CBUF 0x500
-#define NT_METAG_RPIPE 0x501
-#define NT_METAG_TLS 0x502
 #define NT_ARC_V2 0x600
 typedef struct elf32_note {
   Elf32_Word n_namesz;
diff --git a/libc/kernel/uapi/linux/erspan.h b/libc/kernel/uapi/linux/erspan.h
new file mode 100644
index 0000000..790a85e
--- /dev/null
+++ b/libc/kernel/uapi/linux/erspan.h
@@ -0,0 +1,43 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_ERSPAN_H
+#define _UAPI_ERSPAN_H
+#include <linux/types.h>
+#include <asm/byteorder.h>
+struct erspan_md2 {
+  __be32 timestamp;
+  __be16 sgt;
+#ifdef __LITTLE_ENDIAN_BITFIELD
+  __u8 hwid_upper : 2, ft : 5, p : 1;
+  __u8 o : 1, gra : 2, dir : 1, hwid : 4;
+#elif defined(__BIG_ENDIAN_BITFIELD)
+  __u8 p : 1, ft : 5, hwid_upper : 2;
+  __u8 hwid : 4, dir : 1, gra : 2, o : 1;
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+};
+struct erspan_metadata {
+  int version;
+  union {
+    __be32 index;
+    struct erspan_md2 md2;
+  } u;
+};
+#endif
diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h
index 6f1c0f3..92607f9 100644
--- a/libc/kernel/uapi/linux/ethtool.h
+++ b/libc/kernel/uapi/linux/ethtool.h
@@ -71,10 +71,13 @@
   __u32 cmd;
   __u32 data;
 };
+#define PFC_STORM_PREVENTION_AUTO 0xffff
+#define PFC_STORM_PREVENTION_DISABLE 0
 enum tunable_id {
   ETHTOOL_ID_UNSPEC,
   ETHTOOL_RX_COPYBREAK,
   ETHTOOL_TX_COPYBREAK,
+  ETHTOOL_PFC_PREVENTION_TOUT,
   __ETHTOOL_TUNABLE_COUNT,
 };
 enum tunable_type_id {
@@ -332,6 +335,7 @@
   __u32 rsvd32;
   __u32 rss_config[0];
 };
+#define ETH_RXFH_CONTEXT_ALLOC 0xffffffff
 #define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff
 struct ethtool_rx_ntuple_flow_spec {
   __u32 flow_type;
@@ -699,6 +703,7 @@
 #define ETHER_FLOW 0x12
 #define FLOW_EXT 0x80000000
 #define FLOW_MAC_EXT 0x40000000
+#define FLOW_RSS 0x20000000
 #define RXH_L2DA (1 << 1)
 #define RXH_VLAN (1 << 2)
 #define RXH_L3_PROTO (1 << 3)
@@ -729,6 +734,7 @@
   ETH_RESET_MAC = 1 << 5,
   ETH_RESET_PHY = 1 << 6,
   ETH_RESET_RAM = 1 << 7,
+  ETH_RESET_AP = 1 << 8,
   ETH_RESET_DEDICATED = 0x0000ffff,
   ETH_RESET_ALL = 0xffffffff,
 };
diff --git a/libc/kernel/uapi/linux/eventpoll.h b/libc/kernel/uapi/linux/eventpoll.h
index eec1077..2e5ba8e 100644
--- a/libc/kernel/uapi/linux/eventpoll.h
+++ b/libc/kernel/uapi/linux/eventpoll.h
@@ -25,21 +25,22 @@
 #define EPOLL_CTL_ADD 1
 #define EPOLL_CTL_DEL 2
 #define EPOLL_CTL_MOD 3
-#define EPOLLIN 0x00000001
-#define EPOLLPRI 0x00000002
-#define EPOLLOUT 0x00000004
-#define EPOLLERR 0x00000008
-#define EPOLLHUP 0x00000010
-#define EPOLLRDNORM 0x00000040
-#define EPOLLRDBAND 0x00000080
-#define EPOLLWRNORM 0x00000100
-#define EPOLLWRBAND 0x00000200
-#define EPOLLMSG 0x00000400
-#define EPOLLRDHUP 0x00002000
-#define EPOLLEXCLUSIVE (1U << 28)
-#define EPOLLWAKEUP (1U << 29)
-#define EPOLLONESHOT (1U << 30)
-#define EPOLLET (1U << 31)
+#define EPOLLIN (__force __poll_t) 0x00000001
+#define EPOLLPRI (__force __poll_t) 0x00000002
+#define EPOLLOUT (__force __poll_t) 0x00000004
+#define EPOLLERR (__force __poll_t) 0x00000008
+#define EPOLLHUP (__force __poll_t) 0x00000010
+#define EPOLLNVAL (__force __poll_t) 0x00000020
+#define EPOLLRDNORM (__force __poll_t) 0x00000040
+#define EPOLLRDBAND (__force __poll_t) 0x00000080
+#define EPOLLWRNORM (__force __poll_t) 0x00000100
+#define EPOLLWRBAND (__force __poll_t) 0x00000200
+#define EPOLLMSG (__force __poll_t) 0x00000400
+#define EPOLLRDHUP (__force __poll_t) 0x00002000
+#define EPOLLEXCLUSIVE (__force __poll_t) (1U << 28)
+#define EPOLLWAKEUP (__force __poll_t) (1U << 29)
+#define EPOLLONESHOT (__force __poll_t) (1U << 30)
+#define EPOLLET (__force __poll_t) (1U << 31)
 #ifdef __x86_64__
 #define EPOLL_PACKED __attribute__((packed))
 #else
diff --git a/libc/kernel/uapi/linux/fib_rules.h b/libc/kernel/uapi/linux/fib_rules.h
index 6b2a06f..733c1b1 100644
--- a/libc/kernel/uapi/linux/fib_rules.h
+++ b/libc/kernel/uapi/linux/fib_rules.h
@@ -42,6 +42,10 @@
   __u32 start;
   __u32 end;
 };
+struct fib_rule_port_range {
+  __u16 start;
+  __u16 end;
+};
 enum {
   FRA_UNSPEC,
   FRA_DST,
@@ -65,6 +69,10 @@
   FRA_PAD,
   FRA_L3MDEV,
   FRA_UID_RANGE,
+  FRA_PROTOCOL,
+  FRA_IP_PROTO,
+  FRA_SPORT_RANGE,
+  FRA_DPORT_RANGE,
   __FRA_MAX
 };
 #define FRA_MAX (__FRA_MAX - 1)
diff --git a/libc/kernel/uapi/linux/fs.h b/libc/kernel/uapi/linux/fs.h
index f4e74cd..77c45c8 100644
--- a/libc/kernel/uapi/linux/fs.h
+++ b/libc/kernel/uapi/linux/fs.h
@@ -250,5 +250,6 @@
 #define RWF_DSYNC ((__force __kernel_rwf_t) 0x00000002)
 #define RWF_SYNC ((__force __kernel_rwf_t) 0x00000004)
 #define RWF_NOWAIT ((__force __kernel_rwf_t) 0x00000008)
-#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)
+#define RWF_APPEND ((__force __kernel_rwf_t) 0x00000010)
+#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT | RWF_APPEND)
 #endif
diff --git a/libc/kernel/uapi/linux/gfs2_ondisk.h b/libc/kernel/uapi/linux/gfs2_ondisk.h
index 60a6a26..7d03ba5 100644
--- a/libc/kernel/uapi/linux/gfs2_ondisk.h
+++ b/libc/kernel/uapi/linux/gfs2_ondisk.h
@@ -131,9 +131,16 @@
   __be32 rg_flags;
   __be32 rg_free;
   __be32 rg_dinodes;
-  __be32 __pad;
+  union {
+    __be32 __pad;
+    __be32 rg_skip;
+  };
   __be64 rg_igeneration;
-  __u8 rg_reserved[80];
+  __be64 rg_data0;
+  __be32 rg_data;
+  __be32 rg_bitbytes;
+  __be32 rg_crc;
+  __u8 rg_reserved[60];
 };
 struct gfs2_quota {
   __be64 qu_limit;
@@ -261,6 +268,32 @@
   __u32 __pad;
 };
 #define GFS2_LOG_HEAD_UNMOUNT 0x00000001
+#define GFS2_LOG_HEAD_FLUSH_NORMAL 0x00000002
+#define GFS2_LOG_HEAD_FLUSH_SYNC 0x00000004
+#define GFS2_LOG_HEAD_FLUSH_SHUTDOWN 0x00000008
+#define GFS2_LOG_HEAD_FLUSH_FREEZE 0x00000010
+#define GFS2_LOG_HEAD_RECOVERY 0x00000020
+#define GFS2_LOG_HEAD_USERSPACE 0x80000000
+#define GFS2_LFC_SHUTDOWN 0x00000100
+#define GFS2_LFC_JDATA_WPAGES 0x00000200
+#define GFS2_LFC_SET_FLAGS 0x00000400
+#define GFS2_LFC_AIL_EMPTY_GL 0x00000800
+#define GFS2_LFC_AIL_FLUSH 0x00001000
+#define GFS2_LFC_RGRP_GO_SYNC 0x00002000
+#define GFS2_LFC_INODE_GO_SYNC 0x00004000
+#define GFS2_LFC_INODE_GO_INVAL 0x00008000
+#define GFS2_LFC_FREEZE_GO_SYNC 0x00010000
+#define GFS2_LFC_KILL_SB 0x00020000
+#define GFS2_LFC_DO_SYNC 0x00040000
+#define GFS2_LFC_INPLACE_RESERVE 0x00080000
+#define GFS2_LFC_WRITE_INODE 0x00100000
+#define GFS2_LFC_MAKE_FS_RO 0x00200000
+#define GFS2_LFC_SYNC_FS 0x00400000
+#define GFS2_LFC_EVICT_INODE 0x00800000
+#define GFS2_LFC_TRANS_END 0x01000000
+#define GFS2_LFC_LOGD_JFLUSH_REQD 0x02000000
+#define GFS2_LFC_LOGD_AIL_FLUSH_REQD 0x04000000
+#define LH_V1_SIZE (offsetofend(struct gfs2_log_header, lh_hash))
 struct gfs2_log_header {
   struct gfs2_meta_header lh_header;
   __be64 lh_sequence;
@@ -268,6 +301,16 @@
   __be32 lh_tail;
   __be32 lh_blkno;
   __be32 lh_hash;
+  __be32 lh_crc;
+  __be32 lh_nsec;
+  __be64 lh_sec;
+  __be64 lh_addr;
+  __be64 lh_jinode;
+  __be64 lh_statfs_addr;
+  __be64 lh_quota_addr;
+  __be64 lh_local_total;
+  __be64 lh_local_free;
+  __be64 lh_local_dinodes;
 };
 #define GFS2_LOG_DESC_METADATA 300
 #define GFS2_LOG_DESC_REVOKE 301
diff --git a/libc/kernel/uapi/linux/i2c.h b/libc/kernel/uapi/linux/i2c.h
index bb8f4f5..dc1e96a 100644
--- a/libc/kernel/uapi/linux/i2c.h
+++ b/libc/kernel/uapi/linux/i2c.h
@@ -24,6 +24,7 @@
   __u16 flags;
 #define I2C_M_RD 0x0001
 #define I2C_M_TEN 0x0010
+#define I2C_M_DMA_SAFE 0x0200
 #define I2C_M_RECV_LEN 0x0400
 #define I2C_M_NO_RD_ACK 0x0800
 #define I2C_M_IGNORE_NAK 0x1000
diff --git a/libc/kernel/uapi/linux/if_ether.h b/libc/kernel/uapi/linux/if_ether.h
index 04b6dae..4fb58f1 100644
--- a/libc/kernel/uapi/linux/if_ether.h
+++ b/libc/kernel/uapi/linux/if_ether.h
@@ -19,8 +19,8 @@
 #ifndef _UAPI_LINUX_IF_ETHER_H
 #define _UAPI_LINUX_IF_ETHER_H
 #include <linux/types.h>
-#include <linux/libc-compat.h>
 #define ETH_ALEN 6
+#define ETH_TLEN 2
 #define ETH_HLEN 14
 #define ETH_ZLEN 60
 #define ETH_DATA_LEN 1500
@@ -32,6 +32,7 @@
 #define ETH_P_PUP 0x0200
 #define ETH_P_PUPAT 0x0201
 #define ETH_P_TSN 0x22F0
+#define ETH_P_ERSPAN2 0x22EB
 #define ETH_P_IP 0x0800
 #define ETH_P_X25 0x0805
 #define ETH_P_ARP 0x0806
@@ -69,6 +70,7 @@
 #define ETH_P_AOE 0x88A2
 #define ETH_P_8021AD 0x88A8
 #define ETH_P_802_EX1 0x88B5
+#define ETH_P_PREAUTH 0x88C7
 #define ETH_P_TIPC 0x88CA
 #define ETH_P_MACSEC 0x88E5
 #define ETH_P_8021AH 0x88E7
@@ -117,6 +119,9 @@
 #define ETH_P_CAIF 0x00F7
 #define ETH_P_XDSA 0x00F8
 #define ETH_P_MAP 0x00F9
+#ifndef __UAPI_DEF_ETHHDR
+#define __UAPI_DEF_ETHHDR 1
+#endif
 #if __UAPI_DEF_ETHHDR
 struct ethhdr {
   unsigned char h_dest[ETH_ALEN];
diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h
index a43eaf7..8a9993b 100644
--- a/libc/kernel/uapi/linux/if_link.h
+++ b/libc/kernel/uapi/linux/if_link.h
@@ -138,6 +138,9 @@
   IFLA_EVENT,
   IFLA_NEW_NETNSID,
   IFLA_IF_NETNSID,
+  IFLA_CARRIER_UP_COUNT,
+  IFLA_CARRIER_DOWN_COUNT,
+  IFLA_NEW_IFINDEX,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -590,6 +593,8 @@
   IFLA_VF_STATS_BROADCAST,
   IFLA_VF_STATS_MULTICAST,
   IFLA_VF_STATS_PAD,
+  IFLA_VF_STATS_RX_DROPPED,
+  IFLA_VF_STATS_TX_DROPPED,
   __IFLA_VF_STATS_MAX,
 };
 #define IFLA_VF_STATS_MAX (__IFLA_VF_STATS_MAX - 1)
@@ -728,4 +733,33 @@
   IFLA_EVENT_IGMP_RESEND,
   IFLA_EVENT_BONDING_OPTIONS,
 };
+enum {
+  IFLA_TUN_UNSPEC,
+  IFLA_TUN_OWNER,
+  IFLA_TUN_GROUP,
+  IFLA_TUN_TYPE,
+  IFLA_TUN_PI,
+  IFLA_TUN_VNET_HDR,
+  IFLA_TUN_PERSIST,
+  IFLA_TUN_MULTI_QUEUE,
+  IFLA_TUN_NUM_QUEUES,
+  IFLA_TUN_NUM_DISABLED_QUEUES,
+  __IFLA_TUN_MAX,
+};
+#define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1)
+#define RMNET_FLAGS_INGRESS_DEAGGREGATION (1U << 0)
+#define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+enum {
+  IFLA_RMNET_UNSPEC,
+  IFLA_RMNET_MUX_ID,
+  IFLA_RMNET_FLAGS,
+  __IFLA_RMNET_MAX,
+};
+#define IFLA_RMNET_MAX (__IFLA_RMNET_MAX - 1)
+struct ifla_rmnet_flags {
+  __u32 flags;
+  __u32 mask;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/if_macsec.h b/libc/kernel/uapi/linux/if_macsec.h
index 0031f7d..a58f531 100644
--- a/libc/kernel/uapi/linux/if_macsec.h
+++ b/libc/kernel/uapi/linux/if_macsec.h
@@ -23,8 +23,10 @@
 #define MACSEC_GENL_VERSION 1
 #define MACSEC_MAX_KEY_LEN 128
 #define MACSEC_KEYID_LEN 16
+#define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
+#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
 #define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL
-#define MACSEC_DEFAULT_CIPHER_ALT 0x0080C20001000001ULL
+#define MACSEC_DEFAULT_CIPHER_ALT MACSEC_CIPHER_ID_GCM_AES_128
 #define MACSEC_MIN_ICV_LEN 8
 #define MACSEC_MAX_ICV_LEN 32
 #define MACSEC_STD_ICV_LEN 16
diff --git a/libc/kernel/uapi/linux/if_tun.h b/libc/kernel/uapi/linux/if_tun.h
index d8757a1..6a3c75e 100644
--- a/libc/kernel/uapi/linux/if_tun.h
+++ b/libc/kernel/uapi/linux/if_tun.h
@@ -49,6 +49,8 @@
 #define TUNGETVNETLE _IOR('T', 221, int)
 #define TUNSETVNETBE _IOW('T', 222, int)
 #define TUNGETVNETBE _IOR('T', 223, int)
+#define TUNSETSTEERINGEBPF _IOR('T', 224, int)
+#define TUNSETFILTEREBPF _IOR('T', 225, int)
 #define IFF_TUN 0x0001
 #define IFF_TAP 0x0002
 #define IFF_NAPI 0x0010
diff --git a/libc/kernel/uapi/linux/if_tunnel.h b/libc/kernel/uapi/linux/if_tunnel.h
index 8edc956..d41dc49 100644
--- a/libc/kernel/uapi/linux/if_tunnel.h
+++ b/libc/kernel/uapi/linux/if_tunnel.h
@@ -136,6 +136,9 @@
   IFLA_GRE_IGNORE_DF,
   IFLA_GRE_FWMARK,
   IFLA_GRE_ERSPAN_INDEX,
+  IFLA_GRE_ERSPAN_VER,
+  IFLA_GRE_ERSPAN_DIR,
+  IFLA_GRE_ERSPAN_HWID,
   __IFLA_GRE_MAX,
 };
 #define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
diff --git a/libc/kernel/uapi/linux/inet_diag.h b/libc/kernel/uapi/linux/inet_diag.h
index 47a3b34..eb9b712 100644
--- a/libc/kernel/uapi/linux/inet_diag.h
+++ b/libc/kernel/uapi/linux/inet_diag.h
@@ -78,6 +78,8 @@
   INET_DIAG_BC_D_COND,
   INET_DIAG_BC_DEV_COND,
   INET_DIAG_BC_MARK_COND,
+  INET_DIAG_BC_S_EQ,
+  INET_DIAG_BC_D_EQ,
 };
 struct inet_diag_hostcond {
   __u8 family;
diff --git a/libc/kernel/uapi/linux/inotify.h b/libc/kernel/uapi/linux/inotify.h
index 0736bd7..653dc07 100644
--- a/libc/kernel/uapi/linux/inotify.h
+++ b/libc/kernel/uapi/linux/inotify.h
@@ -53,4 +53,5 @@
 #define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | IN_MOVE_SELF)
 #define IN_CLOEXEC O_CLOEXEC
 #define IN_NONBLOCK O_NONBLOCK
+#define INOTIFY_IOC_SETNEXTWD _IOW('I', 0, __s32)
 #endif
diff --git a/libc/kernel/uapi/linux/input-event-codes.h b/libc/kernel/uapi/linux/input-event-codes.h
index da90f1c..d8ae4c8 100644
--- a/libc/kernel/uapi/linux/input-event-codes.h
+++ b/libc/kernel/uapi/linux/input-event-codes.h
@@ -532,6 +532,7 @@
 #define BTN_DPAD_LEFT 0x222
 #define BTN_DPAD_RIGHT 0x223
 #define KEY_ALS_TOGGLE 0x230
+#define KEY_ROTATE_LOCK_TOGGLE 0x231
 #define KEY_BUTTONCONFIG 0x240
 #define KEY_TASKMANAGER 0x241
 #define KEY_JOURNAL 0x242
diff --git a/libc/kernel/uapi/linux/input.h b/libc/kernel/uapi/linux/input.h
index 9014059..298e2a3 100644
--- a/libc/kernel/uapi/linux/input.h
+++ b/libc/kernel/uapi/linux/input.h
@@ -24,7 +24,16 @@
 #include <linux/types.h>
 #include "input-event-codes.h"
 struct input_event {
+#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL)
   struct timeval time;
+#define input_event_sec time.tv_sec
+#define input_event_usec time.tv_usec
+#else
+  __kernel_ulong_t __sec;
+  __kernel_ulong_t __usec;
+#define input_event_sec __sec
+#define input_event_usec __usec
+#endif
   __u16 type;
   __u16 code;
   __s32 value;
diff --git a/libc/kernel/uapi/linux/ipmi_bmc.h b/libc/kernel/uapi/linux/ipmi_bmc.h
new file mode 100644
index 0000000..18f8b9d
--- /dev/null
+++ b/libc/kernel/uapi/linux/ipmi_bmc.h
@@ -0,0 +1,26 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_BMC_H
+#define _UAPI_LINUX_IPMI_BMC_H
+#include <linux/ioctl.h>
+#define __IPMI_BMC_IOCTL_MAGIC 0xB1
+#define IPMI_BMC_IOCTL_SET_SMS_ATN _IO(__IPMI_BMC_IOCTL_MAGIC, 0x00)
+#define IPMI_BMC_IOCTL_CLEAR_SMS_ATN _IO(__IPMI_BMC_IOCTL_MAGIC, 0x01)
+#define IPMI_BMC_IOCTL_FORCE_ABORT _IO(__IPMI_BMC_IOCTL_MAGIC, 0x02)
+#endif
diff --git a/libc/kernel/uapi/linux/irda.h b/libc/kernel/uapi/linux/irda.h
deleted file mode 100644
index c2dffea..0000000
--- a/libc/kernel/uapi/linux/irda.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   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 KERNEL_IRDA_H
-#define KERNEL_IRDA_H
-#include <linux/types.h>
-#include <linux/socket.h>
-#define HINT_PNP 0x01
-#define HINT_PDA 0x02
-#define HINT_COMPUTER 0x04
-#define HINT_PRINTER 0x08
-#define HINT_MODEM 0x10
-#define HINT_FAX 0x20
-#define HINT_LAN 0x40
-#define HINT_EXTENSION 0x80
-#define HINT_TELEPHONY 0x01
-#define HINT_FILE_SERVER 0x02
-#define HINT_COMM 0x04
-#define HINT_MESSAGE 0x08
-#define HINT_HTTP 0x10
-#define HINT_OBEX 0x20
-#define CS_ASCII 0x00
-#define CS_ISO_8859_1 0x01
-#define CS_ISO_8859_2 0x02
-#define CS_ISO_8859_3 0x03
-#define CS_ISO_8859_4 0x04
-#define CS_ISO_8859_5 0x05
-#define CS_ISO_8859_6 0x06
-#define CS_ISO_8859_7 0x07
-#define CS_ISO_8859_8 0x08
-#define CS_ISO_8859_9 0x09
-#define CS_UNICODE 0xff
-typedef enum {
-  IRDA_TEKRAM_DONGLE = 0,
-  IRDA_ESI_DONGLE = 1,
-  IRDA_ACTISYS_DONGLE = 2,
-  IRDA_ACTISYS_PLUS_DONGLE = 3,
-  IRDA_GIRBIL_DONGLE = 4,
-  IRDA_LITELINK_DONGLE = 5,
-  IRDA_AIRPORT_DONGLE = 6,
-  IRDA_OLD_BELKIN_DONGLE = 7,
-  IRDA_EP7211_IR = 8,
-  IRDA_MCP2120_DONGLE = 9,
-  IRDA_ACT200L_DONGLE = 10,
-  IRDA_MA600_DONGLE = 11,
-  IRDA_TOIM3232_DONGLE = 12,
-  IRDA_EP7211_DONGLE = 13,
-} IRDA_DONGLE;
-enum {
-  IRDAPROTO_UNITDATA = 0,
-  IRDAPROTO_ULTRA = 1,
-  IRDAPROTO_MAX
-};
-#define SOL_IRLMP 266
-#define SOL_IRTTP 266
-#define IRLMP_ENUMDEVICES 1
-#define IRLMP_IAS_SET 2
-#define IRLMP_IAS_QUERY 3
-#define IRLMP_HINTS_SET 4
-#define IRLMP_QOS_SET 5
-#define IRLMP_QOS_GET 6
-#define IRLMP_MAX_SDU_SIZE 7
-#define IRLMP_IAS_GET 8
-#define IRLMP_IAS_DEL 9
-#define IRLMP_HINT_MASK_SET 10
-#define IRLMP_WAITDEVICE 11
-#define IRTTP_MAX_SDU_SIZE IRLMP_MAX_SDU_SIZE
-#define IAS_MAX_STRING 256
-#define IAS_MAX_OCTET_STRING 1024
-#define IAS_MAX_CLASSNAME 60
-#define IAS_MAX_ATTRIBNAME 60
-#define IAS_MAX_ATTRIBNUMBER 256
-#define IAS_EXPORT_CLASSNAME 64
-#define IAS_EXPORT_ATTRIBNAME 256
-#define IAS_MISSING 0
-#define IAS_INTEGER 1
-#define IAS_OCT_SEQ 2
-#define IAS_STRING 3
-#define LSAP_ANY 0xff
-struct sockaddr_irda {
-  __kernel_sa_family_t sir_family;
-  __u8 sir_lsap_sel;
-  __u32 sir_addr;
-  char sir_name[25];
-};
-struct irda_device_info {
-  __u32 saddr;
-  __u32 daddr;
-  char info[22];
-  __u8 charset;
-  __u8 hints[2];
-};
-struct irda_device_list {
-  __u32 len;
-  struct irda_device_info dev[1];
-};
-struct irda_ias_set {
-  char irda_class_name[IAS_EXPORT_CLASSNAME];
-  char irda_attrib_name[IAS_EXPORT_ATTRIBNAME];
-  unsigned int irda_attrib_type;
-  union {
-    unsigned int irda_attrib_int;
-    struct {
-      unsigned short len;
-      __u8 octet_seq[IAS_MAX_OCTET_STRING];
-    } irda_attrib_octet_seq;
-    struct {
-      __u8 len;
-      __u8 charset;
-      __u8 string[IAS_MAX_STRING];
-    } irda_attrib_string;
-  } attribute;
-  __u32 daddr;
-};
-#define SIOCSDONGLE (SIOCDEVPRIVATE + 0)
-#define SIOCGDONGLE (SIOCDEVPRIVATE + 1)
-#define SIOCSBANDWIDTH (SIOCDEVPRIVATE + 2)
-#define SIOCSMEDIABUSY (SIOCDEVPRIVATE + 3)
-#define SIOCGMEDIABUSY (SIOCDEVPRIVATE + 4)
-#define SIOCGRECEIVING (SIOCDEVPRIVATE + 5)
-#define SIOCSMODE (SIOCDEVPRIVATE + 6)
-#define SIOCGMODE (SIOCDEVPRIVATE + 7)
-#define SIOCSDTRRTS (SIOCDEVPRIVATE + 8)
-#define SIOCGQOS (SIOCDEVPRIVATE + 9)
-#define IRNAMSIZ 16
-struct if_irda_qos {
-  unsigned long baudrate;
-  unsigned short data_size;
-  unsigned short window_size;
-  unsigned short min_turn_time;
-  unsigned short max_turn_time;
-  unsigned char add_bofs;
-  unsigned char link_disc;
-};
-struct if_irda_line {
-  __u8 dtr;
-  __u8 rts;
-};
-struct if_irda_req {
-  union {
-    char ifrn_name[IRNAMSIZ];
-  } ifr_ifrn;
-  union {
-    struct if_irda_line ifru_line;
-    struct if_irda_qos ifru_qos;
-    unsigned short ifru_flags;
-    unsigned int ifru_receiving;
-    unsigned int ifru_mode;
-    unsigned int ifru_dongle;
-  } ifr_ifru;
-};
-#define ifr_baudrate ifr_ifru.ifru_qos.baudrate
-#define ifr_receiving ifr_ifru.ifru_receiving
-#define ifr_dongle ifr_ifru.ifru_dongle
-#define ifr_mode ifr_ifru.ifru_mode
-#define ifr_dtr ifr_ifru.ifru_line.dtr
-#define ifr_rts ifr_ifru.ifru_line.rts
-#define IRDA_NL_NAME "irda"
-#define IRDA_NL_VERSION 1
-enum irda_nl_commands {
-  IRDA_NL_CMD_UNSPEC,
-  IRDA_NL_CMD_SET_MODE,
-  IRDA_NL_CMD_GET_MODE,
-  __IRDA_NL_CMD_AFTER_LAST
-};
-#define IRDA_NL_CMD_MAX (__IRDA_NL_CMD_AFTER_LAST - 1)
-enum nl80211_attrs {
-  IRDA_NL_ATTR_UNSPEC,
-  IRDA_NL_ATTR_IFNAME,
-  IRDA_NL_ATTR_MODE,
-  __IRDA_NL_ATTR_AFTER_LAST
-};
-#define IRDA_NL_ATTR_MAX (__IRDA_NL_ATTR_AFTER_LAST - 1)
-#define IRDA_MODE_PRIMARY 0x1
-#define IRDA_MODE_SECONDARY 0x2
-#define IRDA_MODE_MONITOR 0x4
-#endif
diff --git a/libc/kernel/uapi/linux/ixjuser.h b/libc/kernel/uapi/linux/ixjuser.h
deleted file mode 100644
index fe89d0c..0000000
--- a/libc/kernel/uapi/linux/ixjuser.h
+++ /dev/null
@@ -1,486 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   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 __LINUX_IXJUSER_H
-#define __LINUX_IXJUSER_H
-#include <linux/telephony.h>
-#define IXJCTL_DSP_RESET _IO('q', 0xC0)
-#define IXJCTL_RING PHONE_RING
-#define IXJCTL_HOOKSTATE PHONE_HOOKSTATE
-#define IXJCTL_MAXRINGS PHONE_MAXRINGS
-#define IXJCTL_RING_CADENCE PHONE_RING_CADENCE
-#define IXJCTL_RING_START PHONE_RING_START
-#define IXJCTL_RING_STOP PHONE_RING_STOP
-#define IXJCTL_CARDTYPE _IOR('q', 0xC1, int)
-#define IXJCTL_SERIAL _IOR('q', 0xC2, int)
-#define IXJCTL_DSP_TYPE _IOR('q', 0xC3, int)
-#define IXJCTL_DSP_VERSION _IOR('q', 0xC4, int)
-#define IXJCTL_VERSION _IOR('q', 0xDA, char *)
-#define IXJCTL_DSP_IDLE _IO('q', 0xC5)
-#define IXJCTL_TESTRAM _IO('q', 0xC6)
-#define IXJCTL_REC_CODEC PHONE_REC_CODEC
-#define IXJCTL_REC_START PHONE_REC_START
-#define IXJCTL_REC_STOP PHONE_REC_STOP
-#define IXJCTL_REC_DEPTH PHONE_REC_DEPTH
-#define IXJCTL_FRAME PHONE_FRAME
-#define IXJCTL_REC_VOLUME PHONE_REC_VOLUME
-#define IXJCTL_REC_LEVEL PHONE_REC_LEVEL
-typedef enum {
-  f300_640 = 4,
-  f300_500,
-  f1100,
-  f350,
-  f400,
-  f480,
-  f440,
-  f620,
-  f20_50,
-  f133_200,
-  f300,
-  f300_420,
-  f330,
-  f300_425,
-  f330_440,
-  f340,
-  f350_400,
-  f350_440,
-  f350_450,
-  f360,
-  f380_420,
-  f392,
-  f400_425,
-  f400_440,
-  f400_450,
-  f420,
-  f425,
-  f425_450,
-  f425_475,
-  f435,
-  f440_450,
-  f440_480,
-  f445,
-  f450,
-  f452,
-  f475,
-  f480_620,
-  f494,
-  f500,
-  f520,
-  f523,
-  f525,
-  f540_660,
-  f587,
-  f590,
-  f600,
-  f660,
-  f700,
-  f740,
-  f750,
-  f750_1450,
-  f770,
-  f800,
-  f816,
-  f850,
-  f857_1645,
-  f900,
-  f900_1300,
-  f935_1215,
-  f941_1477,
-  f942,
-  f950,
-  f950_1400,
-  f975,
-  f1000,
-  f1020,
-  f1050,
-  f1100_1750,
-  f1140,
-  f1200,
-  f1209,
-  f1330,
-  f1336,
-  lf1366,
-  f1380,
-  f1400,
-  f1477,
-  f1600,
-  f1633_1638,
-  f1800,
-  f1860
-} IXJ_FILTER_FREQ;
-typedef struct {
-  unsigned int filter;
-  IXJ_FILTER_FREQ freq;
-  char enable;
-} IXJ_FILTER;
-typedef struct {
-  char enable;
-  char en_filter;
-  unsigned int filter;
-  unsigned int on1;
-  unsigned int off1;
-  unsigned int on2;
-  unsigned int off2;
-  unsigned int on3;
-  unsigned int off3;
-} IXJ_FILTER_CADENCE;
-#define IXJCTL_SET_FILTER _IOW('q', 0xC7, IXJ_FILTER *)
-#define IXJCTL_SET_FILTER_RAW _IOW('q', 0xDD, IXJ_FILTER_RAW *)
-#define IXJCTL_GET_FILTER_HIST _IOW('q', 0xC8, int)
-#define IXJCTL_FILTER_CADENCE _IOW('q', 0xD6, IXJ_FILTER_CADENCE *)
-#define IXJCTL_PLAY_CID _IO('q', 0xD7)
-typedef enum {
-  hz20 = 0x7ffa,
-  hz50 = 0x7fe5,
-  hz133 = 0x7f4c,
-  hz200 = 0x7e6b,
-  hz261 = 0x7d50,
-  hz277 = 0x7cfa,
-  hz293 = 0x7c9f,
-  hz300 = 0x7c75,
-  hz311 = 0x7c32,
-  hz329 = 0x7bbf,
-  hz330 = 0x7bb8,
-  hz340 = 0x7b75,
-  hz349 = 0x7b37,
-  hz350 = 0x7b30,
-  hz360 = 0x7ae9,
-  hz369 = 0x7aa8,
-  hz380 = 0x7a56,
-  hz392 = 0x79fa,
-  hz400 = 0x79bb,
-  hz415 = 0x7941,
-  hz420 = 0x7918,
-  hz425 = 0x78ee,
-  hz435 = 0x7899,
-  hz440 = 0x786d,
-  hz445 = 0x7842,
-  hz450 = 0x7815,
-  hz452 = 0x7803,
-  hz466 = 0x7784,
-  hz475 = 0x7731,
-  hz480 = 0x7701,
-  hz493 = 0x7685,
-  hz494 = 0x767b,
-  hz500 = 0x7640,
-  hz520 = 0x7578,
-  hz523 = 0x7559,
-  hz525 = 0x7544,
-  hz540 = 0x74a7,
-  hz554 = 0x7411,
-  hz587 = 0x72a1,
-  hz590 = 0x727f,
-  hz600 = 0x720b,
-  hz620 = 0x711e,
-  hz622 = 0x7106,
-  hz659 = 0x6f3b,
-  hz660 = 0x6f2e,
-  hz698 = 0x6d3d,
-  hz700 = 0x6d22,
-  hz739 = 0x6b09,
-  hz740 = 0x6afa,
-  hz750 = 0x6a6c,
-  hz770 = 0x694b,
-  hz783 = 0x688b,
-  hz800 = 0x678d,
-  hz816 = 0x6698,
-  hz830 = 0x65bf,
-  hz850 = 0x6484,
-  hz857 = 0x6414,
-  hz880 = 0x629f,
-  hz900 = 0x6154,
-  hz932 = 0x5f35,
-  hz935 = 0x5f01,
-  hz941 = 0x5e9a,
-  hz942 = 0x5e88,
-  hz950 = 0x5dfd,
-  hz975 = 0x5c44,
-  hz1000 = 0x5a81,
-  hz1020 = 0x5912,
-  hz1050 = 0x56e2,
-  hz1100 = 0x5320,
-  hz1140 = 0x5007,
-  hz1200 = 0x4b3b,
-  hz1209 = 0x4a80,
-  hz1215 = 0x4a02,
-  hz1250 = 0x471c,
-  hz1300 = 0x42e0,
-  hz1330 = 0x4049,
-  hz1336 = 0x3fc4,
-  hz1366 = 0x3d22,
-  hz1380 = 0x3be4,
-  hz1400 = 0x3a1b,
-  hz1450 = 0x3596,
-  hz1477 = 0x331c,
-  hz1500 = 0x30fb,
-  hz1600 = 0x278d,
-  hz1633 = 0x2462,
-  hz1638 = 0x23e7,
-  hz1645 = 0x233a,
-  hz1750 = 0x18f8,
-  hz1800 = 0x1405,
-  hz1860 = 0xe0b,
-  hz2100 = 0xf5f6,
-  hz2130 = 0xf2f5,
-  hz2450 = 0xd3b3,
-  hz2750 = 0xb8e4
-} IXJ_FREQ;
-typedef enum {
-  C1 = hz261,
-  CS1 = hz277,
-  D1 = hz293,
-  DS1 = hz311,
-  E1 = hz329,
-  F1 = hz349,
-  FS1 = hz369,
-  G1 = hz392,
-  GS1 = hz415,
-  A1 = hz440,
-  AS1 = hz466,
-  B1 = hz493,
-  C2 = hz523,
-  CS2 = hz554,
-  D2 = hz587,
-  DS2 = hz622,
-  E2 = hz659,
-  F2 = hz698,
-  FS2 = hz739,
-  G2 = hz783,
-  GS2 = hz830,
-  A2 = hz880,
-  AS2 = hz932,
-} IXJ_NOTE;
-typedef struct {
-  int tone_index;
-  int freq0;
-  int gain0;
-  int freq1;
-  int gain1;
-} IXJ_TONE;
-#define IXJCTL_INIT_TONE _IOW('q', 0xC9, IXJ_TONE *)
-typedef struct {
-  int index;
-  int tone_on_time;
-  int tone_off_time;
-  int freq0;
-  int gain0;
-  int freq1;
-  int gain1;
-} IXJ_CADENCE_ELEMENT;
-typedef enum {
-  PLAY_ONCE,
-  REPEAT_LAST_ELEMENT,
-  REPEAT_ALL
-} IXJ_CADENCE_TERM;
-typedef struct {
-  int elements_used;
-  IXJ_CADENCE_TERM termination;
-  IXJ_CADENCE_ELEMENT __user * ce;
-} IXJ_CADENCE;
-#define IXJCTL_TONE_CADENCE _IOW('q', 0xCA, IXJ_CADENCE *)
-#define IXJCTL_PLAY_CODEC PHONE_PLAY_CODEC
-#define IXJCTL_PLAY_START PHONE_PLAY_START
-#define IXJCTL_PLAY_STOP PHONE_PLAY_STOP
-#define IXJCTL_PLAY_DEPTH PHONE_PLAY_DEPTH
-#define IXJCTL_PLAY_VOLUME PHONE_PLAY_VOLUME
-#define IXJCTL_PLAY_LEVEL PHONE_PLAY_LEVEL
-#define IXJCTL_AEC_START _IOW('q', 0xCB, int)
-#define IXJCTL_AEC_STOP _IO('q', 0xCC)
-#define IXJCTL_AEC_GET_LEVEL _IO('q', 0xCD)
-#define AEC_OFF 0
-#define AEC_LOW 1
-#define AEC_MED 2
-#define AEC_HIGH 3
-#define AEC_AUTO 4
-#define AEC_AGC 5
-#define IXJCTL_DTMF_READY PHONE_DTMF_READY
-#define IXJCTL_GET_DTMF PHONE_GET_DTMF
-#define IXJCTL_GET_DTMF_ASCII PHONE_GET_DTMF_ASCII
-#define IXJCTL_DTMF_OOB PHONE_DTMF_OOB
-#define IXJCTL_EXCEPTION PHONE_EXCEPTION
-#define IXJCTL_PLAY_TONE PHONE_PLAY_TONE
-#define IXJCTL_SET_TONE_ON_TIME PHONE_SET_TONE_ON_TIME
-#define IXJCTL_SET_TONE_OFF_TIME PHONE_SET_TONE_OFF_TIME
-#define IXJCTL_GET_TONE_ON_TIME PHONE_GET_TONE_ON_TIME
-#define IXJCTL_GET_TONE_OFF_TIME PHONE_GET_TONE_OFF_TIME
-#define IXJCTL_GET_TONE_STATE PHONE_GET_TONE_STATE
-#define IXJCTL_BUSY PHONE_BUSY
-#define IXJCTL_RINGBACK PHONE_RINGBACK
-#define IXJCTL_DIALTONE PHONE_DIALTONE
-#define IXJCTL_CPT_STOP PHONE_CPT_STOP
-#define IXJCTL_SET_LED _IOW('q', 0xCE, int)
-#define IXJCTL_MIXER _IOW('q', 0xCF, int)
-#define MIXER_MASTER_L 0x0000
-#define MIXER_MASTER_R 0x0100
-#define ATT00DB 0x00
-#define ATT02DB 0x01
-#define ATT04DB 0x02
-#define ATT06DB 0x03
-#define ATT08DB 0x04
-#define ATT10DB 0x05
-#define ATT12DB 0x06
-#define ATT14DB 0x07
-#define ATT16DB 0x08
-#define ATT18DB 0x09
-#define ATT20DB 0x0A
-#define ATT22DB 0x0B
-#define ATT24DB 0x0C
-#define ATT26DB 0x0D
-#define ATT28DB 0x0E
-#define ATT30DB 0x0F
-#define ATT32DB 0x10
-#define ATT34DB 0x11
-#define ATT36DB 0x12
-#define ATT38DB 0x13
-#define ATT40DB 0x14
-#define ATT42DB 0x15
-#define ATT44DB 0x16
-#define ATT46DB 0x17
-#define ATT48DB 0x18
-#define ATT50DB 0x19
-#define ATT52DB 0x1A
-#define ATT54DB 0x1B
-#define ATT56DB 0x1C
-#define ATT58DB 0x1D
-#define ATT60DB 0x1E
-#define ATT62DB 0x1F
-#define MASTER_MUTE 0x80
-#define MIXER_PORT_CD_L 0x0600
-#define MIXER_PORT_CD_R 0x0700
-#define MIXER_PORT_LINE_IN_L 0x0800
-#define MIXER_PORT_LINE_IN_R 0x0900
-#define MIXER_PORT_POTS_REC 0x0C00
-#define MIXER_PORT_MIC 0x0E00
-#define GAIN12DB 0x00
-#define GAIN10DB 0x01
-#define GAIN08DB 0x02
-#define GAIN06DB 0x03
-#define GAIN04DB 0x04
-#define GAIN02DB 0x05
-#define GAIN00DB 0x06
-#define GAIN_02DB 0x07
-#define GAIN_04DB 0x08
-#define GAIN_06DB 0x09
-#define GAIN_08DB 0x0A
-#define GAIN_10DB 0x0B
-#define GAIN_12DB 0x0C
-#define GAIN_14DB 0x0D
-#define GAIN_16DB 0x0E
-#define GAIN_18DB 0x0F
-#define GAIN_20DB 0x10
-#define GAIN_22DB 0x11
-#define GAIN_24DB 0x12
-#define GAIN_26DB 0x13
-#define GAIN_28DB 0x14
-#define GAIN_30DB 0x15
-#define GAIN_32DB 0x16
-#define GAIN_34DB 0x17
-#define GAIN_36DB 0x18
-#define GAIN_38DB 0x19
-#define GAIN_40DB 0x1A
-#define GAIN_42DB 0x1B
-#define GAIN_44DB 0x1C
-#define GAIN_46DB 0x1D
-#define GAIN_48DB 0x1E
-#define GAIN_50DB 0x1F
-#define INPUT_MUTE 0x80
-#define MIXER_PORT_POTS_PLAY 0x0F00
-#define POTS_ATT_00DB 0x00
-#define POTS_ATT_04DB 0x01
-#define POTS_ATT_08DB 0x02
-#define POTS_ATT_12DB 0x03
-#define POTS_ATT_16DB 0x04
-#define POTS_ATT_20DB 0x05
-#define POTS_ATT_24DB 0x06
-#define POTS_ATT_28DB 0x07
-#define POTS_MUTE 0x80
-#define IXJCTL_DAA_COEFF_SET _IOW('q', 0xD0, int)
-#define DAA_US 1
-#define DAA_UK 2
-#define DAA_FRANCE 3
-#define DAA_GERMANY 4
-#define DAA_AUSTRALIA 5
-#define DAA_JAPAN 6
-#define IXJCTL_PORT _IOW('q', 0xD1, int)
-#define PORT_QUERY 0
-#define PORT_POTS 1
-#define PORT_PSTN 2
-#define PORT_SPEAKER 3
-#define PORT_HANDSET 4
-#define IXJCTL_PSTN_SET_STATE PHONE_PSTN_SET_STATE
-#define IXJCTL_PSTN_GET_STATE PHONE_PSTN_GET_STATE
-#define PSTN_ON_HOOK 0
-#define PSTN_RINGING 1
-#define PSTN_OFF_HOOK 2
-#define PSTN_PULSE_DIAL 3
-#define IXJCTL_DAA_AGAIN _IOW('q', 0xD2, int)
-#define AGRR00DB 0x00
-#define AGRR3_5DB 0x10
-#define AGRR06DB 0x30
-#define AGX00DB 0x00
-#define AGX_6DB 0x04
-#define AGX3_5DB 0x08
-#define AGX_2_5B 0x0C
-#define IXJCTL_PSTN_LINETEST _IO('q', 0xD3)
-#define IXJCTL_CID _IOR('q', 0xD4, PHONE_CID *)
-#define IXJCTL_VMWI _IOR('q', 0xD8, int)
-#define IXJCTL_CIDCW _IOW('q', 0xD9, PHONE_CID *)
-#define IXJCTL_WINK_DURATION PHONE_WINK_DURATION
-#define IXJCTL_POTS_PSTN _IOW('q', 0xD5, int)
-#define IXJCTL_HZ _IOW('q', 0xE0, int)
-#define IXJCTL_RATE _IOW('q', 0xE1, int)
-#define IXJCTL_FRAMES_READ _IOR('q', 0xE2, unsigned long)
-#define IXJCTL_FRAMES_WRITTEN _IOR('q', 0xE3, unsigned long)
-#define IXJCTL_READ_WAIT _IOR('q', 0xE4, unsigned long)
-#define IXJCTL_WRITE_WAIT _IOR('q', 0xE5, unsigned long)
-#define IXJCTL_DRYBUFFER_READ _IOR('q', 0xE6, unsigned long)
-#define IXJCTL_DRYBUFFER_CLEAR _IO('q', 0xE7)
-#define IXJCTL_DTMF_PRESCALE _IOW('q', 0xE8, int)
-typedef enum {
-  SIG_DTMF_READY,
-  SIG_HOOKSTATE,
-  SIG_FLASH,
-  SIG_PSTN_RING,
-  SIG_CALLER_ID,
-  SIG_PSTN_WINK,
-  SIG_F0,
-  SIG_F1,
-  SIG_F2,
-  SIG_F3,
-  SIG_FC0,
-  SIG_FC1,
-  SIG_FC2,
-  SIG_FC3,
-  SIG_READ_READY = 33,
-  SIG_WRITE_READY = 34
-} IXJ_SIGEVENT;
-typedef struct {
-  unsigned int event;
-  int signal;
-} IXJ_SIGDEF;
-#define IXJCTL_SIGCTL _IOW('q', 0xE9, IXJ_SIGDEF *)
-#define IXJCTL_SC_RXG _IOW('q', 0xEA, int)
-#define IXJCTL_SC_TXG _IOW('q', 0xEB, int)
-#define IXJCTL_INTERCOM_START _IOW('q', 0xFD, int)
-#define IXJCTL_INTERCOM_STOP _IOW('q', 0xFE, int)
-typedef struct {
-  unsigned int filter;
-  char enable;
-  unsigned int coeff[19];
-} IXJ_FILTER_RAW;
-#endif
diff --git a/libc/kernel/uapi/linux/kfd_ioctl.h b/libc/kernel/uapi/linux/kfd_ioctl.h
index d4582a1..05db3fb 100644
--- a/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -45,7 +45,8 @@
   __u64 eop_buffer_address;
   __u64 eop_buffer_size;
   __u64 ctx_save_restore_address;
-  __u64 ctx_save_restore_size;
+  __u32 ctx_save_restore_size;
+  __u32 ctl_stack_size;
 };
 struct kfd_ioctl_destroy_queue_args {
   __u32 queue_id;
@@ -76,7 +77,6 @@
   __u32 gpu_id;
   __u32 pad;
 };
-#define NUM_OF_SUPPORTED_GPUS 7
 struct kfd_process_device_apertures {
   __u64 lds_base;
   __u64 lds_limit;
@@ -87,11 +87,17 @@
   __u32 gpu_id;
   __u32 pad;
 };
+#define NUM_OF_SUPPORTED_GPUS 7
 struct kfd_ioctl_get_process_apertures_args {
   struct kfd_process_device_apertures process_apertures[NUM_OF_SUPPORTED_GPUS];
   __u32 num_of_nodes;
   __u32 pad;
 };
+struct kfd_ioctl_get_process_apertures_new_args {
+  __u64 kfd_process_device_apertures_ptr;
+  __u32 num_of_nodes;
+  __u32 pad;
+};
 #define MAX_ALLOWED_NUM_POINTS 100
 #define MAX_ALLOWED_AW_BUFF_SIZE 4096
 #define MAX_ALLOWED_WAC_BUFF_SIZE 128
@@ -189,6 +195,49 @@
   __u32 num_banks;
   __u32 num_ranks;
 };
+struct kfd_ioctl_set_trap_handler_args {
+  __u64 tba_addr;
+  __u64 tma_addr;
+  __u32 gpu_id;
+  __u32 pad;
+};
+struct kfd_ioctl_acquire_vm_args {
+  __u32 drm_fd;
+  __u32 gpu_id;
+};
+#define KFD_IOC_ALLOC_MEM_FLAGS_VRAM (1 << 0)
+#define KFD_IOC_ALLOC_MEM_FLAGS_GTT (1 << 1)
+#define KFD_IOC_ALLOC_MEM_FLAGS_USERPTR (1 << 2)
+#define KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL (1 << 3)
+#define KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE (1 << 31)
+#define KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE (1 << 30)
+#define KFD_IOC_ALLOC_MEM_FLAGS_PUBLIC (1 << 29)
+#define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28)
+#define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27)
+#define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
+struct kfd_ioctl_alloc_memory_of_gpu_args {
+  __u64 va_addr;
+  __u64 size;
+  __u64 handle;
+  __u64 mmap_offset;
+  __u32 gpu_id;
+  __u32 flags;
+};
+struct kfd_ioctl_free_memory_of_gpu_args {
+  __u64 handle;
+};
+struct kfd_ioctl_map_memory_to_gpu_args {
+  __u64 handle;
+  __u64 device_ids_array_ptr;
+  __u32 n_devices;
+  __u32 n_success;
+};
+struct kfd_ioctl_unmap_memory_from_gpu_args {
+  __u64 handle;
+  __u64 device_ids_array_ptr;
+  __u32 n_devices;
+  __u32 n_success;
+};
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -212,6 +261,13 @@
 #define AMDKFD_IOC_DBG_WAVE_CONTROL AMDKFD_IOW(0x10, struct kfd_ioctl_dbg_wave_control_args)
 #define AMDKFD_IOC_SET_SCRATCH_BACKING_VA AMDKFD_IOWR(0x11, struct kfd_ioctl_set_scratch_backing_va_args)
 #define AMDKFD_IOC_GET_TILE_CONFIG AMDKFD_IOWR(0x12, struct kfd_ioctl_get_tile_config_args)
+#define AMDKFD_IOC_SET_TRAP_HANDLER AMDKFD_IOW(0x13, struct kfd_ioctl_set_trap_handler_args)
+#define AMDKFD_IOC_GET_PROCESS_APERTURES_NEW AMDKFD_IOWR(0x14, struct kfd_ioctl_get_process_apertures_new_args)
+#define AMDKFD_IOC_ACQUIRE_VM AMDKFD_IOW(0x15, struct kfd_ioctl_acquire_vm_args)
+#define AMDKFD_IOC_ALLOC_MEMORY_OF_GPU AMDKFD_IOWR(0x16, struct kfd_ioctl_alloc_memory_of_gpu_args)
+#define AMDKFD_IOC_FREE_MEMORY_OF_GPU AMDKFD_IOW(0x17, struct kfd_ioctl_free_memory_of_gpu_args)
+#define AMDKFD_IOC_MAP_MEMORY_TO_GPU AMDKFD_IOWR(0x18, struct kfd_ioctl_map_memory_to_gpu_args)
+#define AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU AMDKFD_IOWR(0x19, struct kfd_ioctl_unmap_memory_from_gpu_args)
 #define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x13
+#define AMDKFD_COMMAND_END 0x1A
 #endif
diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h
index d04832a..6c8ae61 100644
--- a/libc/kernel/uapi/linux/kvm.h
+++ b/libc/kernel/uapi/linux/kvm.h
@@ -305,11 +305,12 @@
     struct kvm_hyperv_exit hyperv;
     char padding[256];
   };
+#define SYNC_REGS_SIZE_BYTES 2048
   __u64 kvm_valid_regs;
   __u64 kvm_dirty_regs;
   union {
     struct kvm_sync_regs regs;
-    char padding[2048];
+    char padding[SYNC_REGS_SIZE_BYTES];
   } s;
 };
 struct kvm_coalesced_mmio_zone {
@@ -510,6 +511,10 @@
   __u32 flags;
   __u8 pad[36];
 };
+#define KVM_X86_DISABLE_EXITS_MWAIT (1 << 0)
+#define KVM_X86_DISABLE_EXITS_HLT (1 << 1)
+#define KVM_X86_DISABLE_EXITS_PAUSE (1 << 2)
+#define KVM_X86_DISABLE_VALID_EXITS (KVM_X86_DISABLE_EXITS_MWAIT | KVM_X86_DISABLE_EXITS_HLT | KVM_X86_DISABLE_EXITS_PAUSE)
 struct kvm_enable_cap {
   __u32 cap;
   __u32 flags;
@@ -564,6 +569,7 @@
 #define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07
 #define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08
 #define KVM_GET_EMULATED_CPUID _IOWR(KVMIO, 0x09, struct kvm_cpuid2)
+#define KVM_GET_MSR_FEATURE_INDEX_LIST _IOWR(KVMIO, 0x0a, struct kvm_msr_list)
 #define KVM_CAP_IRQCHIP 0
 #define KVM_CAP_HLT 1
 #define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2
@@ -721,7 +727,7 @@
 #define KVM_CAP_S390_GS 140
 #define KVM_CAP_S390_AIS 141
 #define KVM_CAP_SPAPR_TCE_VFIO 142
-#define KVM_CAP_X86_GUEST_MWAIT 143
+#define KVM_CAP_X86_DISABLE_EXITS 143
 #define KVM_CAP_ARM_USER_IRQ 144
 #define KVM_CAP_S390_CMMA_MIGRATION 145
 #define KVM_CAP_PPC_FWNMI 146
@@ -731,6 +737,8 @@
 #define KVM_CAP_S390_AIS_MIGRATION 150
 #define KVM_CAP_PPC_GET_CPU_CHAR 151
 #define KVM_CAP_S390_BPB 152
+#define KVM_CAP_GET_MSR_FEATURES 153
+#define KVM_CAP_HYPERV_EVENTFD 154
 #ifdef KVM_CAP_IRQ_ROUTING
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
@@ -1032,6 +1040,77 @@
 #define KVM_SMI _IO(KVMIO, 0xb7)
 #define KVM_S390_GET_CMMA_BITS _IOWR(KVMIO, 0xb8, struct kvm_s390_cmma_log)
 #define KVM_S390_SET_CMMA_BITS _IOW(KVMIO, 0xb9, struct kvm_s390_cmma_log)
+#define KVM_MEMORY_ENCRYPT_OP _IOWR(KVMIO, 0xba, unsigned long)
+struct kvm_enc_region {
+  __u64 addr;
+  __u64 size;
+};
+#define KVM_MEMORY_ENCRYPT_REG_REGION _IOR(KVMIO, 0xbb, struct kvm_enc_region)
+#define KVM_MEMORY_ENCRYPT_UNREG_REGION _IOR(KVMIO, 0xbc, struct kvm_enc_region)
+#define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd)
+enum sev_cmd_id {
+  KVM_SEV_INIT = 0,
+  KVM_SEV_ES_INIT,
+  KVM_SEV_LAUNCH_START,
+  KVM_SEV_LAUNCH_UPDATE_DATA,
+  KVM_SEV_LAUNCH_UPDATE_VMSA,
+  KVM_SEV_LAUNCH_SECRET,
+  KVM_SEV_LAUNCH_MEASURE,
+  KVM_SEV_LAUNCH_FINISH,
+  KVM_SEV_SEND_START,
+  KVM_SEV_SEND_UPDATE_DATA,
+  KVM_SEV_SEND_UPDATE_VMSA,
+  KVM_SEV_SEND_FINISH,
+  KVM_SEV_RECEIVE_START,
+  KVM_SEV_RECEIVE_UPDATE_DATA,
+  KVM_SEV_RECEIVE_UPDATE_VMSA,
+  KVM_SEV_RECEIVE_FINISH,
+  KVM_SEV_GUEST_STATUS,
+  KVM_SEV_DBG_DECRYPT,
+  KVM_SEV_DBG_ENCRYPT,
+  KVM_SEV_CERT_EXPORT,
+  KVM_SEV_NR_MAX,
+};
+struct kvm_sev_cmd {
+  __u32 id;
+  __u64 data;
+  __u32 error;
+  __u32 sev_fd;
+};
+struct kvm_sev_launch_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 dh_uaddr;
+  __u32 dh_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_launch_update_data {
+  __u64 uaddr;
+  __u32 len;
+};
+struct kvm_sev_launch_secret {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
+struct kvm_sev_launch_measure {
+  __u64 uaddr;
+  __u32 len;
+};
+struct kvm_sev_guest_status {
+  __u32 handle;
+  __u32 policy;
+  __u32 state;
+};
+struct kvm_sev_dbg {
+  __u64 src_uaddr;
+  __u64 dst_uaddr;
+  __u32 len;
+};
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
@@ -1079,4 +1158,12 @@
 #define KVM_ARM_DEV_EL1_VTIMER (1 << 0)
 #define KVM_ARM_DEV_EL1_PTIMER (1 << 1)
 #define KVM_ARM_DEV_PMU (1 << 2)
+struct kvm_hyperv_eventfd {
+  __u32 conn_id;
+  __s32 fd;
+  __u32 flags;
+  __u32 padding[3];
+};
+#define KVM_HYPERV_CONN_ID_MASK 0x00ffffff
+#define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0)
 #endif
diff --git a/libc/kernel/uapi/linux/libc-compat.h b/libc/kernel/uapi/linux/libc-compat.h
index c9a8b74..447a46a 100644
--- a/libc/kernel/uapi/linux/libc-compat.h
+++ b/libc/kernel/uapi/linux/libc-compat.h
@@ -169,7 +169,4 @@
 #define __UAPI_DEF_XATTR 1
 #endif
 #endif
-#ifndef __UAPI_DEF_ETHHDR
-#define __UAPI_DEF_ETHHDR 1
-#endif
 #endif
diff --git a/libc/kernel/uapi/linux/lightnvm.h b/libc/kernel/uapi/linux/lightnvm.h
index 996d873..b3ac317 100644
--- a/libc/kernel/uapi/linux/lightnvm.h
+++ b/libc/kernel/uapi/linux/lightnvm.h
@@ -58,13 +58,21 @@
   __u32 lun_begin;
   __u32 lun_end;
 };
+struct nvm_ioctl_create_extended {
+  __u16 lun_begin;
+  __u16 lun_end;
+  __u16 op;
+  __u16 rsv;
+};
 enum {
   NVM_CONFIG_TYPE_SIMPLE = 0,
+  NVM_CONFIG_TYPE_EXTENDED = 1,
 };
 struct nvm_ioctl_create_conf {
   __u32 type;
   union {
     struct nvm_ioctl_create_simple s;
+    struct nvm_ioctl_create_extended e;
   };
 };
 enum {
diff --git a/libc/kernel/uapi/linux/lirc.h b/libc/kernel/uapi/linux/lirc.h
index d7dfa76..3dfb6d0 100644
--- a/libc/kernel/uapi/linux/lirc.h
+++ b/libc/kernel/uapi/linux/lirc.h
@@ -46,6 +46,7 @@
 #define LIRC_MODE_RAW 0x00000001
 #define LIRC_MODE_PULSE 0x00000002
 #define LIRC_MODE_MODE2 0x00000004
+#define LIRC_MODE_SCANCODE 0x00000008
 #define LIRC_MODE_LIRCCODE 0x00000010
 #define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW)
 #define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE)
@@ -58,6 +59,7 @@
 #define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW)
 #define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE)
 #define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2)
+#define LIRC_CAN_REC_SCANCODE LIRC_MODE2REC(LIRC_MODE_SCANCODE)
 #define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE)
 #define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK)
 #define LIRC_CAN_SET_REC_CARRIER (LIRC_CAN_SET_SEND_CARRIER << 16)
@@ -90,4 +92,39 @@
 #define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, __u32)
 #define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, __u32)
 #define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32)
+struct lirc_scancode {
+  __u64 timestamp;
+  __u16 flags;
+  __u16 rc_proto;
+  __u32 keycode;
+  __u64 scancode;
+};
+#define LIRC_SCANCODE_FLAG_TOGGLE 1
+#define LIRC_SCANCODE_FLAG_REPEAT 2
+enum rc_proto {
+  RC_PROTO_UNKNOWN = 0,
+  RC_PROTO_OTHER = 1,
+  RC_PROTO_RC5 = 2,
+  RC_PROTO_RC5X_20 = 3,
+  RC_PROTO_RC5_SZ = 4,
+  RC_PROTO_JVC = 5,
+  RC_PROTO_SONY12 = 6,
+  RC_PROTO_SONY15 = 7,
+  RC_PROTO_SONY20 = 8,
+  RC_PROTO_NEC = 9,
+  RC_PROTO_NECX = 10,
+  RC_PROTO_NEC32 = 11,
+  RC_PROTO_SANYO = 12,
+  RC_PROTO_MCIR2_KBD = 13,
+  RC_PROTO_MCIR2_MSE = 14,
+  RC_PROTO_RC6_0 = 15,
+  RC_PROTO_RC6_6A_20 = 16,
+  RC_PROTO_RC6_6A_24 = 17,
+  RC_PROTO_RC6_6A_32 = 18,
+  RC_PROTO_RC6_MCE = 19,
+  RC_PROTO_SHARP = 20,
+  RC_PROTO_XMP = 21,
+  RC_PROTO_CEC = 22,
+  RC_PROTO_IMON = 23,
+};
 #endif
diff --git a/libc/kernel/uapi/linux/lp.h b/libc/kernel/uapi/linux/lp.h
index b3504f0..35d5d5a 100644
--- a/libc/kernel/uapi/linux/lp.h
+++ b/libc/kernel/uapi/linux/lp.h
@@ -18,6 +18,8 @@
  ****************************************************************************/
 #ifndef _UAPI_LINUX_LP_H
 #define _UAPI_LINUX_LP_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
 #define LP_EXIST 0x0001
 #define LP_SELEC 0x0002
 #define LP_BUSY 0x0004
@@ -53,7 +55,13 @@
 #define LPGETSTATS 0x060d
 #endif
 #define LPGETFLAGS 0x060e
-#define LPSETTIMEOUT 0x060f
+#define LPSETTIMEOUT_OLD 0x060f
+#define LPSETTIMEOUT_NEW _IOW(0x6, 0xf, __s64[2])
+#if __BITS_PER_LONG == 64
+#define LPSETTIMEOUT LPSETTIMEOUT_OLD
+#else
+#define LPSETTIMEOUT (sizeof(time_t) > sizeof(__kernel_long_t) ? LPSETTIMEOUT_NEW : LPSETTIMEOUT_OLD)
+#endif
 #define LP_TIMEOUT_INTERRUPT (60 * HZ)
 #define LP_TIMEOUT_POLLED (10 * HZ)
 #endif
diff --git a/libc/kernel/uapi/linux/media.h b/libc/kernel/uapi/linux/media.h
index b24d616..e6236f9 100644
--- a/libc/kernel/uapi/linux/media.h
+++ b/libc/kernel/uapi/linux/media.h
@@ -32,18 +32,25 @@
   __u32 driver_version;
   __u32 reserved[31];
 };
-#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
-#define MEDIA_ENT_F_UNKNOWN 0x00000000
 #define MEDIA_ENT_F_BASE 0x00000000
 #define MEDIA_ENT_F_OLD_BASE 0x00010000
 #define MEDIA_ENT_F_OLD_SUBDEV_BASE 0x00020000
+#define MEDIA_ENT_F_UNKNOWN MEDIA_ENT_F_BASE
+#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE
 #define MEDIA_ENT_F_DTV_DEMOD (MEDIA_ENT_F_BASE + 0x00001)
 #define MEDIA_ENT_F_TS_DEMUX (MEDIA_ENT_F_BASE + 0x00002)
 #define MEDIA_ENT_F_DTV_CA (MEDIA_ENT_F_BASE + 0x00003)
 #define MEDIA_ENT_F_DTV_NET_DECAP (MEDIA_ENT_F_BASE + 0x00004)
+#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
 #define MEDIA_ENT_F_IO_DTV (MEDIA_ENT_F_BASE + 0x01001)
 #define MEDIA_ENT_F_IO_VBI (MEDIA_ENT_F_BASE + 0x01002)
 #define MEDIA_ENT_F_IO_SWRADIO (MEDIA_ENT_F_BASE + 0x01003)
+#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
+#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
+#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
+#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
+#define MEDIA_ENT_F_DTV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
+#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)
 #define MEDIA_ENT_F_IF_VID_DECODER (MEDIA_ENT_F_BASE + 0x02001)
 #define MEDIA_ENT_F_IF_AUD_DECODER (MEDIA_ENT_F_BASE + 0x02002)
 #define MEDIA_ENT_F_AUDIO_CAPTURE (MEDIA_ENT_F_BASE + 0x03001)
@@ -57,33 +64,9 @@
 #define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
 #define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001)
 #define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002)
-#define MEDIA_ENT_F_IO_V4L (MEDIA_ENT_F_OLD_BASE + 1)
-#define MEDIA_ENT_F_CAM_SENSOR (MEDIA_ENT_F_OLD_SUBDEV_BASE + 1)
-#define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
-#define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
-#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
-#define MEDIA_ENT_F_TUNER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 5)
-#define MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN MEDIA_ENT_F_OLD_SUBDEV_BASE
-#define MEDIA_ENT_TYPE_SHIFT 16
-#define MEDIA_ENT_TYPE_MASK 0x00ff0000
-#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
-#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_T_DEVNODE | MEDIA_ENT_SUBTYPE_MASK)
-#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
-#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
-#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_T_DEVNODE + 2)
-#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_T_DEVNODE + 3)
-#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_T_DEVNODE + 4)
-#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
-#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
-#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
-#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
-#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
-#define MEDIA_ENT_T_V4L2_SUBDEV_LENS MEDIA_ENT_F_LENS
-#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
-#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
-#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
 #define MEDIA_ENT_FL_DEFAULT (1 << 0)
 #define MEDIA_ENT_FL_CONNECTOR (1 << 1)
+#define MEDIA_ENT_ID_FLAG_NEXT (1 << 31)
 struct media_entity_desc {
   __u32 id;
   char name[32];
@@ -145,7 +128,6 @@
 };
 #define MEDIA_INTF_T_DVB_BASE 0x00000100
 #define MEDIA_INTF_T_V4L_BASE 0x00000200
-#define MEDIA_INTF_T_ALSA_BASE 0x00000300
 #define MEDIA_INTF_T_DVB_FE (MEDIA_INTF_T_DVB_BASE)
 #define MEDIA_INTF_T_DVB_DEMUX (MEDIA_INTF_T_DVB_BASE + 1)
 #define MEDIA_INTF_T_DVB_DVR (MEDIA_INTF_T_DVB_BASE + 2)
@@ -157,14 +139,6 @@
 #define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3)
 #define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4)
 #define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5)
-#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
-#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
-#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
-#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
-#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
-#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
-#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
-#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
 struct media_v2_entity {
   __u32 id;
   char name[64];
@@ -218,4 +192,31 @@
 #define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum)
 #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
 #define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
+#define MEDIA_ENT_TYPE_SHIFT 16
+#define MEDIA_ENT_TYPE_MASK 0x00ff0000
+#define MEDIA_ENT_SUBTYPE_MASK 0x0000ffff
+#define MEDIA_ENT_T_DEVNODE_UNKNOWN (MEDIA_ENT_F_OLD_BASE | MEDIA_ENT_SUBTYPE_MASK)
+#define MEDIA_ENT_T_DEVNODE MEDIA_ENT_F_OLD_BASE
+#define MEDIA_ENT_T_DEVNODE_V4L MEDIA_ENT_F_IO_V4L
+#define MEDIA_ENT_T_DEVNODE_FB (MEDIA_ENT_F_OLD_BASE + 2)
+#define MEDIA_ENT_T_DEVNODE_ALSA (MEDIA_ENT_F_OLD_BASE + 3)
+#define MEDIA_ENT_T_DEVNODE_DVB (MEDIA_ENT_F_OLD_BASE + 4)
+#define MEDIA_ENT_T_UNKNOWN MEDIA_ENT_F_UNKNOWN
+#define MEDIA_ENT_T_V4L2_VIDEO MEDIA_ENT_F_IO_V4L
+#define MEDIA_ENT_T_V4L2_SUBDEV MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN
+#define MEDIA_ENT_T_V4L2_SUBDEV_SENSOR MEDIA_ENT_F_CAM_SENSOR
+#define MEDIA_ENT_T_V4L2_SUBDEV_FLASH MEDIA_ENT_F_FLASH
+#define MEDIA_ENT_T_V4L2_SUBDEV_LENS MEDIA_ENT_F_LENS
+#define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
+#define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
+#define MEDIA_INTF_T_ALSA_BASE 0x00000300
+#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE)
+#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1)
+#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2)
+#define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3)
+#define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4)
+#define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5)
+#define MEDIA_INTF_T_ALSA_SEQUENCER (MEDIA_INTF_T_ALSA_BASE + 6)
+#define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
+#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
 #endif
diff --git a/libc/kernel/uapi/linux/membarrier.h b/libc/kernel/uapi/linux/membarrier.h
index 2f5ea7d..19cfeb2 100644
--- a/libc/kernel/uapi/linux/membarrier.h
+++ b/libc/kernel/uapi/linux/membarrier.h
@@ -20,8 +20,13 @@
 #define _UAPI_LINUX_MEMBARRIER_H
 enum membarrier_cmd {
   MEMBARRIER_CMD_QUERY = 0,
-  MEMBARRIER_CMD_SHARED = (1 << 0),
+  MEMBARRIER_CMD_GLOBAL = (1 << 0),
+  MEMBARRIER_CMD_GLOBAL_EXPEDITED = (1 << 1),
+  MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = (1 << 2),
   MEMBARRIER_CMD_PRIVATE_EXPEDITED = (1 << 3),
   MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = (1 << 4),
+  MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 5),
+  MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 6),
+  MEMBARRIER_CMD_SHARED = MEMBARRIER_CMD_GLOBAL,
 };
 #endif
diff --git a/libc/kernel/uapi/linux/msdos_fs.h b/libc/kernel/uapi/linux/msdos_fs.h
index 9daf251..60ee22a 100644
--- a/libc/kernel/uapi/linux/msdos_fs.h
+++ b/libc/kernel/uapi/linux/msdos_fs.h
@@ -21,7 +21,9 @@
 #include <linux/types.h>
 #include <linux/magic.h>
 #include <asm/byteorder.h>
+#ifndef SECTOR_SIZE
 #define SECTOR_SIZE 512
+#endif
 #define SECTOR_BITS 9
 #define MSDOS_DPB (MSDOS_DPS)
 #define MSDOS_DPB_BITS 4
diff --git a/libc/kernel/uapi/linux/msg.h b/libc/kernel/uapi/linux/msg.h
index 89d8d38..20d8d4f 100644
--- a/libc/kernel/uapi/linux/msg.h
+++ b/libc/kernel/uapi/linux/msg.h
@@ -21,6 +21,7 @@
 #include <linux/ipc.h>
 #define MSG_STAT 11
 #define MSG_INFO 12
+#define MSG_STAT_ANY 13
 #define MSG_NOERROR 010000
 #define MSG_EXCEPT 020000
 #define MSG_COPY 040000
diff --git a/libc/kernel/uapi/linux/ncsi.h b/libc/kernel/uapi/linux/ncsi.h
new file mode 100644
index 0000000..6b128e4
--- /dev/null
+++ b/libc/kernel/uapi/linux/ncsi.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 __UAPI_NCSI_NETLINK_H__
+#define __UAPI_NCSI_NETLINK_H__
+enum ncsi_nl_commands {
+  NCSI_CMD_UNSPEC,
+  NCSI_CMD_PKG_INFO,
+  NCSI_CMD_SET_INTERFACE,
+  NCSI_CMD_CLEAR_INTERFACE,
+  __NCSI_CMD_AFTER_LAST,
+  NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1
+};
+enum ncsi_nl_attrs {
+  NCSI_ATTR_UNSPEC,
+  NCSI_ATTR_IFINDEX,
+  NCSI_ATTR_PACKAGE_LIST,
+  NCSI_ATTR_PACKAGE_ID,
+  NCSI_ATTR_CHANNEL_ID,
+  __NCSI_ATTR_AFTER_LAST,
+  NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1
+};
+enum ncsi_nl_pkg_attrs {
+  NCSI_PKG_ATTR_UNSPEC,
+  NCSI_PKG_ATTR,
+  NCSI_PKG_ATTR_ID,
+  NCSI_PKG_ATTR_FORCED,
+  NCSI_PKG_ATTR_CHANNEL_LIST,
+  __NCSI_PKG_ATTR_AFTER_LAST,
+  NCSI_PKG_ATTR_MAX = __NCSI_PKG_ATTR_AFTER_LAST - 1
+};
+enum ncsi_nl_channel_attrs {
+  NCSI_CHANNEL_ATTR_UNSPEC,
+  NCSI_CHANNEL_ATTR,
+  NCSI_CHANNEL_ATTR_ID,
+  NCSI_CHANNEL_ATTR_VERSION_MAJOR,
+  NCSI_CHANNEL_ATTR_VERSION_MINOR,
+  NCSI_CHANNEL_ATTR_VERSION_STR,
+  NCSI_CHANNEL_ATTR_LINK_STATE,
+  NCSI_CHANNEL_ATTR_ACTIVE,
+  NCSI_CHANNEL_ATTR_FORCED,
+  NCSI_CHANNEL_ATTR_VLAN_LIST,
+  NCSI_CHANNEL_ATTR_VLAN_ID,
+  __NCSI_CHANNEL_ATTR_AFTER_LAST,
+  NCSI_CHANNEL_ATTR_MAX = __NCSI_CHANNEL_ATTR_AFTER_LAST - 1
+};
+#endif
diff --git a/libc/kernel/uapi/linux/ndctl.h b/libc/kernel/uapi/linux/ndctl.h
index 44c9ee0..bee0b1c 100644
--- a/libc/kernel/uapi/linux/ndctl.h
+++ b/libc/kernel/uapi/linux/ndctl.h
@@ -19,49 +19,6 @@
 #ifndef __NDCTL_H__
 #define __NDCTL_H__
 #include <linux/types.h>
-struct nd_cmd_smart {
-  __u32 status;
-  __u8 data[128];
-} __packed;
-#define ND_SMART_HEALTH_VALID (1 << 0)
-#define ND_SMART_SPARES_VALID (1 << 1)
-#define ND_SMART_USED_VALID (1 << 2)
-#define ND_SMART_TEMP_VALID (1 << 3)
-#define ND_SMART_CTEMP_VALID (1 << 4)
-#define ND_SMART_ALARM_VALID (1 << 9)
-#define ND_SMART_SHUTDOWN_VALID (1 << 10)
-#define ND_SMART_VENDOR_VALID (1 << 11)
-#define ND_SMART_SPARE_TRIP (1 << 0)
-#define ND_SMART_TEMP_TRIP (1 << 1)
-#define ND_SMART_CTEMP_TRIP (1 << 2)
-#define ND_SMART_NON_CRITICAL_HEALTH (1 << 0)
-#define ND_SMART_CRITICAL_HEALTH (1 << 1)
-#define ND_SMART_FATAL_HEALTH (1 << 2)
-struct nd_smart_payload {
-  __u32 flags;
-  __u8 reserved0[4];
-  __u8 health;
-  __u8 spares;
-  __u8 life_used;
-  __u8 alarm_flags;
-  __u16 temperature;
-  __u16 ctrl_temperature;
-  __u8 reserved1[15];
-  __u8 shutdown_state;
-  __u32 vendor_size;
-  __u8 vendor_data[92];
-} __packed;
-struct nd_cmd_smart_threshold {
-  __u32 status;
-  __u8 data[8];
-} __packed;
-struct nd_smart_threshold_payload {
-  __u8 alarm_control;
-  __u8 reserved0;
-  __u16 temperature;
-  __u8 spares;
-  __u8 reserved[3];
-} __packed;
 struct nd_cmd_dimm_flags {
   __u32 status;
   __u32 flags;
@@ -158,8 +115,6 @@
   ND_CONFIG_LOCKED = 1,
 };
 #define ND_IOCTL 'N'
-#define ND_IOCTL_SMART _IOWR(ND_IOCTL, ND_CMD_SMART, struct nd_cmd_smart)
-#define ND_IOCTL_SMART_THRESHOLD _IOWR(ND_IOCTL, ND_CMD_SMART_THRESHOLD, struct nd_cmd_smart_threshold)
 #define ND_IOCTL_DIMM_FLAGS _IOWR(ND_IOCTL, ND_CMD_DIMM_FLAGS, struct nd_cmd_dimm_flags)
 #define ND_IOCTL_GET_CONFIG_SIZE _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_SIZE, struct nd_cmd_get_config_size)
 #define ND_IOCTL_GET_CONFIG_DATA _IOWR(ND_IOCTL, ND_CMD_GET_CONFIG_DATA, struct nd_cmd_get_config_data_hdr)
@@ -186,7 +141,7 @@
   ND_DRIVER_DAX_PMEM = 1 << ND_DEVICE_DAX_PMEM,
 };
 enum {
-  ND_MIN_NAMESPACE_SIZE = 0x00400000,
+  ND_MIN_NAMESPACE_SIZE = PAGE_SIZE,
 };
 enum ars_masks {
   ARS_STATUS_MASK = 0x0000FFFF,
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
index 0d35c15..2259e09 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
@@ -62,7 +62,9 @@
   IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
   IPS_HELPER_BIT = 13,
   IPS_HELPER = (1 << IPS_HELPER_BIT),
-  IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | IPS_SEQ_ADJUST | IPS_TEMPLATE),
+  IPS_OFFLOAD_BIT = 14,
+  IPS_OFFLOAD = (1 << IPS_OFFLOAD_BIT),
+  IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_OFFLOAD),
   __IPS_MAX_BIT = 14,
 };
 enum ip_conntrack_events {
@@ -78,6 +80,7 @@
   IPCT_NATSEQADJ = IPCT_SEQADJ,
   IPCT_SECMARK,
   IPCT_LABEL,
+  IPCT_SYNPROXY,
 };
 enum ip_conntrack_expect_events {
   IPEXP_NEW,
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
index e76aa9b..8894aa1 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
@@ -44,6 +44,7 @@
 #define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10
 #define IP_CT_TCP_FLAG_MAXACK_SET 0x20
 #define IP_CT_EXP_CHALLENGE_ACK 0x40
+#define IP_CT_TCP_SIMULTANEOUS_OPEN 0x80
 struct nf_ct_tcp_flags {
   __u8 flags;
   __u8 mask;
diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables.h b/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 169fb33..610594c 100644
--- a/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -81,6 +81,9 @@
   NFT_MSG_GETOBJ,
   NFT_MSG_DELOBJ,
   NFT_MSG_GETOBJ_RESET,
+  NFT_MSG_NEWFLOWTABLE,
+  NFT_MSG_GETFLOWTABLE,
+  NFT_MSG_DELFLOWTABLE,
   NFT_MSG_MAX,
 };
 enum nft_list_attributes {
@@ -105,6 +108,8 @@
   NFTA_TABLE_NAME,
   NFTA_TABLE_FLAGS,
   NFTA_TABLE_USE,
+  NFTA_TABLE_HANDLE,
+  NFTA_TABLE_PAD,
   __NFTA_TABLE_MAX
 };
 #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
@@ -183,6 +188,7 @@
   NFTA_SET_USERDATA,
   NFTA_SET_PAD,
   NFTA_SET_OBJ_TYPE,
+  NFTA_SET_HANDLE,
   __NFTA_SET_MAX
 };
 #define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
@@ -405,6 +411,7 @@
   NFT_META_OIFGROUP,
   NFT_META_CGROUP,
   NFT_META_PRANDOM,
+  NFT_META_SECPATH,
 };
 enum nft_rt_keys {
   NFT_RT_CLASSID,
@@ -463,6 +470,10 @@
   NFT_CT_AVGPKT,
   NFT_CT_ZONE,
   NFT_CT_EVENTMASK,
+  NFT_CT_SRC_IP,
+  NFT_CT_DST_IP,
+  NFT_CT_SRC_IP6,
+  NFT_CT_DST_IP6,
 };
 enum nft_ct_attributes {
   NFTA_CT_UNSPEC,
@@ -473,6 +484,12 @@
   __NFTA_CT_MAX
 };
 #define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
+enum nft_offload_attributes {
+  NFTA_FLOW_UNSPEC,
+  NFTA_FLOW_TABLE_NAME,
+  __NFTA_FLOW_MAX,
+};
+#define NFTA_FLOW_MAX (__NFTA_FLOW_MAX - 1)
 enum nft_limit_type {
   NFT_LIMIT_PKTS,
   NFT_LIMIT_PKT_BYTES
@@ -664,9 +681,36 @@
   NFTA_OBJ_TYPE,
   NFTA_OBJ_DATA,
   NFTA_OBJ_USE,
+  NFTA_OBJ_HANDLE,
+  NFTA_OBJ_PAD,
   __NFTA_OBJ_MAX
 };
 #define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1)
+enum nft_flowtable_attributes {
+  NFTA_FLOWTABLE_UNSPEC,
+  NFTA_FLOWTABLE_TABLE,
+  NFTA_FLOWTABLE_NAME,
+  NFTA_FLOWTABLE_HOOK,
+  NFTA_FLOWTABLE_USE,
+  NFTA_FLOWTABLE_HANDLE,
+  NFTA_FLOWTABLE_PAD,
+  __NFTA_FLOWTABLE_MAX
+};
+#define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1)
+enum nft_flowtable_hook_attributes {
+  NFTA_FLOWTABLE_HOOK_UNSPEC,
+  NFTA_FLOWTABLE_HOOK_NUM,
+  NFTA_FLOWTABLE_HOOK_PRIORITY,
+  NFTA_FLOWTABLE_HOOK_DEVS,
+  __NFTA_FLOWTABLE_HOOK_MAX
+};
+#define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
+enum nft_devices_attributes {
+  NFTA_DEVICE_UNSPEC,
+  NFTA_DEVICE_NAME,
+  __NFTA_DEVICE_MAX
+};
+#define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)
 enum nft_trace_attributes {
   NFTA_TRACE_UNSPEC,
   NFTA_TRACE_TABLE,
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
index a961723..1347820 100644
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -65,6 +65,7 @@
   CTA_MARK_MASK,
   CTA_LABELS,
   CTA_LABELS_MASK,
+  CTA_SYNPROXY,
   __CTA_MAX
 };
 #define CTA_MAX (__CTA_MAX - 1)
@@ -187,6 +188,14 @@
   __CTA_NAT_SEQ_MAX
 };
 #define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1)
+enum ctattr_synproxy {
+  CTA_SYNPROXY_UNSPEC,
+  CTA_SYNPROXY_ISN,
+  CTA_SYNPROXY_ITS,
+  CTA_SYNPROXY_TSOFF,
+  __CTA_SYNPROXY_MAX,
+};
+#define CTA_SYNPROXY_MAX (__CTA_SYNPROXY_MAX - 1)
 enum ctattr_expect {
   CTA_EXPECT_UNSPEC,
   CTA_EXPECT_MASTER,
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connlimit.h b/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
index 262bc2a..9ff2de9 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
@@ -35,6 +35,6 @@
   };
   unsigned int limit;
   __u32 flags;
-  struct xt_connlimit_data * data __attribute__((aligned(8)));
+  struct nf_conncount_data * data __attribute__((aligned(8)));
 };
 #endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connmark.h b/libc/kernel/uapi/linux/netfilter/xt_connmark.h
index ef4c1d0..f14474f 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_connmark.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_connmark.h
@@ -24,10 +24,18 @@
   XT_CONNMARK_SAVE,
   XT_CONNMARK_RESTORE
 };
+enum {
+  D_SHIFT_LEFT = 0,
+  D_SHIFT_RIGHT,
+};
 struct xt_connmark_tginfo1 {
   __u32 ctmark, ctmask, nfmask;
   __u8 mode;
 };
+struct xt_connmark_tginfo2 {
+  __u32 ctmark, ctmask, nfmask;
+  __u8 shift_dir, shift_bits, mode;
+};
 struct xt_connmark_mtinfo1 {
   __u32 mark, mask;
   __u8 invert;
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h b/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h
index ef8edab..6ee8afb 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebt_ip.h
@@ -25,7 +25,9 @@
 #define EBT_IP_PROTO 0x08
 #define EBT_IP_SPORT 0x10
 #define EBT_IP_DPORT 0x20
-#define EBT_IP_MASK (EBT_IP_SOURCE | EBT_IP_DEST | EBT_IP_TOS | EBT_IP_PROTO | EBT_IP_SPORT | EBT_IP_DPORT)
+#define EBT_IP_ICMP 0x40
+#define EBT_IP_IGMP 0x80
+#define EBT_IP_MASK (EBT_IP_SOURCE | EBT_IP_DEST | EBT_IP_TOS | EBT_IP_PROTO | EBT_IP_SPORT | EBT_IP_DPORT | EBT_IP_ICMP | EBT_IP_IGMP)
 #define EBT_IP_MATCH "ip"
 struct ebt_ip_info {
   __be32 saddr;
@@ -36,7 +38,14 @@
   __u8 protocol;
   __u8 bitmask;
   __u8 invflags;
-  __u16 sport[2];
-  __u16 dport[2];
+  union {
+    __u16 sport[2];
+    __u8 icmp_type[2];
+    __u8 igmp_type[2];
+  };
+  union {
+    __u16 dport[2];
+    __u8 icmp_code[2];
+  };
 };
 #endif
diff --git a/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h b/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h
index ba6ce91..e102756 100644
--- a/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h
+++ b/libc/kernel/uapi/linux/netfilter_bridge/ebtables.h
@@ -24,6 +24,7 @@
 #define EBT_TABLE_MAXNAMELEN 32
 #define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN
 #define EBT_FUNCTION_MAXNAMELEN EBT_TABLE_MAXNAMELEN
+#define EBT_EXTENSION_MAXNAMELEN 31
 #define EBT_ACCEPT - 1
 #define EBT_DROP - 2
 #define EBT_CONTINUE - 3
@@ -80,7 +81,10 @@
 #define EBT_INV_MASK (EBT_IPROTO | EBT_IIN | EBT_IOUT | EBT_ILOGICALIN | EBT_ILOGICALOUT | EBT_ISOURCE | EBT_IDEST)
 struct ebt_entry_match {
   union {
-    char name[EBT_FUNCTION_MAXNAMELEN];
+    struct {
+      char name[EBT_EXTENSION_MAXNAMELEN];
+      uint8_t revision;
+    };
     struct xt_match * match;
   } u;
   unsigned int match_size;
@@ -88,7 +92,10 @@
 };
 struct ebt_entry_watcher {
   union {
-    char name[EBT_FUNCTION_MAXNAMELEN];
+    struct {
+      char name[EBT_EXTENSION_MAXNAMELEN];
+      uint8_t revision;
+    };
     struct xt_target * watcher;
   } u;
   unsigned int watcher_size;
@@ -96,7 +103,10 @@
 };
 struct ebt_entry_target {
   union {
-    char name[EBT_FUNCTION_MAXNAMELEN];
+    struct {
+      char name[EBT_EXTENSION_MAXNAMELEN];
+      uint8_t revision;
+    };
     struct xt_target * target;
   } u;
   unsigned int target_size;
diff --git a/libc/kernel/uapi/linux/netfilter_decnet.h b/libc/kernel/uapi/linux/netfilter_decnet.h
index cde4645..a9dcdd3 100644
--- a/libc/kernel/uapi/linux/netfilter_decnet.h
+++ b/libc/kernel/uapi/linux/netfilter_decnet.h
@@ -24,6 +24,7 @@
 #define NFC_DN_DST 0x0002
 #define NFC_DN_IF_IN 0x0004
 #define NFC_DN_IF_OUT 0x0008
+#define NF_DN_NUMHOOKS 7
 #define NF_DN_PRE_ROUTING 0
 #define NF_DN_LOCAL_IN 1
 #define NF_DN_FORWARD 2
@@ -31,7 +32,6 @@
 #define NF_DN_POST_ROUTING 4
 #define NF_DN_HELLO 5
 #define NF_DN_ROUTE 6
-#define NF_DN_NUMHOOKS 7
 enum nf_dn_hook_priorities {
   NF_DN_PRI_FIRST = INT_MIN,
   NF_DN_PRI_CONNTRACK = - 200,
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4.h b/libc/kernel/uapi/linux/netfilter_ipv4.h
index 06a6247..7eed768 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv4.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv4.h
@@ -40,6 +40,7 @@
 #define NF_IP_NUMHOOKS 5
 enum nf_ip_hook_priorities {
   NF_IP_PRI_FIRST = INT_MIN,
+  NF_IP_PRI_RAW_BEFORE_DEFRAG = - 450,
   NF_IP_PRI_CONNTRACK_DEFRAG = - 400,
   NF_IP_PRI_RAW = - 300,
   NF_IP_PRI_SELINUX_FIRST = - 225,
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6.h b/libc/kernel/uapi/linux/netfilter_ipv6.h
index d81134f..2054532 100644
--- a/libc/kernel/uapi/linux/netfilter_ipv6.h
+++ b/libc/kernel/uapi/linux/netfilter_ipv6.h
@@ -40,6 +40,7 @@
 #define NF_IP6_NUMHOOKS 5
 enum nf_ip6_hook_priorities {
   NF_IP6_PRI_FIRST = INT_MIN,
+  NF_IP6_PRI_RAW_BEFORE_DEFRAG = - 450,
   NF_IP6_PRI_CONNTRACK_DEFRAG = - 400,
   NF_IP6_PRI_RAW = - 300,
   NF_IP6_PRI_SELINUX_FIRST = - 225,
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h
new file mode 100644
index 0000000..70fd3e4
--- /dev/null
+++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _IP6T_SRH_H
+#define _IP6T_SRH_H
+#include <linux/types.h>
+#include <linux/netfilter.h>
+#define IP6T_SRH_NEXTHDR 0x0001
+#define IP6T_SRH_LEN_EQ 0x0002
+#define IP6T_SRH_LEN_GT 0x0004
+#define IP6T_SRH_LEN_LT 0x0008
+#define IP6T_SRH_SEGS_EQ 0x0010
+#define IP6T_SRH_SEGS_GT 0x0020
+#define IP6T_SRH_SEGS_LT 0x0040
+#define IP6T_SRH_LAST_EQ 0x0080
+#define IP6T_SRH_LAST_GT 0x0100
+#define IP6T_SRH_LAST_LT 0x0200
+#define IP6T_SRH_TAG 0x0400
+#define IP6T_SRH_MASK 0x07FF
+#define IP6T_SRH_INV_NEXTHDR 0x0001
+#define IP6T_SRH_INV_LEN_EQ 0x0002
+#define IP6T_SRH_INV_LEN_GT 0x0004
+#define IP6T_SRH_INV_LEN_LT 0x0008
+#define IP6T_SRH_INV_SEGS_EQ 0x0010
+#define IP6T_SRH_INV_SEGS_GT 0x0020
+#define IP6T_SRH_INV_SEGS_LT 0x0040
+#define IP6T_SRH_INV_LAST_EQ 0x0080
+#define IP6T_SRH_INV_LAST_GT 0x0100
+#define IP6T_SRH_INV_LAST_LT 0x0200
+#define IP6T_SRH_INV_TAG 0x0400
+#define IP6T_SRH_INV_MASK 0x07FF
+struct ip6t_srh {
+  __u8 next_hdr;
+  __u8 hdr_len;
+  __u8 segs_left;
+  __u8 last_entry;
+  __u16 tag;
+  __u16 mt_flags;
+  __u16 mt_invflags;
+};
+#endif
diff --git a/libc/kernel/uapi/linux/nfs.h b/libc/kernel/uapi/linux/nfs.h
index ac11084..e8c0499 100644
--- a/libc/kernel/uapi/linux/nfs.h
+++ b/libc/kernel/uapi/linux/nfs.h
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #define NFS_PROGRAM 100003
 #define NFS_PORT 2049
+#define NFS_RDMA_PORT 20049
 #define NFS_MAXDATA 8192
 #define NFS_MAXPATHLEN 1024
 #define NFS_MAXNAMLEN 255
diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h
index ebf9448..349b471 100644
--- a/libc/kernel/uapi/linux/nl80211.h
+++ b/libc/kernel/uapi/linux/nl80211.h
@@ -160,6 +160,9 @@
   NL80211_CMD_DEL_PMK,
   NL80211_CMD_PORT_AUTHORIZED,
   NL80211_CMD_RELOAD_REGDB,
+  NL80211_CMD_EXTERNAL_AUTH,
+  NL80211_CMD_STA_OPMODE_CHANGED,
+  NL80211_CMD_CONTROL_PORT_FRAME,
   __NL80211_CMD_AFTER_LAST,
   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
 };
@@ -436,6 +439,11 @@
   NL80211_ATTR_WANT_1X_4WAY_HS,
   NL80211_ATTR_PMKR0_NAME,
   NL80211_ATTR_PORT_AUTHORIZED,
+  NL80211_ATTR_EXTERNAL_AUTH_ACTION,
+  NL80211_ATTR_EXTERNAL_AUTH_SUPPORT,
+  NL80211_ATTR_NSS,
+  NL80211_ATTR_ACK_SIGNAL,
+  NL80211_ATTR_CONTROL_PORT_OVER_NL80211,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -465,6 +473,7 @@
 #define NL80211_ATTR_KEY NL80211_ATTR_KEY
 #define NL80211_ATTR_KEYS NL80211_ATTR_KEYS
 #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
+#define NL80211_WIPHY_NAME_MAXLEN 64
 #define NL80211_MAX_SUPP_RATES 32
 #define NL80211_MAX_SUPP_HT_RATES 77
 #define NL80211_MAX_SUPP_REG_RULES 64
@@ -579,6 +588,7 @@
   NL80211_STA_INFO_TID_STATS,
   NL80211_STA_INFO_RX_DURATION,
   NL80211_STA_INFO_PAD,
+  NL80211_STA_INFO_ACK_SIGNAL,
   __NL80211_STA_INFO_AFTER_LAST,
   NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
 };
@@ -876,6 +886,7 @@
   NL80211_BSS_PAD,
   NL80211_BSS_PARENT_TSF,
   NL80211_BSS_PARENT_BSSID,
+  NL80211_BSS_CHAIN_SIGNAL,
   __NL80211_BSS_AFTER_LAST,
   NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1
 };
@@ -1202,6 +1213,11 @@
   NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE,
   NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION,
   NL80211_EXT_FEATURE_MFP_OPTIONAL,
+  NL80211_EXT_FEATURE_LOW_SPAN_SCAN,
+  NL80211_EXT_FEATURE_LOW_POWER_SCAN,
+  NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN,
+  NL80211_EXT_FEATURE_DFS_OFFLOAD,
+  NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
   NUM_NL80211_EXT_FEATURES,
   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 };
@@ -1230,6 +1246,9 @@
   NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 1 << 5,
   NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 1 << 6,
   NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 1 << 7,
+  NL80211_SCAN_FLAG_LOW_SPAN = 1 << 8,
+  NL80211_SCAN_FLAG_LOW_POWER = 1 << 9,
+  NL80211_SCAN_FLAG_HIGH_ACCURACY = 1 << 10,
 };
 enum nl80211_acl_policy {
   NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED,
@@ -1248,6 +1267,7 @@
   NL80211_RADAR_CAC_ABORTED,
   NL80211_RADAR_NOP_FINISHED,
   NL80211_RADAR_PRE_CAC_EXPIRED,
+  NL80211_RADAR_CAC_STARTED,
 };
 enum nl80211_dfs_state {
   NL80211_DFS_USABLE,
@@ -1353,4 +1373,8 @@
   NUM_NL80211_NAN_MATCH_ATTR,
   NL80211_NAN_MATCH_ATTR_MAX = NUM_NL80211_NAN_MATCH_ATTR - 1
 };
+enum nl80211_external_auth_action {
+  NL80211_EXTERNAL_AUTH_START,
+  NL80211_EXTERNAL_AUTH_ABORT,
+};
 #endif
diff --git a/libc/kernel/uapi/linux/nubus.h b/libc/kernel/uapi/linux/nubus.h
index 530005b..141c2f2 100644
--- a/libc/kernel/uapi/linux/nubus.h
+++ b/libc/kernel/uapi/linux/nubus.h
@@ -155,16 +155,4 @@
   NUBUS_RESID_FIFTHMODE = 0x0084,
   NUBUS_RESID_SIXTHMODE = 0x0085
 };
-struct nubus_dir {
-  unsigned char * base;
-  unsigned char * ptr;
-  int done;
-  int mask;
-};
-struct nubus_dirent {
-  unsigned char * base;
-  unsigned char type;
-  __u32 data;
-  int mask;
-};
 #endif
diff --git a/libc/kernel/uapi/linux/openvswitch.h b/libc/kernel/uapi/linux/openvswitch.h
index bea44d0..1dba16e 100644
--- a/libc/kernel/uapi/linux/openvswitch.h
+++ b/libc/kernel/uapi/linux/openvswitch.h
@@ -204,6 +204,7 @@
   OVS_TUNNEL_KEY_ATTR_IPV6_SRC,
   OVS_TUNNEL_KEY_ATTR_IPV6_DST,
   OVS_TUNNEL_KEY_ATTR_PAD,
+  OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS,
   __OVS_TUNNEL_KEY_ATTR_MAX
 };
 #define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1)
diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h
index 148f2b4..4ef3837 100644
--- a/libc/kernel/uapi/linux/pci_regs.h
+++ b/libc/kernel/uapi/linux/pci_regs.h
@@ -430,6 +430,7 @@
 #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001
 #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002
 #define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003
+#define PCI_EXP_LNKCAP_SLS_16_0GB 0x00000004
 #define PCI_EXP_LNKCAP_MLW 0x000003f0
 #define PCI_EXP_LNKCAP_ASPMS 0x00000c00
 #define PCI_EXP_LNKCAP_L0SEL 0x00007000
@@ -457,6 +458,7 @@
 #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001
 #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
 #define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003
+#define PCI_EXP_LNKSTA_CLS_16_0GB 0x0004
 #define PCI_EXP_LNKSTA_NLW 0x03f0
 #define PCI_EXP_LNKSTA_NLW_X1 0x0010
 #define PCI_EXP_LNKSTA_NLW_X2 0x0020
@@ -524,15 +526,19 @@
 #define PCI_EXP_RTSTA_PME 0x00010000
 #define PCI_EXP_RTSTA_PENDING 0x00020000
 #define PCI_EXP_DEVCAP2 36
+#define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010
 #define PCI_EXP_DEVCAP2_ARI 0x00000020
 #define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040
+#define PCI_EXP_DEVCAP2_ATOMIC_COMP32 0x00000080
 #define PCI_EXP_DEVCAP2_ATOMIC_COMP64 0x00000100
+#define PCI_EXP_DEVCAP2_ATOMIC_COMP128 0x00000200
 #define PCI_EXP_DEVCAP2_LTR 0x00000800
 #define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000
 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000
 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000
 #define PCI_EXP_DEVCTL2 40
 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f
+#define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010
 #define PCI_EXP_DEVCTL2_ARI 0x0020
 #define PCI_EXP_DEVCTL2_ATOMIC_REQ 0x0040
 #define PCI_EXP_DEVCTL2_ATOMIC_EGRESS_BLOCK 0x0080
@@ -548,6 +554,7 @@
 #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002
 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004
 #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008
+#define PCI_EXP_LNKCAP2_SLS_16_0GB 0x00000010
 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100
 #define PCI_EXP_LNKCTL2 48
 #define PCI_EXP_LNKSTA2 50
@@ -819,19 +826,21 @@
 #define PCI_TPH_CAP_ST_SHIFT 16
 #define PCI_TPH_BASE_SIZEOF 12
 #define PCI_EXP_DPC_CAP 4
-#define PCI_EXP_DPC_IRQ 0x1f
-#define PCI_EXP_DPC_CAP_RP_EXT 0x20
-#define PCI_EXP_DPC_CAP_POISONED_TLP 0x40
-#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80
-#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00
+#define PCI_EXP_DPC_IRQ 0x001F
+#define PCI_EXP_DPC_CAP_RP_EXT 0x0020
+#define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040
+#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080
+#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00
 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000
 #define PCI_EXP_DPC_CTL 6
-#define PCI_EXP_DPC_CTL_EN_NONFATAL 0x02
-#define PCI_EXP_DPC_CTL_INT_EN 0x08
+#define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002
+#define PCI_EXP_DPC_CTL_INT_EN 0x0008
 #define PCI_EXP_DPC_STATUS 8
-#define PCI_EXP_DPC_STATUS_TRIGGER 0x01
-#define PCI_EXP_DPC_STATUS_INTERRUPT 0x08
-#define PCI_EXP_DPC_RP_BUSY 0x10
+#define PCI_EXP_DPC_STATUS_TRIGGER 0x0001
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006
+#define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008
+#define PCI_EXP_DPC_RP_BUSY 0x0010
+#define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060
 #define PCI_EXP_DPC_SOURCE_ID 10
 #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C
 #define PCI_EXP_DPC_RP_PIO_MASK 0x10
diff --git a/libc/kernel/uapi/linux/perf_event.h b/libc/kernel/uapi/linux/perf_event.h
index 97a2e99..dc1e32c 100644
--- a/libc/kernel/uapi/linux/perf_event.h
+++ b/libc/kernel/uapi/linux/perf_event.h
@@ -205,10 +205,14 @@
   __u32 bp_type;
   union {
     __u64 bp_addr;
+    __u64 kprobe_func;
+    __u64 uprobe_path;
     __u64 config1;
   };
   union {
     __u64 bp_len;
+    __u64 kprobe_addr;
+    __u64 probe_offset;
     __u64 config2;
   };
   __u64 branch_sample_type;
@@ -220,6 +224,11 @@
   __u16 sample_max_stack;
   __u16 __reserved_2;
 };
+struct perf_event_query_bpf {
+  __u32 ids_len;
+  __u32 prog_cnt;
+  __u32 ids[0];
+};
 #define perf_flags(attr) (* (& (attr)->read_format + 1))
 #define PERF_EVENT_IOC_ENABLE _IO('$', 0)
 #define PERF_EVENT_IOC_DISABLE _IO('$', 1)
@@ -231,6 +240,8 @@
 #define PERF_EVENT_IOC_ID _IOR('$', 7, __u64 *)
 #define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, __u32)
 #define PERF_EVENT_IOC_PAUSE_OUTPUT _IOW('$', 9, __u32)
+#define PERF_EVENT_IOC_QUERY_BPF _IOWR('$', 10, struct perf_event_query_bpf *)
+#define PERF_EVENT_IOC_MODIFY_ATTRIBUTES _IOW('$', 11, struct perf_event_attr *)
 enum perf_event_ioc_flags {
   PERF_IOC_FLAG_GROUP = 1U << 0,
 };
@@ -276,6 +287,7 @@
 #define PERF_RECORD_MISC_COMM_EXEC (1 << 13)
 #define PERF_RECORD_MISC_SWITCH_OUT (1 << 13)
 #define PERF_RECORD_MISC_EXACT_IP (1 << 14)
+#define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT (1 << 14)
 #define PERF_RECORD_MISC_EXT_RESERVED (1 << 15)
 struct perf_event_header {
   __u32 type;
diff --git a/libc/kernel/uapi/linux/pkt_cls.h b/libc/kernel/uapi/linux/pkt_cls.h
index 4bac8f9..113469c 100644
--- a/libc/kernel/uapi/linux/pkt_cls.h
+++ b/libc/kernel/uapi/linux/pkt_cls.h
@@ -380,6 +380,7 @@
 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
 enum {
   TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
+  TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
 };
 enum {
   TCA_MATCHALL_UNSPEC,
@@ -429,7 +430,8 @@
 #define TCF_EM_VLAN 6
 #define TCF_EM_CANID 7
 #define TCF_EM_IPSET 8
-#define TCF_EM_MAX 8
+#define TCF_EM_IPT 9
+#define TCF_EM_MAX 9
 enum {
   TCF_EM_PROG_TC
 };
diff --git a/libc/kernel/uapi/linux/prctl.h b/libc/kernel/uapi/linux/prctl.h
index 55098f5..ba50b14 100644
--- a/libc/kernel/uapi/linux/prctl.h
+++ b/libc/kernel/uapi/linux/prctl.h
@@ -134,4 +134,12 @@
 #define PR_SVE_GET_VL 51
 #define PR_SVE_VL_LEN_MASK 0xffff
 #define PR_SVE_VL_INHERIT (1 << 17)
+#define PR_GET_SPECULATION_CTRL 52
+#define PR_SET_SPECULATION_CTRL 53
+#define PR_SPEC_STORE_BYPASS 0
+#define PR_SPEC_NOT_AFFECTED 0
+#define PR_SPEC_PRCTL (1UL << 0)
+#define PR_SPEC_ENABLE (1UL << 1)
+#define PR_SPEC_DISABLE (1UL << 2)
+#define PR_SPEC_FORCE_DISABLE (1UL << 3)
 #endif
diff --git a/libc/kernel/uapi/linux/psci.h b/libc/kernel/uapi/linux/psci.h
index 37d811e..658552a 100644
--- a/libc/kernel/uapi/linux/psci.h
+++ b/libc/kernel/uapi/linux/psci.h
@@ -62,6 +62,7 @@
 #define PSCI_VERSION_MAJOR_MASK ~PSCI_VERSION_MINOR_MASK
 #define PSCI_VERSION_MAJOR(ver) (((ver) & PSCI_VERSION_MAJOR_MASK) >> PSCI_VERSION_MAJOR_SHIFT)
 #define PSCI_VERSION_MINOR(ver) ((ver) & PSCI_VERSION_MINOR_MASK)
+#define PSCI_VERSION(maj,min) ((((maj) << PSCI_VERSION_MAJOR_SHIFT) & PSCI_VERSION_MAJOR_MASK) | ((min) & PSCI_VERSION_MINOR_MASK))
 #define PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT 1
 #define PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK (0x1 << PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT)
 #define PSCI_RET_SUCCESS 0
diff --git a/libc/kernel/uapi/linux/psp-sev.h b/libc/kernel/uapi/linux/psp-sev.h
new file mode 100644
index 0000000..5f59330
--- /dev/null
+++ b/libc/kernel/uapi/linux/psp-sev.h
@@ -0,0 +1,88 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __PSP_SEV_USER_H__
+#define __PSP_SEV_USER_H__
+#include <linux/types.h>
+enum {
+  SEV_FACTORY_RESET = 0,
+  SEV_PLATFORM_STATUS,
+  SEV_PEK_GEN,
+  SEV_PEK_CSR,
+  SEV_PDH_GEN,
+  SEV_PDH_CERT_EXPORT,
+  SEV_PEK_CERT_IMPORT,
+  SEV_MAX,
+};
+typedef enum {
+  SEV_RET_SUCCESS = 0,
+  SEV_RET_INVALID_PLATFORM_STATE,
+  SEV_RET_INVALID_GUEST_STATE,
+  SEV_RET_INAVLID_CONFIG,
+  SEV_RET_INVALID_LEN,
+  SEV_RET_ALREADY_OWNED,
+  SEV_RET_INVALID_CERTIFICATE,
+  SEV_RET_POLICY_FAILURE,
+  SEV_RET_INACTIVE,
+  SEV_RET_INVALID_ADDRESS,
+  SEV_RET_BAD_SIGNATURE,
+  SEV_RET_BAD_MEASUREMENT,
+  SEV_RET_ASID_OWNED,
+  SEV_RET_INVALID_ASID,
+  SEV_RET_WBINVD_REQUIRED,
+  SEV_RET_DFFLUSH_REQUIRED,
+  SEV_RET_INVALID_GUEST,
+  SEV_RET_INVALID_COMMAND,
+  SEV_RET_ACTIVE,
+  SEV_RET_HWSEV_RET_PLATFORM,
+  SEV_RET_HWSEV_RET_UNSAFE,
+  SEV_RET_UNSUPPORTED,
+  SEV_RET_MAX,
+} sev_ret_code;
+struct sev_user_data_status {
+  __u8 api_major;
+  __u8 api_minor;
+  __u8 state;
+  __u32 flags;
+  __u8 build;
+  __u32 guest_count;
+} __packed;
+struct sev_user_data_pek_csr {
+  __u64 address;
+  __u32 length;
+} __packed;
+struct sev_user_data_pek_cert_import {
+  __u64 pek_cert_address;
+  __u32 pek_cert_len;
+  __u64 oca_cert_address;
+  __u32 oca_cert_len;
+} __packed;
+struct sev_user_data_pdh_cert_export {
+  __u64 pdh_cert_address;
+  __u32 pdh_cert_len;
+  __u64 cert_chain_address;
+  __u32 cert_chain_len;
+} __packed;
+struct sev_issue_cmd {
+  __u32 cmd;
+  __u64 data;
+  __u32 error;
+} __packed;
+#define SEV_IOC_TYPE 'S'
+#define SEV_ISSUE_CMD _IOWR(SEV_IOC_TYPE, 0x0, struct sev_issue_cmd)
+#endif
diff --git a/libc/kernel/uapi/linux/ptrace.h b/libc/kernel/uapi/linux/ptrace.h
index 7c39b5b..4a68738 100644
--- a/libc/kernel/uapi/linux/ptrace.h
+++ b/libc/kernel/uapi/linux/ptrace.h
@@ -50,6 +50,11 @@
 #define PTRACE_GETSIGMASK 0x420a
 #define PTRACE_SETSIGMASK 0x420b
 #define PTRACE_SECCOMP_GET_FILTER 0x420c
+#define PTRACE_SECCOMP_GET_METADATA 0x420d
+struct seccomp_metadata {
+  __u64 filter_off;
+  __u64 flags;
+};
 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
 #define PTRACE_EVENT_FORK 1
 #define PTRACE_EVENT_VFORK 2
diff --git a/libc/kernel/uapi/linux/qemu_fw_cfg.h b/libc/kernel/uapi/linux/qemu_fw_cfg.h
new file mode 100644
index 0000000..173af1f
--- /dev/null
+++ b/libc/kernel/uapi/linux/qemu_fw_cfg.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _LINUX_FW_CFG_H
+#define _LINUX_FW_CFG_H
+#include <linux/types.h>
+#define FW_CFG_ACPI_DEVICE_ID "QEMU0002"
+#define FW_CFG_SIGNATURE 0x00
+#define FW_CFG_ID 0x01
+#define FW_CFG_UUID 0x02
+#define FW_CFG_RAM_SIZE 0x03
+#define FW_CFG_NOGRAPHIC 0x04
+#define FW_CFG_NB_CPUS 0x05
+#define FW_CFG_MACHINE_ID 0x06
+#define FW_CFG_KERNEL_ADDR 0x07
+#define FW_CFG_KERNEL_SIZE 0x08
+#define FW_CFG_KERNEL_CMDLINE 0x09
+#define FW_CFG_INITRD_ADDR 0x0a
+#define FW_CFG_INITRD_SIZE 0x0b
+#define FW_CFG_BOOT_DEVICE 0x0c
+#define FW_CFG_NUMA 0x0d
+#define FW_CFG_BOOT_MENU 0x0e
+#define FW_CFG_MAX_CPUS 0x0f
+#define FW_CFG_KERNEL_ENTRY 0x10
+#define FW_CFG_KERNEL_DATA 0x11
+#define FW_CFG_INITRD_DATA 0x12
+#define FW_CFG_CMDLINE_ADDR 0x13
+#define FW_CFG_CMDLINE_SIZE 0x14
+#define FW_CFG_CMDLINE_DATA 0x15
+#define FW_CFG_SETUP_ADDR 0x16
+#define FW_CFG_SETUP_SIZE 0x17
+#define FW_CFG_SETUP_DATA 0x18
+#define FW_CFG_FILE_DIR 0x19
+#define FW_CFG_FILE_FIRST 0x20
+#define FW_CFG_FILE_SLOTS_MIN 0x10
+#define FW_CFG_WRITE_CHANNEL 0x4000
+#define FW_CFG_ARCH_LOCAL 0x8000
+#define FW_CFG_ENTRY_MASK (~(FW_CFG_WRITE_CHANNEL | FW_CFG_ARCH_LOCAL))
+#define FW_CFG_INVALID 0xffff
+#define FW_CFG_CTL_SIZE 0x02
+#define FW_CFG_MAX_FILE_PATH 56
+#define FW_CFG_SIG_SIZE 4
+#define FW_CFG_VERSION 0x01
+#define FW_CFG_VERSION_DMA 0x02
+struct fw_cfg_file {
+  __be32 size;
+  __be16 select;
+  __u16 reserved;
+  char name[FW_CFG_MAX_FILE_PATH];
+};
+#define FW_CFG_DMA_CTL_ERROR 0x01
+#define FW_CFG_DMA_CTL_READ 0x02
+#define FW_CFG_DMA_CTL_SKIP 0x04
+#define FW_CFG_DMA_CTL_SELECT 0x08
+#define FW_CFG_DMA_CTL_WRITE 0x10
+#define FW_CFG_DMA_SIGNATURE 0x51454d5520434647ULL
+struct fw_cfg_dma_access {
+  __be32 control;
+  __be32 length;
+  __be64 address;
+};
+#define FW_CFG_VMCOREINFO_FILENAME "etc/vmcoreinfo"
+#define FW_CFG_VMCOREINFO_FORMAT_NONE 0x0
+#define FW_CFG_VMCOREINFO_FORMAT_ELF 0x1
+struct fw_cfg_vmcoreinfo {
+  __le16 host_format;
+  __le16 guest_format;
+  __le32 size;
+  __le64 paddr;
+};
+#endif
diff --git a/libc/kernel/uapi/linux/random.h b/libc/kernel/uapi/linux/random.h
index 6ad4f75..3a5fbfd 100644
--- a/libc/kernel/uapi/linux/random.h
+++ b/libc/kernel/uapi/linux/random.h
@@ -27,6 +27,7 @@
 #define RNDADDENTROPY _IOW('R', 0x03, int[2])
 #define RNDZAPENTCNT _IO('R', 0x04)
 #define RNDCLEARPOOL _IO('R', 0x06)
+#define RNDRESEEDCRNG _IO('R', 0x07)
 struct rand_pool_info {
   int entropy_count;
   int buf_size;
diff --git a/libc/kernel/uapi/linux/rds.h b/libc/kernel/uapi/linux/rds.h
index cfb0a3b..c726f54 100644
--- a/libc/kernel/uapi/linux/rds.h
+++ b/libc/kernel/uapi/linux/rds.h
@@ -45,6 +45,8 @@
 #define RDS_CMSG_MASKED_ATOMIC_FADD 8
 #define RDS_CMSG_MASKED_ATOMIC_CSWP 9
 #define RDS_CMSG_RXPATH_LATENCY 11
+#define RDS_CMSG_ZCOPY_COOKIE 12
+#define RDS_CMSG_ZCOPY_COMPLETION 13
 #define RDS_INFO_FIRST 10000
 #define RDS_INFO_COUNTERS 10000
 #define RDS_INFO_CONNECTIONS 10001
@@ -197,6 +199,11 @@
 #define RDS_RDMA_CANCELED 2
 #define RDS_RDMA_DROPPED 3
 #define RDS_RDMA_OTHER_ERROR 4
+#define RDS_MAX_ZCOOKIES 8
+struct rds_zcopy_cookies {
+  __u32 num;
+  __u32 cookies[RDS_MAX_ZCOOKIES];
+};
 #define RDS_RDMA_READWRITE 0x0001
 #define RDS_RDMA_FENCE 0x0002
 #define RDS_RDMA_INVALIDATE 0x0004
diff --git a/libc/kernel/uapi/linux/rtnetlink.h b/libc/kernel/uapi/linux/rtnetlink.h
index 80ba16e..6fffcd3 100644
--- a/libc/kernel/uapi/linux/rtnetlink.h
+++ b/libc/kernel/uapi/linux/rtnetlink.h
@@ -389,8 +389,10 @@
   int tcm_ifindex;
   __u32 tcm_handle;
   __u32 tcm_parent;
+#define tcm_block_index tcm_parent
   __u32 tcm_info;
 };
+#define TCM_IFINDEX_MAGIC_BLOCK (0xFFFFFFFFU)
 enum {
   TCA_UNSPEC,
   TCA_KIND,
@@ -405,6 +407,8 @@
   TCA_DUMP_INVISIBLE,
   TCA_CHAIN,
   TCA_HW_OFFLOAD,
+  TCA_INGRESS_BLOCK,
+  TCA_EGRESS_BLOCK,
   __TCA_MAX
 };
 #define TCA_MAX (__TCA_MAX - 1)
diff --git a/libc/kernel/uapi/linux/sched.h b/libc/kernel/uapi/linux/sched.h
index 9958fba..20d4956 100644
--- a/libc/kernel/uapi/linux/sched.h
+++ b/libc/kernel/uapi/linux/sched.h
@@ -51,4 +51,6 @@
 #define SCHED_RESET_ON_FORK 0x40000000
 #define SCHED_FLAG_RESET_ON_FORK 0x01
 #define SCHED_FLAG_RECLAIM 0x02
+#define SCHED_FLAG_DL_OVERRUN 0x04
+#define SCHED_FLAG_ALL (SCHED_FLAG_RESET_ON_FORK | SCHED_FLAG_RECLAIM | SCHED_FLAG_DL_OVERRUN)
 #endif
diff --git a/libc/kernel/uapi/linux/sctp.h b/libc/kernel/uapi/linux/sctp.h
index cc714ff..1f7fed1 100644
--- a/libc/kernel/uapi/linux/sctp.h
+++ b/libc/kernel/uapi/linux/sctp.h
@@ -58,6 +58,7 @@
 #define SCTP_RECVRCVINFO 32
 #define SCTP_RECVNXTINFO 33
 #define SCTP_DEFAULT_SNDINFO 34
+#define SCTP_AUTH_DEACTIVATE_KEY 35
 #define SCTP_SOCKOPT_BINDX_ADD 100
 #define SCTP_SOCKOPT_BINDX_REM 101
 #define SCTP_SOCKOPT_PEELOFF 102
@@ -79,6 +80,8 @@
 #define SCTP_SOCKOPT_PEELOFF_FLAGS 122
 #define SCTP_STREAM_SCHEDULER 123
 #define SCTP_STREAM_SCHEDULER_VALUE 124
+#define SCTP_INTERLEAVING_SUPPORTED 125
+#define SCTP_SENDMSG_CONNECT 126
 #define SCTP_PR_SCTP_NONE 0x0000
 #define SCTP_PR_SCTP_TTL 0x0010
 #define SCTP_PR_SCTP_RTX 0x0020
@@ -143,11 +146,19 @@
   __u32 nxt_length;
   sctp_assoc_t nxt_assoc_id;
 };
+struct sctp_prinfo {
+  __u16 pr_policy;
+  __u32 pr_value;
+};
+struct sctp_authinfo {
+  __u16 auth_keynumber;
+};
 enum sctp_sinfo_flags {
   SCTP_UNORDERED = (1 << 0),
   SCTP_ADDR_OVER = (1 << 1),
   SCTP_ABORT = (1 << 2),
   SCTP_SACK_IMMEDIATELY = (1 << 3),
+  SCTP_SENDALL = (1 << 6),
   SCTP_NOTIFICATION = MSG_NOTIFICATION,
   SCTP_EOF = MSG_FIN,
 };
@@ -167,6 +178,14 @@
 #define SCTP_RCVINFO SCTP_RCVINFO
   SCTP_NXTINFO,
 #define SCTP_NXTINFO SCTP_NXTINFO
+  SCTP_PRINFO,
+#define SCTP_PRINFO SCTP_PRINFO
+  SCTP_AUTHINFO,
+#define SCTP_AUTHINFO SCTP_AUTHINFO
+  SCTP_DSTADDRV4,
+#define SCTP_DSTADDRV4 SCTP_DSTADDRV4
+  SCTP_DSTADDRV6,
+#define SCTP_DSTADDRV6 SCTP_DSTADDRV6
 } sctp_cmsg_t;
 struct sctp_assoc_change {
   __u16 sac_type;
@@ -243,6 +262,8 @@
   __u32 pdapi_length;
   __u32 pdapi_indication;
   sctp_assoc_t pdapi_assoc_id;
+  __u32 pdapi_stream;
+  __u32 pdapi_seq;
 };
 enum {
   SCTP_PARTIAL_DELIVERY_ABORTED = 0,
@@ -257,7 +278,10 @@
   sctp_assoc_t auth_assoc_id;
 };
 enum {
-  SCTP_AUTH_NEWKEY = 0,
+  SCTP_AUTH_NEW_KEY,
+#define SCTP_AUTH_NEWKEY SCTP_AUTH_NEW_KEY
+  SCTP_AUTH_FREE_KEY,
+  SCTP_AUTH_NO_AUTH,
 };
 struct sctp_sender_dry_event {
   __u16 sender_dry_type;
diff --git a/libc/kernel/uapi/linux/seccomp.h b/libc/kernel/uapi/linux/seccomp.h
index 1fd53fc..fe63789 100644
--- a/libc/kernel/uapi/linux/seccomp.h
+++ b/libc/kernel/uapi/linux/seccomp.h
@@ -26,8 +26,9 @@
 #define SECCOMP_SET_MODE_STRICT 0
 #define SECCOMP_SET_MODE_FILTER 1
 #define SECCOMP_GET_ACTION_AVAIL 2
-#define SECCOMP_FILTER_FLAG_TSYNC 1
-#define SECCOMP_FILTER_FLAG_LOG 2
+#define SECCOMP_FILTER_FLAG_TSYNC (1UL << 0)
+#define SECCOMP_FILTER_FLAG_LOG (1UL << 1)
+#define SECCOMP_FILTER_FLAG_SPEC_ALLOW (1UL << 2)
 #define SECCOMP_RET_KILL_PROCESS 0x80000000U
 #define SECCOMP_RET_KILL_THREAD 0x00000000U
 #define SECCOMP_RET_KILL SECCOMP_RET_KILL_THREAD
diff --git a/libc/kernel/uapi/linux/sem.h b/libc/kernel/uapi/linux/sem.h
index 91b1941..552be4a 100644
--- a/libc/kernel/uapi/linux/sem.h
+++ b/libc/kernel/uapi/linux/sem.h
@@ -29,6 +29,7 @@
 #define SETALL 17
 #define SEM_STAT 18
 #define SEM_INFO 19
+#define SEM_STAT_ANY 20
 struct __kernel_legacy_semid_ds {
   struct __kernel_legacy_ipc_perm sem_perm;
   __kernel_time_t sem_otime;
diff --git a/libc/kernel/uapi/linux/serial_core.h b/libc/kernel/uapi/linux/serial_core.h
index 68d2dcb..f0f464b 100644
--- a/libc/kernel/uapi/linux/serial_core.h
+++ b/libc/kernel/uapi/linux/serial_core.h
@@ -59,6 +59,7 @@
 #define PORT_21285 37
 #define PORT_SUNZILOG 38
 #define PORT_SUNSAB 39
+#define PORT_NPCM 40
 #define PORT_PCH_8LINE 44
 #define PORT_PCH_2LINE 45
 #define PORT_DZ 46
diff --git a/libc/kernel/uapi/linux/shm.h b/libc/kernel/uapi/linux/shm.h
index a3071e7..a30a089 100644
--- a/libc/kernel/uapi/linux/shm.h
+++ b/libc/kernel/uapi/linux/shm.h
@@ -65,6 +65,7 @@
 #define SHM_UNLOCK 12
 #define SHM_STAT 13
 #define SHM_INFO 14
+#define SHM_STAT_ANY 15
 struct shminfo {
   int shmmax;
   int shmmin;
diff --git a/libc/kernel/uapi/linux/stm.h b/libc/kernel/uapi/linux/stm.h
index 497d674..1c7f7f3 100644
--- a/libc/kernel/uapi/linux/stm.h
+++ b/libc/kernel/uapi/linux/stm.h
@@ -19,6 +19,8 @@
 #ifndef _UAPI_LINUX_STM_H
 #define _UAPI_LINUX_STM_H
 #include <linux/types.h>
+#define STP_MASTER_MAX 0xffff
+#define STP_CHANNEL_MAX 0xffff
 struct stp_policy_id {
   __u32 size;
   __u16 master;
diff --git a/libc/kernel/uapi/linux/switchtec_ioctl.h b/libc/kernel/uapi/linux/switchtec_ioctl.h
index 9337be6..09cf9cd 100644
--- a/libc/kernel/uapi/linux/switchtec_ioctl.h
+++ b/libc/kernel/uapi/linux/switchtec_ioctl.h
@@ -83,7 +83,8 @@
 #define SWITCHTEC_IOCTL_EVENT_FORCE_SPEED 26
 #define SWITCHTEC_IOCTL_EVENT_CREDIT_TIMEOUT 27
 #define SWITCHTEC_IOCTL_EVENT_LINK_STATE 28
-#define SWITCHTEC_IOCTL_MAX_EVENTS 29
+#define SWITCHTEC_IOCTL_EVENT_GFMS 29
+#define SWITCHTEC_IOCTL_MAX_EVENTS 30
 #define SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX - 1
 #define SWITCHTEC_IOCTL_EVENT_IDX_ALL - 2
 #define SWITCHTEC_IOCTL_EVENT_FLAG_CLEAR (1 << 0)
diff --git a/libc/kernel/uapi/linux/sysctl.h b/libc/kernel/uapi/linux/sysctl.h
index 47c39fc..eb6e61f 100644
--- a/libc/kernel/uapi/linux/sysctl.h
+++ b/libc/kernel/uapi/linux/sysctl.h
@@ -656,22 +656,6 @@
   NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5,
 };
 enum {
-  NET_IRDA_DISCOVERY = 1,
-  NET_IRDA_DEVNAME = 2,
-  NET_IRDA_DEBUG = 3,
-  NET_IRDA_FAST_POLL = 4,
-  NET_IRDA_DISCOVERY_SLOTS = 5,
-  NET_IRDA_DISCOVERY_TIMEOUT = 6,
-  NET_IRDA_SLOT_TIMEOUT = 7,
-  NET_IRDA_MAX_BAUD_RATE = 8,
-  NET_IRDA_MIN_TX_TURN_TIME = 9,
-  NET_IRDA_MAX_TX_DATA_SIZE = 10,
-  NET_IRDA_MAX_TX_WINDOW = 11,
-  NET_IRDA_MAX_NOREPLY_TIME = 12,
-  NET_IRDA_WARN_NOREPLY_TIME = 13,
-  NET_IRDA_LAP_KEEPALIVE_TIME = 14,
-};
-enum {
   FS_NRINODE = 1,
   FS_STATINODE = 2,
   FS_MAXINODE = 3,
diff --git a/libc/kernel/uapi/linux/tc_ematch/tc_em_ipt.h b/libc/kernel/uapi/linux/tc_ematch/tc_em_ipt.h
new file mode 100644
index 0000000..8cd06ee
--- /dev/null
+++ b/libc/kernel/uapi/linux/tc_ematch/tc_em_ipt.h
@@ -0,0 +1,33 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __LINUX_TC_EM_IPT_H
+#define __LINUX_TC_EM_IPT_H
+#include <linux/types.h>
+#include <linux/pkt_cls.h>
+enum {
+  TCA_EM_IPT_UNSPEC,
+  TCA_EM_IPT_HOOK,
+  TCA_EM_IPT_MATCH_NAME,
+  TCA_EM_IPT_MATCH_REVISION,
+  TCA_EM_IPT_NFPROTO,
+  TCA_EM_IPT_MATCH_DATA,
+  __TCA_EM_IPT_MAX
+};
+#define TCA_EM_IPT_MAX (__TCA_EM_IPT_MAX - 1)
+#endif
diff --git a/libc/kernel/uapi/linux/tcp.h b/libc/kernel/uapi/linux/tcp.h
index 0bf9559..8b73119 100644
--- a/libc/kernel/uapi/linux/tcp.h
+++ b/libc/kernel/uapi/linux/tcp.h
@@ -186,6 +186,9 @@
   TCP_NLA_MIN_RTT,
   TCP_NLA_RECUR_RETRANS,
   TCP_NLA_DELIVERY_RATE_APP_LMT,
+  TCP_NLA_SNDQ_SIZE,
+  TCP_NLA_CA_STATE,
+  TCP_NLA_SND_SSTHRESH,
 };
 #define TCP_MD5SIG_MAXKEYLEN 80
 #define TCP_MD5SIG_FLAG_PREFIX 1
diff --git a/libc/kernel/uapi/linux/tee.h b/libc/kernel/uapi/linux/tee.h
index 20d0d80..e13c231 100644
--- a/libc/kernel/uapi/linux/tee.h
+++ b/libc/kernel/uapi/linux/tee.h
@@ -27,6 +27,7 @@
 #define TEE_MAX_ARG_SIZE 1024
 #define TEE_GEN_CAP_GP (1 << 0)
 #define TEE_GEN_CAP_PRIVILEGED (1 << 1)
+#define TEE_GEN_CAP_REG_MEM (1 << 2)
 #define TEE_IMPL_ID_OPTEE 1
 #define TEE_OPTEE_CAP_TZ (1 << 0)
 struct tee_ioctl_version_data {
@@ -53,6 +54,8 @@
 #define TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT 6
 #define TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT 7
 #define TEE_IOCTL_PARAM_ATTR_TYPE_MASK 0xff
+#define TEE_IOCTL_PARAM_ATTR_META 0x100
+#define TEE_IOCTL_PARAM_ATTR_MASK (TEE_IOCTL_PARAM_ATTR_TYPE_MASK | TEE_IOCTL_PARAM_ATTR_META)
 #define TEE_IOCTL_LOGIN_PUBLIC 0
 #define TEE_IOCTL_LOGIN_USER 1
 #define TEE_IOCTL_LOGIN_GROUP 2
@@ -109,4 +112,11 @@
   struct tee_ioctl_param params[];
 };
 #define TEE_IOC_SUPPL_SEND _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 7, struct tee_ioctl_buf_data)
+struct tee_ioctl_shm_register_data {
+  __u64 addr;
+  __u64 length;
+  __u32 flags;
+  __s32 id;
+};
+#define TEE_IOC_SHM_REGISTER _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 9, struct tee_ioctl_shm_register_data)
 #endif
diff --git a/libc/kernel/uapi/linux/telephony.h b/libc/kernel/uapi/linux/telephony.h
deleted file mode 100644
index c20eb11..0000000
--- a/libc/kernel/uapi/linux/telephony.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   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 TELEPHONY_H
-#define TELEPHONY_H
-#define TELEPHONY_VERSION 3013
-#define PHONE_VENDOR_IXJ 1
-#define PHONE_VENDOR_QUICKNET PHONE_VENDOR_IXJ
-#define PHONE_VENDOR_VOICETRONIX 2
-#define PHONE_VENDOR_ACULAB 3
-#define PHONE_VENDOR_DIGI 4
-#define PHONE_VENDOR_FRANKLIN 5
-#define QTI_PHONEJACK 100
-#define QTI_LINEJACK 300
-#define QTI_PHONEJACK_LITE 400
-#define QTI_PHONEJACK_PCI 500
-#define QTI_PHONECARD 600
-typedef enum {
-  vendor = 0,
-  device,
-  port,
-  codec,
-  dsp
-} phone_cap;
-struct phone_capability {
-  char desc[80];
-  phone_cap captype;
-  int cap;
-  int handle;
-};
-typedef enum {
-  pots = 0,
-  pstn,
-  handset,
-  speaker
-} phone_ports;
-#define PHONE_CAPABILITIES _IO('q', 0x80)
-#define PHONE_CAPABILITIES_LIST _IOR('q', 0x81, struct phone_capability *)
-#define PHONE_CAPABILITIES_CHECK _IOW('q', 0x82, struct phone_capability *)
-typedef struct {
-  char month[3];
-  char day[3];
-  char hour[3];
-  char min[3];
-  int numlen;
-  char number[11];
-  int namelen;
-  char name[80];
-} PHONE_CID;
-#define PHONE_RING _IO('q', 0x83)
-#define PHONE_HOOKSTATE _IO('q', 0x84)
-#define PHONE_MAXRINGS _IOW('q', 0x85, char)
-#define PHONE_RING_CADENCE _IOW('q', 0x86, short)
-#define OLD_PHONE_RING_START _IO('q', 0x87)
-#define PHONE_RING_START _IOW('q', 0x87, PHONE_CID *)
-#define PHONE_RING_STOP _IO('q', 0x88)
-#define USA_RING_CADENCE 0xC0C0
-#define PHONE_REC_CODEC _IOW('q', 0x89, int)
-#define PHONE_REC_START _IO('q', 0x8A)
-#define PHONE_REC_STOP _IO('q', 0x8B)
-#define PHONE_REC_DEPTH _IOW('q', 0x8C, int)
-#define PHONE_FRAME _IOW('q', 0x8D, int)
-#define PHONE_REC_VOLUME _IOW('q', 0x8E, int)
-#define PHONE_REC_VOLUME_LINEAR _IOW('q', 0xDB, int)
-#define PHONE_REC_LEVEL _IO('q', 0x8F)
-#define PHONE_PLAY_CODEC _IOW('q', 0x90, int)
-#define PHONE_PLAY_START _IO('q', 0x91)
-#define PHONE_PLAY_STOP _IO('q', 0x92)
-#define PHONE_PLAY_DEPTH _IOW('q', 0x93, int)
-#define PHONE_PLAY_VOLUME _IOW('q', 0x94, int)
-#define PHONE_PLAY_VOLUME_LINEAR _IOW('q', 0xDC, int)
-#define PHONE_PLAY_LEVEL _IO('q', 0x95)
-#define PHONE_DTMF_READY _IOR('q', 0x96, int)
-#define PHONE_GET_DTMF _IOR('q', 0x97, int)
-#define PHONE_GET_DTMF_ASCII _IOR('q', 0x98, int)
-#define PHONE_DTMF_OOB _IOW('q', 0x99, int)
-#define PHONE_EXCEPTION _IOR('q', 0x9A, int)
-#define PHONE_PLAY_TONE _IOW('q', 0x9B, char)
-#define PHONE_SET_TONE_ON_TIME _IOW('q', 0x9C, int)
-#define PHONE_SET_TONE_OFF_TIME _IOW('q', 0x9D, int)
-#define PHONE_GET_TONE_ON_TIME _IO('q', 0x9E)
-#define PHONE_GET_TONE_OFF_TIME _IO('q', 0x9F)
-#define PHONE_GET_TONE_STATE _IO('q', 0xA0)
-#define PHONE_BUSY _IO('q', 0xA1)
-#define PHONE_RINGBACK _IO('q', 0xA2)
-#define PHONE_DIALTONE _IO('q', 0xA3)
-#define PHONE_CPT_STOP _IO('q', 0xA4)
-#define PHONE_PSTN_SET_STATE _IOW('q', 0xA4, int)
-#define PHONE_PSTN_GET_STATE _IO('q', 0xA5)
-#define PSTN_ON_HOOK 0
-#define PSTN_RINGING 1
-#define PSTN_OFF_HOOK 2
-#define PSTN_PULSE_DIAL 3
-#define PHONE_WINK_DURATION _IOW('q', 0xA6, int)
-#define PHONE_WINK _IOW('q', 0xAA, int)
-typedef enum {
-  G723_63 = 1,
-  G723_53 = 2,
-  TS85 = 3,
-  TS48 = 4,
-  TS41 = 5,
-  G728 = 6,
-  G729 = 7,
-  ULAW = 8,
-  ALAW = 9,
-  LINEAR16 = 10,
-  LINEAR8 = 11,
-  WSS = 12,
-  G729B = 13
-} phone_codec;
-struct phone_codec_data {
-  phone_codec type;
-  unsigned short buf_min, buf_opt, buf_max;
-};
-#define PHONE_QUERY_CODEC _IOWR('q', 0xA7, struct phone_codec_data *)
-#define PHONE_PSTN_LINETEST _IO('q', 0xA8)
-#define PHONE_VAD _IOW('q', 0xA9, int)
-struct phone_except {
-  unsigned int dtmf_ready : 1;
-  unsigned int hookstate : 1;
-  unsigned int pstn_ring : 1;
-  unsigned int caller_id : 1;
-  unsigned int pstn_wink : 1;
-  unsigned int f0 : 1;
-  unsigned int f1 : 1;
-  unsigned int f2 : 1;
-  unsigned int f3 : 1;
-  unsigned int flash : 1;
-  unsigned int fc0 : 1;
-  unsigned int fc1 : 1;
-  unsigned int fc2 : 1;
-  unsigned int fc3 : 1;
-  unsigned int reserved : 18;
-};
-union telephony_exception {
-  struct phone_except bits;
-  unsigned int bytes;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/time.h b/libc/kernel/uapi/linux/time.h
index 59e3160..b75d2dc 100644
--- a/libc/kernel/uapi/linux/time.h
+++ b/libc/kernel/uapi/linux/time.h
@@ -45,6 +45,10 @@
   struct timeval it_interval;
   struct timeval it_value;
 };
+struct __kernel_old_timeval {
+  __kernel_long_t tv_sec;
+  __kernel_long_t tv_usec;
+};
 #define CLOCK_REALTIME 0
 #define CLOCK_MONOTONIC 1
 #define CLOCK_PROCESS_CPUTIME_ID 2
diff --git a/libc/kernel/uapi/linux/tipc.h b/libc/kernel/uapi/linux/tipc.h
index b8b4965..603c58f 100644
--- a/libc/kernel/uapi/linux/tipc.h
+++ b/libc/kernel/uapi/linux/tipc.h
@@ -20,39 +20,27 @@
 #define _LINUX_TIPC_H_
 #include <linux/types.h>
 #include <linux/sockios.h>
-struct tipc_portid {
+struct tipc_socket_addr {
   __u32 ref;
   __u32 node;
 };
-struct tipc_name {
+struct tipc_service_addr {
   __u32 type;
   __u32 instance;
 };
-struct tipc_name_seq {
+struct tipc_service_range {
   __u32 type;
   __u32 lower;
   __u32 upper;
 };
-#define TIPC_NODE_BITS 12
-#define TIPC_CLUSTER_BITS 12
-#define TIPC_ZONE_BITS 8
-#define TIPC_NODE_OFFSET 0
-#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
-#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
-#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
-#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
-#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
-#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
-#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
-#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
-#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
-#define TIPC_CFG_SRV 0
+#define TIPC_NODE_STATE 0
 #define TIPC_TOP_SRV 1
 #define TIPC_LINK_STATE 2
 #define TIPC_RESERVED_TYPES 64
-#define TIPC_ZONE_SCOPE 1
-#define TIPC_CLUSTER_SCOPE 2
-#define TIPC_NODE_SCOPE 3
+enum tipc_scope {
+  TIPC_CLUSTER_SCOPE = 2,
+  TIPC_NODE_SCOPE = 3
+};
 #define TIPC_MAX_USER_MSG_SIZE 66000U
 #define TIPC_LOW_IMPORTANCE 0
 #define TIPC_MEDIUM_IMPORTANCE 1
@@ -69,7 +57,7 @@
 #define TIPC_SUB_CANCEL 0x04
 #define TIPC_WAIT_FOREVER (~0)
 struct tipc_subscr {
-  struct tipc_name_seq seq;
+  struct tipc_service_range seq;
   __u32 timeout;
   __u32 filter;
   char usr_handle[8];
@@ -81,7 +69,7 @@
   __u32 event;
   __u32 found_lower;
   __u32 found_upper;
-  struct tipc_portid port;
+  struct tipc_socket_addr port;
   struct tipc_subscr s;
 };
 #ifndef AF_TIPC
@@ -93,19 +81,19 @@
 #ifndef SOL_TIPC
 #define SOL_TIPC 271
 #endif
-#define TIPC_ADDR_NAMESEQ 1
 #define TIPC_ADDR_MCAST 1
-#define TIPC_ADDR_NAME 2
-#define TIPC_ADDR_ID 3
+#define TIPC_SERVICE_RANGE 1
+#define TIPC_SERVICE_ADDR 2
+#define TIPC_SOCKET_ADDR 3
 struct sockaddr_tipc {
   unsigned short family;
   unsigned char addrtype;
   signed char scope;
   union {
-    struct tipc_portid id;
-    struct tipc_name_seq nameseq;
+    struct tipc_socket_addr id;
+    struct tipc_service_range nameseq;
     struct {
-      struct tipc_name name;
+      struct tipc_service_addr name;
       __u32 domain;
     } name;
   } addr;
@@ -134,11 +122,32 @@
 #define TIPC_MAX_MEDIA_NAME 16
 #define TIPC_MAX_IF_NAME 16
 #define TIPC_MAX_BEARER_NAME 32
-#define TIPC_MAX_LINK_NAME 60
+#define TIPC_MAX_LINK_NAME 68
 #define SIOCGETLINKNAME SIOCPROTOPRIVATE
 struct tipc_sioc_ln_req {
   __u32 peer;
   __u32 bearer_id;
   char linkname[TIPC_MAX_LINK_NAME];
 };
+#define TIPC_CFG_SRV 0
+#define TIPC_ZONE_SCOPE 1
+#define TIPC_ADDR_NAMESEQ 1
+#define TIPC_ADDR_NAME 2
+#define TIPC_ADDR_ID 3
+#define TIPC_NODE_BITS 12
+#define TIPC_CLUSTER_BITS 12
+#define TIPC_ZONE_BITS 8
+#define TIPC_NODE_OFFSET 0
+#define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS
+#define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
+#define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1)
+#define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1)
+#define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1)
+#define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
+#define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
+#define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
+#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
+#define tipc_portid tipc_socket_addr
+#define tipc_name tipc_service_addr
+#define tipc_name_seq tipc_service_range
 #endif
diff --git a/libc/kernel/uapi/linux/tipc_netlink.h b/libc/kernel/uapi/linux/tipc_netlink.h
index 5a49b24..ce77441 100644
--- a/libc/kernel/uapi/linux/tipc_netlink.h
+++ b/libc/kernel/uapi/linux/tipc_netlink.h
@@ -85,6 +85,13 @@
   TIPC_NLA_SOCK_REF,
   TIPC_NLA_SOCK_CON,
   TIPC_NLA_SOCK_HAS_PUBL,
+  TIPC_NLA_SOCK_STAT,
+  TIPC_NLA_SOCK_TYPE,
+  TIPC_NLA_SOCK_INO,
+  TIPC_NLA_SOCK_UID,
+  TIPC_NLA_SOCK_TIPC_STATE,
+  TIPC_NLA_SOCK_COOKIE,
+  TIPC_NLA_SOCK_PAD,
   __TIPC_NLA_SOCK_MAX,
   TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
 };
@@ -121,6 +128,8 @@
   TIPC_NLA_NET_UNSPEC,
   TIPC_NLA_NET_ID,
   TIPC_NLA_NET_ADDR,
+  TIPC_NLA_NET_NODEID,
+  TIPC_NLA_NET_NODEID_W1,
   __TIPC_NLA_NET_MAX,
   TIPC_NLA_NET_MAX = __TIPC_NLA_NET_MAX - 1
 };
@@ -178,6 +187,15 @@
   TIPC_NLA_CON_MAX = __TIPC_NLA_CON_MAX - 1
 };
 enum {
+  TIPC_NLA_SOCK_STAT_RCVQ,
+  TIPC_NLA_SOCK_STAT_SENDQ,
+  TIPC_NLA_SOCK_STAT_LINK_CONG,
+  TIPC_NLA_SOCK_STAT_CONN_CONG,
+  TIPC_NLA_SOCK_STAT_DROP,
+  __TIPC_NLA_SOCK_STAT_MAX,
+  TIPC_NLA_SOCK_STAT_MAX = __TIPC_NLA_SOCK_STAT_MAX - 1
+};
+enum {
   TIPC_NLA_PROP_UNSPEC,
   TIPC_NLA_PROP_PRIO,
   TIPC_NLA_PROP_TOL,
diff --git a/libc/kernel/uapi/linux/tipc_sockets_diag.h b/libc/kernel/uapi/linux/tipc_sockets_diag.h
new file mode 100644
index 0000000..7d7d016
--- /dev/null
+++ b/libc/kernel/uapi/linux/tipc_sockets_diag.h
@@ -0,0 +1,29 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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__TIPC_SOCKETS_DIAG_H__
+#define _UAPI__TIPC_SOCKETS_DIAG_H__
+#include <linux/types.h>
+#include <linux/sock_diag.h>
+struct tipc_sock_diag_req {
+  __u8 sdiag_family;
+  __u8 sdiag_protocol;
+  __u16 pad;
+  __u32 tidiag_states;
+};
+#endif
diff --git a/libc/kernel/uapi/linux/tls.h b/libc/kernel/uapi/linux/tls.h
index 925cf80..b6910af 100644
--- a/libc/kernel/uapi/linux/tls.h
+++ b/libc/kernel/uapi/linux/tls.h
@@ -20,6 +20,7 @@
 #define _UAPI_LINUX_TLS_H
 #include <linux/types.h>
 #define TLS_TX 1
+#define TLS_RX 2
 #define TLS_VERSION_MINOR(ver) ((ver) & 0xFF)
 #define TLS_VERSION_MAJOR(ver) (((ver) >> 8) & 0xFF)
 #define TLS_VERSION_NUMBER(id) ((((id ##_VERSION_MAJOR) & 0xFF) << 8) | ((id ##_VERSION_MINOR) & 0xFF))
@@ -33,6 +34,7 @@
 #define TLS_CIPHER_AES_GCM_128_TAG_SIZE 16
 #define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE 8
 #define TLS_SET_RECORD_TYPE 1
+#define TLS_GET_RECORD_TYPE 2
 struct tls_crypto_info {
   __u16 version;
   __u16 cipher_type;
diff --git a/libc/kernel/uapi/linux/types.h b/libc/kernel/uapi/linux/types.h
index 1238a74..e111573 100644
--- a/libc/kernel/uapi/linux/types.h
+++ b/libc/kernel/uapi/linux/types.h
@@ -34,5 +34,10 @@
 #define __aligned_u64 __u64 __attribute__((aligned(8)))
 #define __aligned_be64 __be64 __attribute__((aligned(8)))
 #define __aligned_le64 __le64 __attribute__((aligned(8)))
+#ifdef __CHECK_POLL
+typedef unsigned __bitwise __poll_t;
+#else
+typedef unsigned __poll_t;
+#endif
 #endif
 #endif
diff --git a/libc/kernel/uapi/linux/usb/audio.h b/libc/kernel/uapi/linux/usb/audio.h
index 121c859..87b8bd5 100644
--- a/libc/kernel/uapi/linux/usb/audio.h
+++ b/libc/kernel/uapi/linux/usb/audio.h
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #define UAC_VERSION_1 0x00
 #define UAC_VERSION_2 0x20
+#define UAC_VERSION_3 0x30
 #define USB_SUBCLASS_AUDIOCONTROL 0x01
 #define USB_SUBCLASS_AUDIOSTREAMING 0x02
 #define USB_SUBCLASS_MIDISTREAMING 0x03
diff --git a/libc/kernel/uapi/linux/usb/ch9.h b/libc/kernel/uapi/linux/usb/ch9.h
index a7cf43a..89d772a 100644
--- a/libc/kernel/uapi/linux/usb/ch9.h
+++ b/libc/kernel/uapi/linux/usb/ch9.h
@@ -508,7 +508,7 @@
   __u8 bDevCapabilityType;
 } __attribute__((packed));
 #define USB_DT_USB_PTM_ID_SIZE 3
-#define USB_DT_USB_SSP_CAP_SIZE(ssac) (16 + ssac * 4)
+#define USB_DT_USB_SSP_CAP_SIZE(ssac) (12 + (ssac + 1) * 4)
 struct usb_wireless_ep_comp_descriptor {
   __u8 bLength;
   __u8 bDescriptorType;
diff --git a/libc/kernel/uapi/linux/uuid.h b/libc/kernel/uapi/linux/uuid.h
index 808578f..d0f82c1 100644
--- a/libc/kernel/uapi/linux/uuid.h
+++ b/libc/kernel/uapi/linux/uuid.h
@@ -19,7 +19,6 @@
 #ifndef _UAPI_LINUX_UUID_H_
 #define _UAPI_LINUX_UUID_H_
 #include <linux/types.h>
-#include <linux/string.h>
 typedef struct {
   __u8 b[16];
 } guid_t;
diff --git a/libc/kernel/uapi/linux/uvcvideo.h b/libc/kernel/uapi/linux/uvcvideo.h
index 5d832d4..7ae7aad 100644
--- a/libc/kernel/uapi/linux/uvcvideo.h
+++ b/libc/kernel/uapi/linux/uvcvideo.h
@@ -61,4 +61,11 @@
 };
 #define UVCIOC_CTRL_MAP _IOWR('u', 0x20, struct uvc_xu_control_mapping)
 #define UVCIOC_CTRL_QUERY _IOWR('u', 0x21, struct uvc_xu_control_query)
+struct uvc_meta_buf {
+  __u64 ns;
+  __u16 sof;
+  __u8 length;
+  __u8 flags;
+  __u8 buf[];
+} __packed;
 #endif
diff --git a/libc/kernel/uapi/linux/v4l2-controls.h b/libc/kernel/uapi/linux/v4l2-controls.h
index 302da8f..37e447e 100644
--- a/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/libc/kernel/uapi/linux/v4l2-controls.h
@@ -490,6 +490,95 @@
 #define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE + 509)
 #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE + 510)
 #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE + 511)
+#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
+#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
+#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
+#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
+#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
+enum v4l2_mpeg_video_hevc_hier_coding_type {
+  V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
+  V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
+};
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
+#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
+enum v4l2_mpeg_video_hevc_profile {
+  V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
+  V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
+  V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
+};
+#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
+enum v4l2_mpeg_video_hevc_level {
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
+  V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
+};
+#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
+#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
+enum v4l2_mpeg_video_hevc_tier {
+  V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
+  V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
+};
+#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
+enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
+  V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
+  V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
+  V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
+};
+#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
+#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
+enum v4l2_cid_mpeg_video_hevc_refresh_type {
+  V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
+  V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
+  V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
+};
+#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
+#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
+#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
+#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
+#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
+#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
+#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
+#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
+#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
+#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
+#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
+#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
+enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
+  V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
+  V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
+  V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
+  V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
+};
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
+#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
+#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
+#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
 #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE + 0)
 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
diff --git a/libc/kernel/uapi/linux/vbox_err.h b/libc/kernel/uapi/linux/vbox_err.h
new file mode 100644
index 0000000..dec3574
--- /dev/null
+++ b/libc/kernel/uapi/linux/vbox_err.h
@@ -0,0 +1,157 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VBOX_ERR_H__
+#define __UAPI_VBOX_ERR_H__
+#define VINF_SUCCESS 0
+#define VERR_GENERAL_FAILURE (- 1)
+#define VERR_INVALID_PARAMETER (- 2)
+#define VERR_INVALID_MAGIC (- 3)
+#define VERR_INVALID_HANDLE (- 4)
+#define VERR_LOCK_FAILED (- 5)
+#define VERR_INVALID_POINTER (- 6)
+#define VERR_IDT_FAILED (- 7)
+#define VERR_NO_MEMORY (- 8)
+#define VERR_ALREADY_LOADED (- 9)
+#define VERR_PERMISSION_DENIED (- 10)
+#define VERR_VERSION_MISMATCH (- 11)
+#define VERR_NOT_IMPLEMENTED (- 12)
+#define VERR_INVALID_FLAGS (- 13)
+#define VERR_NOT_EQUAL (- 18)
+#define VERR_NOT_SYMLINK (- 19)
+#define VERR_NO_TMP_MEMORY (- 20)
+#define VERR_INVALID_FMODE (- 21)
+#define VERR_WRONG_ORDER (- 22)
+#define VERR_NO_TLS_FOR_SELF (- 23)
+#define VERR_FAILED_TO_SET_SELF_TLS (- 24)
+#define VERR_NO_CONT_MEMORY (- 26)
+#define VERR_NO_PAGE_MEMORY (- 27)
+#define VERR_THREAD_IS_DEAD (- 29)
+#define VERR_THREAD_NOT_WAITABLE (- 30)
+#define VERR_PAGE_TABLE_NOT_PRESENT (- 31)
+#define VERR_INVALID_CONTEXT (- 32)
+#define VERR_TIMER_BUSY (- 33)
+#define VERR_ADDRESS_CONFLICT (- 34)
+#define VERR_UNRESOLVED_ERROR (- 35)
+#define VERR_INVALID_FUNCTION (- 36)
+#define VERR_NOT_SUPPORTED (- 37)
+#define VERR_ACCESS_DENIED (- 38)
+#define VERR_INTERRUPTED (- 39)
+#define VERR_TIMEOUT (- 40)
+#define VERR_BUFFER_OVERFLOW (- 41)
+#define VERR_TOO_MUCH_DATA (- 42)
+#define VERR_MAX_THRDS_REACHED (- 43)
+#define VERR_MAX_PROCS_REACHED (- 44)
+#define VERR_SIGNAL_REFUSED (- 45)
+#define VERR_SIGNAL_PENDING (- 46)
+#define VERR_SIGNAL_INVALID (- 47)
+#define VERR_STATE_CHANGED (- 48)
+#define VERR_INVALID_UUID_FORMAT (- 49)
+#define VERR_PROCESS_NOT_FOUND (- 50)
+#define VERR_PROCESS_RUNNING (- 51)
+#define VERR_TRY_AGAIN (- 52)
+#define VERR_PARSE_ERROR (- 53)
+#define VERR_OUT_OF_RANGE (- 54)
+#define VERR_NUMBER_TOO_BIG (- 55)
+#define VERR_NO_DIGITS (- 56)
+#define VERR_NEGATIVE_UNSIGNED (- 57)
+#define VERR_NO_TRANSLATION (- 58)
+#define VERR_NOT_FOUND (- 78)
+#define VERR_INVALID_STATE (- 79)
+#define VERR_OUT_OF_RESOURCES (- 80)
+#define VERR_FILE_NOT_FOUND (- 102)
+#define VERR_PATH_NOT_FOUND (- 103)
+#define VERR_INVALID_NAME (- 104)
+#define VERR_ALREADY_EXISTS (- 105)
+#define VERR_TOO_MANY_OPEN_FILES (- 106)
+#define VERR_SEEK (- 107)
+#define VERR_NEGATIVE_SEEK (- 108)
+#define VERR_SEEK_ON_DEVICE (- 109)
+#define VERR_EOF (- 110)
+#define VERR_READ_ERROR (- 111)
+#define VERR_WRITE_ERROR (- 112)
+#define VERR_WRITE_PROTECT (- 113)
+#define VERR_SHARING_VIOLATION (- 114)
+#define VERR_FILE_LOCK_FAILED (- 115)
+#define VERR_FILE_LOCK_VIOLATION (- 116)
+#define VERR_CANT_CREATE (- 117)
+#define VERR_CANT_DELETE_DIRECTORY (- 118)
+#define VERR_NOT_SAME_DEVICE (- 119)
+#define VERR_FILENAME_TOO_LONG (- 120)
+#define VERR_MEDIA_NOT_PRESENT (- 121)
+#define VERR_MEDIA_NOT_RECOGNIZED (- 122)
+#define VERR_FILE_NOT_LOCKED (- 123)
+#define VERR_FILE_LOCK_LOST (- 124)
+#define VERR_DIR_NOT_EMPTY (- 125)
+#define VERR_NOT_A_DIRECTORY (- 126)
+#define VERR_IS_A_DIRECTORY (- 127)
+#define VERR_FILE_TOO_BIG (- 128)
+#define VERR_NET_IO_ERROR (- 400)
+#define VERR_NET_OUT_OF_RESOURCES (- 401)
+#define VERR_NET_HOST_NOT_FOUND (- 402)
+#define VERR_NET_PATH_NOT_FOUND (- 403)
+#define VERR_NET_PRINT_ERROR (- 404)
+#define VERR_NET_NO_NETWORK (- 405)
+#define VERR_NET_NOT_UNIQUE_NAME (- 406)
+#define VERR_NET_IN_PROGRESS (- 436)
+#define VERR_NET_ALREADY_IN_PROGRESS (- 437)
+#define VERR_NET_NOT_SOCKET (- 438)
+#define VERR_NET_DEST_ADDRESS_REQUIRED (- 439)
+#define VERR_NET_MSG_SIZE (- 440)
+#define VERR_NET_PROTOCOL_TYPE (- 441)
+#define VERR_NET_PROTOCOL_NOT_AVAILABLE (- 442)
+#define VERR_NET_PROTOCOL_NOT_SUPPORTED (- 443)
+#define VERR_NET_SOCKET_TYPE_NOT_SUPPORTED (- 444)
+#define VERR_NET_OPERATION_NOT_SUPPORTED (- 445)
+#define VERR_NET_PROTOCOL_FAMILY_NOT_SUPPORTED (- 446)
+#define VERR_NET_ADDRESS_FAMILY_NOT_SUPPORTED (- 447)
+#define VERR_NET_ADDRESS_IN_USE (- 448)
+#define VERR_NET_ADDRESS_NOT_AVAILABLE (- 449)
+#define VERR_NET_DOWN (- 450)
+#define VERR_NET_UNREACHABLE (- 451)
+#define VERR_NET_CONNECTION_RESET (- 452)
+#define VERR_NET_CONNECTION_ABORTED (- 453)
+#define VERR_NET_CONNECTION_RESET_BY_PEER (- 454)
+#define VERR_NET_NO_BUFFER_SPACE (- 455)
+#define VERR_NET_ALREADY_CONNECTED (- 456)
+#define VERR_NET_NOT_CONNECTED (- 457)
+#define VERR_NET_SHUTDOWN (- 458)
+#define VERR_NET_TOO_MANY_REFERENCES (- 459)
+#define VERR_NET_CONNECTION_TIMED_OUT (- 460)
+#define VERR_NET_CONNECTION_REFUSED (- 461)
+#define VERR_NET_HOST_DOWN (- 464)
+#define VERR_NET_HOST_UNREACHABLE (- 465)
+#define VERR_NET_PROTOCOL_ERROR (- 466)
+#define VERR_NET_INCOMPLETE_TX_PACKET (- 467)
+#define VERR_RESOURCE_BUSY (- 138)
+#define VERR_DISK_FULL (- 152)
+#define VERR_TOO_MANY_SYMLINKS (- 156)
+#define VERR_NO_MORE_FILES (- 201)
+#define VERR_INTERNAL_ERROR (- 225)
+#define VERR_INTERNAL_ERROR_2 (- 226)
+#define VERR_INTERNAL_ERROR_3 (- 227)
+#define VERR_INTERNAL_ERROR_4 (- 228)
+#define VERR_DEV_IO_ERROR (- 250)
+#define VERR_IO_BAD_LENGTH (- 255)
+#define VERR_BROKEN_PIPE (- 301)
+#define VERR_NO_DATA (- 304)
+#define VERR_SEM_DESTROYED (- 363)
+#define VERR_DEADLOCK (- 365)
+#define VERR_BAD_EXE_FORMAT (- 608)
+#define VINF_HGCM_ASYNC_EXECUTE (2903)
+#endif
diff --git a/libc/kernel/uapi/linux/vbox_vmmdev_types.h b/libc/kernel/uapi/linux/vbox_vmmdev_types.h
new file mode 100644
index 0000000..46b3486
--- /dev/null
+++ b/libc/kernel/uapi/linux/vbox_vmmdev_types.h
@@ -0,0 +1,167 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VBOX_VMMDEV_TYPES_H__
+#define __UAPI_VBOX_VMMDEV_TYPES_H__
+#include <asm/bitsperlong.h>
+#include <linux/types.h>
+#define VMMDEV_ASSERT_SIZE(type,size) typedef char type ##_asrt_size[1 - 2 * ! ! (sizeof(struct type) != (size))]
+enum vmmdev_request_type {
+  VMMDEVREQ_INVALID_REQUEST = 0,
+  VMMDEVREQ_GET_MOUSE_STATUS = 1,
+  VMMDEVREQ_SET_MOUSE_STATUS = 2,
+  VMMDEVREQ_SET_POINTER_SHAPE = 3,
+  VMMDEVREQ_GET_HOST_VERSION = 4,
+  VMMDEVREQ_IDLE = 5,
+  VMMDEVREQ_GET_HOST_TIME = 10,
+  VMMDEVREQ_GET_HYPERVISOR_INFO = 20,
+  VMMDEVREQ_SET_HYPERVISOR_INFO = 21,
+  VMMDEVREQ_REGISTER_PATCH_MEMORY = 22,
+  VMMDEVREQ_DEREGISTER_PATCH_MEMORY = 23,
+  VMMDEVREQ_SET_POWER_STATUS = 30,
+  VMMDEVREQ_ACKNOWLEDGE_EVENTS = 41,
+  VMMDEVREQ_CTL_GUEST_FILTER_MASK = 42,
+  VMMDEVREQ_REPORT_GUEST_INFO = 50,
+  VMMDEVREQ_REPORT_GUEST_INFO2 = 58,
+  VMMDEVREQ_REPORT_GUEST_STATUS = 59,
+  VMMDEVREQ_REPORT_GUEST_USER_STATE = 74,
+  VMMDEVREQ_GET_DISPLAY_CHANGE_REQ = 51,
+  VMMDEVREQ_VIDEMODE_SUPPORTED = 52,
+  VMMDEVREQ_GET_HEIGHT_REDUCTION = 53,
+  VMMDEVREQ_GET_DISPLAY_CHANGE_REQ2 = 54,
+  VMMDEVREQ_REPORT_GUEST_CAPABILITIES = 55,
+  VMMDEVREQ_SET_GUEST_CAPABILITIES = 56,
+  VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57,
+  VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80,
+  VMMDEVREQ_HGCM_CONNECT = 60,
+  VMMDEVREQ_HGCM_DISCONNECT = 61,
+  VMMDEVREQ_HGCM_CALL32 = 62,
+  VMMDEVREQ_HGCM_CALL64 = 63,
+  VMMDEVREQ_HGCM_CANCEL = 64,
+  VMMDEVREQ_HGCM_CANCEL2 = 65,
+  VMMDEVREQ_VIDEO_ACCEL_ENABLE = 70,
+  VMMDEVREQ_VIDEO_ACCEL_FLUSH = 71,
+  VMMDEVREQ_VIDEO_SET_VISIBLE_REGION = 72,
+  VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ = 73,
+  VMMDEVREQ_QUERY_CREDENTIALS = 100,
+  VMMDEVREQ_REPORT_CREDENTIALS_JUDGEMENT = 101,
+  VMMDEVREQ_REPORT_GUEST_STATS = 110,
+  VMMDEVREQ_GET_MEMBALLOON_CHANGE_REQ = 111,
+  VMMDEVREQ_GET_STATISTICS_CHANGE_REQ = 112,
+  VMMDEVREQ_CHANGE_MEMBALLOON = 113,
+  VMMDEVREQ_GET_VRDPCHANGE_REQ = 150,
+  VMMDEVREQ_LOG_STRING = 200,
+  VMMDEVREQ_GET_CPU_HOTPLUG_REQ = 210,
+  VMMDEVREQ_SET_CPU_HOTPLUG_STATUS = 211,
+  VMMDEVREQ_REGISTER_SHARED_MODULE = 212,
+  VMMDEVREQ_UNREGISTER_SHARED_MODULE = 213,
+  VMMDEVREQ_CHECK_SHARED_MODULES = 214,
+  VMMDEVREQ_GET_PAGE_SHARING_STATUS = 215,
+  VMMDEVREQ_DEBUG_IS_PAGE_SHARED = 216,
+  VMMDEVREQ_GET_SESSION_ID = 217,
+  VMMDEVREQ_WRITE_COREDUMP = 218,
+  VMMDEVREQ_GUEST_HEARTBEAT = 219,
+  VMMDEVREQ_HEARTBEAT_CONFIGURE = 220,
+  VMMDEVREQ_SIZEHACK = 0x7fffffff
+};
+#if __BITS_PER_LONG == 64
+#define VMMDEVREQ_HGCM_CALL VMMDEVREQ_HGCM_CALL64
+#else
+#define VMMDEVREQ_HGCM_CALL VMMDEVREQ_HGCM_CALL32
+#endif
+enum vmmdev_hgcm_service_location_type {
+  VMMDEV_HGCM_LOC_INVALID = 0,
+  VMMDEV_HGCM_LOC_LOCALHOST = 1,
+  VMMDEV_HGCM_LOC_LOCALHOST_EXISTING = 2,
+  VMMDEV_HGCM_LOC_SIZEHACK = 0x7fffffff
+};
+struct vmmdev_hgcm_service_location_localhost {
+  char service_name[128];
+};
+struct vmmdev_hgcm_service_location {
+  enum vmmdev_hgcm_service_location_type type;
+  union {
+    struct vmmdev_hgcm_service_location_localhost localhost;
+  } u;
+};
+enum vmmdev_hgcm_function_parameter_type {
+  VMMDEV_HGCM_PARM_TYPE_INVALID = 0,
+  VMMDEV_HGCM_PARM_TYPE_32BIT = 1,
+  VMMDEV_HGCM_PARM_TYPE_64BIT = 2,
+  VMMDEV_HGCM_PARM_TYPE_PHYSADDR = 3,
+  VMMDEV_HGCM_PARM_TYPE_LINADDR = 4,
+  VMMDEV_HGCM_PARM_TYPE_LINADDR_IN = 5,
+  VMMDEV_HGCM_PARM_TYPE_LINADDR_OUT = 6,
+  VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL = 7,
+  VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL_IN = 8,
+  VMMDEV_HGCM_PARM_TYPE_LINADDR_KERNEL_OUT = 9,
+  VMMDEV_HGCM_PARM_TYPE_PAGELIST = 10,
+  VMMDEV_HGCM_PARM_TYPE_SIZEHACK = 0x7fffffff
+};
+struct vmmdev_hgcm_function_parameter32 {
+  enum vmmdev_hgcm_function_parameter_type type;
+  union {
+    __u32 value32;
+    __u64 value64;
+    struct {
+      __u32 size;
+      union {
+        __u32 phys_addr;
+        __u32 linear_addr;
+      } u;
+    } pointer;
+    struct {
+      __u32 size;
+      __u32 offset;
+    } page_list;
+  } u;
+} __packed;
+struct vmmdev_hgcm_function_parameter64 {
+  enum vmmdev_hgcm_function_parameter_type type;
+  union {
+    __u32 value32;
+    __u64 value64;
+    struct {
+      __u32 size;
+      union {
+        __u64 phys_addr;
+        __u64 linear_addr;
+      } u;
+    } __packed pointer;
+    struct {
+      __u32 size;
+      __u32 offset;
+    } page_list;
+  } __packed u;
+} __packed;
+#if __BITS_PER_LONG == 64
+#define vmmdev_hgcm_function_parameter vmmdev_hgcm_function_parameter64
+#else
+#define vmmdev_hgcm_function_parameter vmmdev_hgcm_function_parameter32
+#endif
+#define VMMDEV_HGCM_F_PARM_DIRECTION_NONE 0x00000000U
+#define VMMDEV_HGCM_F_PARM_DIRECTION_TO_HOST 0x00000001U
+#define VMMDEV_HGCM_F_PARM_DIRECTION_FROM_HOST 0x00000002U
+#define VMMDEV_HGCM_F_PARM_DIRECTION_BOTH 0x00000003U
+struct vmmdev_hgcm_pagelist {
+  __u32 flags;
+  __u16 offset_first_page;
+  __u16 page_count;
+  __u64 pages[1];
+};
+#endif
diff --git a/libc/kernel/uapi/linux/vboxguest.h b/libc/kernel/uapi/linux/vboxguest.h
new file mode 100644
index 0000000..2eb80ef
--- /dev/null
+++ b/libc/kernel/uapi/linux/vboxguest.h
@@ -0,0 +1,161 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VBOXGUEST_H__
+#define __UAPI_VBOXGUEST_H__
+#include <asm/bitsperlong.h>
+#include <linux/ioctl.h>
+#include <linux/vbox_err.h>
+#include <linux/vbox_vmmdev_types.h>
+#define VBG_IOCTL_HDR_VERSION 0x10001
+#define VBG_IOCTL_HDR_TYPE_DEFAULT 0
+struct vbg_ioctl_hdr {
+  __u32 size_in;
+  __u32 version;
+  __u32 type;
+  __s32 rc;
+  __u32 size_out;
+  __u32 reserved;
+};
+#define VBG_IOC_VERSION 0x00010000u
+struct vbg_ioctl_driver_version_info {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      __u32 req_version;
+      __u32 min_version;
+      __u32 reserved1;
+      __u32 reserved2;
+    } in;
+    struct {
+      __u32 session_version;
+      __u32 driver_version;
+      __u32 driver_revision;
+      __u32 reserved1;
+      __u32 reserved2;
+    } out;
+  } u;
+};
+#define VBG_IOCTL_DRIVER_VERSION_INFO _IOWR('V', 0, struct vbg_ioctl_driver_version_info)
+#define VBG_IOCTL_VMMDEV_REQUEST(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 2, s)
+#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
+struct vbg_ioctl_hgcm_connect {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      struct vmmdev_hgcm_service_location loc;
+    } in;
+    struct {
+      __u32 client_id;
+    } out;
+  } u;
+};
+#define VBG_IOCTL_HGCM_CONNECT _IOWR('V', 4, struct vbg_ioctl_hgcm_connect)
+struct vbg_ioctl_hgcm_disconnect {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      __u32 client_id;
+    } in;
+  } u;
+};
+#define VBG_IOCTL_HGCM_DISCONNECT _IOWR('V', 5, struct vbg_ioctl_hgcm_disconnect)
+struct vbg_ioctl_hgcm_call {
+  struct vbg_ioctl_hdr hdr;
+  __u32 client_id;
+  __u32 function;
+  __u32 timeout_ms;
+  __u8 interruptible;
+  __u8 reserved;
+  __u16 parm_count;
+};
+#define VBG_IOCTL_HGCM_CALL_32(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 6, s)
+#define VBG_IOCTL_HGCM_CALL_64(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 7, s)
+#if __BITS_PER_LONG == 64
+#define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_64(s)
+#else
+#define VBG_IOCTL_HGCM_CALL(s) VBG_IOCTL_HGCM_CALL_32(s)
+#endif
+struct vbg_ioctl_log {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      char msg[1];
+    } in;
+  } u;
+};
+#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
+struct vbg_ioctl_wait_for_events {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      __u32 timeout_ms;
+      __u32 events;
+    } in;
+    struct {
+      __u32 events;
+    } out;
+  } u;
+};
+#define VBG_IOCTL_WAIT_FOR_EVENTS _IOWR('V', 10, struct vbg_ioctl_wait_for_events)
+#define VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS _IOWR('V', 11, struct vbg_ioctl_hdr)
+struct vbg_ioctl_change_filter {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      __u32 or_mask;
+      __u32 not_mask;
+    } in;
+  } u;
+};
+#define VBG_IOCTL_CHANGE_FILTER_MASK _IOWR('V', 12, struct vbg_ioctl_change_filter)
+struct vbg_ioctl_set_guest_caps {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      __u32 or_mask;
+      __u32 not_mask;
+    } in;
+    struct {
+      __u32 session_caps;
+      __u32 global_caps;
+    } out;
+  } u;
+};
+#define VBG_IOCTL_CHANGE_GUEST_CAPABILITIES _IOWR('V', 14, struct vbg_ioctl_set_guest_caps)
+struct vbg_ioctl_check_balloon {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      __u32 balloon_chunks;
+      __u8 handle_in_r3;
+      __u8 padding[3];
+    } out;
+  } u;
+};
+#define VBG_IOCTL_CHECK_BALLOON _IOWR('V', 17, struct vbg_ioctl_check_balloon)
+struct vbg_ioctl_write_coredump {
+  struct vbg_ioctl_hdr hdr;
+  union {
+    struct {
+      __u32 flags;
+    } in;
+  } u;
+};
+#define VBG_IOCTL_WRITE_CORE_DUMP _IOWR('V', 19, struct vbg_ioctl_write_coredump)
+#endif
diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h
index 70b6963..61f0c3d 100644
--- a/libc/kernel/uapi/linux/version.h
+++ b/libc/kernel/uapi/linux/version.h
@@ -16,5 +16,5 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#define LINUX_VERSION_CODE 265984
+#define LINUX_VERSION_CODE 266499
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
diff --git a/libc/kernel/uapi/linux/vfio.h b/libc/kernel/uapi/linux/vfio.h
index 4e3fdb7..8b397f4 100644
--- a/libc/kernel/uapi/linux/vfio.h
+++ b/libc/kernel/uapi/linux/vfio.h
@@ -100,6 +100,7 @@
 #define VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION (1)
 #define VFIO_REGION_SUBTYPE_INTEL_IGD_HOST_CFG (2)
 #define VFIO_REGION_SUBTYPE_INTEL_IGD_LPC_CFG (3)
+#define VFIO_REGION_INFO_CAP_MSIX_MAPPABLE 3
 struct vfio_irq_info {
   __u32 argsz;
   __u32 flags;
@@ -177,6 +178,43 @@
   __s32 group_fds[];
 };
 #define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13)
+struct vfio_device_gfx_plane_info {
+  __u32 argsz;
+  __u32 flags;
+#define VFIO_GFX_PLANE_TYPE_PROBE (1 << 0)
+#define VFIO_GFX_PLANE_TYPE_DMABUF (1 << 1)
+#define VFIO_GFX_PLANE_TYPE_REGION (1 << 2)
+  __u32 drm_plane_type;
+  __u32 drm_format;
+  __u64 drm_format_mod;
+  __u32 width;
+  __u32 height;
+  __u32 stride;
+  __u32 size;
+  __u32 x_pos;
+  __u32 y_pos;
+  __u32 x_hot;
+  __u32 y_hot;
+  union {
+    __u32 region_index;
+    __u32 dmabuf_id;
+  };
+};
+#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14)
+#define VFIO_DEVICE_GET_GFX_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 15)
+struct vfio_device_ioeventfd {
+  __u32 argsz;
+  __u32 flags;
+#define VFIO_DEVICE_IOEVENTFD_8 (1 << 0)
+#define VFIO_DEVICE_IOEVENTFD_16 (1 << 1)
+#define VFIO_DEVICE_IOEVENTFD_32 (1 << 2)
+#define VFIO_DEVICE_IOEVENTFD_64 (1 << 3)
+#define VFIO_DEVICE_IOEVENTFD_SIZE_MASK (0xf)
+  __u64 offset;
+  __u64 data;
+  __s32 fd;
+};
+#define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16)
 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 c350108..0569ba7 100644
--- a/libc/kernel/uapi/linux/videodev2.h
+++ b/libc/kernel/uapi/linux/videodev2.h
@@ -314,6 +314,7 @@
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L')
 #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0')
 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
+#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C')
 #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A')
 #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A')
 #define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0')
@@ -345,6 +346,10 @@
 #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
 #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
+#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')
+#define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r')
 #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8')
 #define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6')
 #define V4L2_SDR_FMT_CS8 v4l2_fourcc('C', 'S', '0', '8')
@@ -359,6 +364,7 @@
 #define V4L2_TCH_FMT_TU08 v4l2_fourcc('T', 'U', '0', '8')
 #define V4L2_META_FMT_VSP1_HGO v4l2_fourcc('V', 'S', 'P', 'H')
 #define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T')
+#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H')
 #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
 #define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001
 struct v4l2_fmtdesc {
diff --git a/libc/kernel/uapi/linux/virtio_balloon.h b/libc/kernel/uapi/linux/virtio_balloon.h
index 9f383bc..5969fa0 100644
--- a/libc/kernel/uapi/linux/virtio_balloon.h
+++ b/libc/kernel/uapi/linux/virtio_balloon.h
@@ -37,7 +37,13 @@
 #define VIRTIO_BALLOON_S_MEMFREE 4
 #define VIRTIO_BALLOON_S_MEMTOT 5
 #define VIRTIO_BALLOON_S_AVAIL 6
-#define VIRTIO_BALLOON_S_NR 7
+#define VIRTIO_BALLOON_S_CACHES 7
+#define VIRTIO_BALLOON_S_HTLB_PGALLOC 8
+#define VIRTIO_BALLOON_S_HTLB_PGFAIL 9
+#define VIRTIO_BALLOON_S_NR 10
+#define VIRTIO_BALLOON_S_NAMES_WITH_PREFIX(VIRTIO_BALLOON_S_NAMES_prefix) { VIRTIO_BALLOON_S_NAMES_prefix "swap-in", VIRTIO_BALLOON_S_NAMES_prefix "swap-out", VIRTIO_BALLOON_S_NAMES_prefix "major-faults", VIRTIO_BALLOON_S_NAMES_prefix "minor-faults", VIRTIO_BALLOON_S_NAMES_prefix "free-memory", VIRTIO_BALLOON_S_NAMES_prefix "total-memory", VIRTIO_BALLOON_S_NAMES_prefix "available-memory", VIRTIO_BALLOON_S_NAMES_prefix "disk-caches", VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-allocations", VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures" \
+}
+#define VIRTIO_BALLOON_S_NAMES VIRTIO_BALLOON_S_NAMES_WITH_PREFIX("")
 struct virtio_balloon_stat {
   __virtio16 tag;
   __virtio64 val;
diff --git a/libc/kernel/uapi/linux/virtio_net.h b/libc/kernel/uapi/linux/virtio_net.h
index ed9df3f..329d736 100644
--- a/libc/kernel/uapi/linux/virtio_net.h
+++ b/libc/kernel/uapi/linux/virtio_net.h
@@ -45,6 +45,7 @@
 #define VIRTIO_NET_F_GUEST_ANNOUNCE 21
 #define VIRTIO_NET_F_MQ 22
 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23
+#define VIRTIO_NET_F_SPEED_DUPLEX 63
 #ifndef VIRTIO_NET_NO_LEGACY
 #define VIRTIO_NET_F_GSO 6
 #endif
@@ -55,6 +56,8 @@
   __u16 status;
   __u16 max_virtqueue_pairs;
   __u16 mtu;
+  __u32 speed;
+  __u8 duplex;
 } __attribute__((packed));
 struct virtio_net_hdr_v1 {
 #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1
diff --git a/libc/kernel/uapi/misc/cxl.h b/libc/kernel/uapi/misc/cxl.h
index d9cfa5e..64b5992 100644
--- a/libc/kernel/uapi/misc/cxl.h
+++ b/libc/kernel/uapi/misc/cxl.h
@@ -25,17 +25,18 @@
   __u64 work_element_descriptor;
   __u64 amr;
   __s16 num_interrupts;
-  __s16 reserved1;
-  __s32 reserved2;
+  __u16 tid;
+  __s32 reserved1;
+  __u64 reserved2;
   __u64 reserved3;
   __u64 reserved4;
   __u64 reserved5;
-  __u64 reserved6;
 };
 #define CXL_START_WORK_AMR 0x0000000000000001ULL
 #define CXL_START_WORK_NUM_IRQS 0x0000000000000002ULL
 #define CXL_START_WORK_ERR_FF 0x0000000000000004ULL
-#define CXL_START_WORK_ALL (CXL_START_WORK_AMR | CXL_START_WORK_NUM_IRQS | CXL_START_WORK_ERR_FF)
+#define CXL_START_WORK_TID 0x0000000000000008ULL
+#define CXL_START_WORK_ALL (CXL_START_WORK_AMR | CXL_START_WORK_NUM_IRQS | CXL_START_WORK_ERR_FF | CXL_START_WORK_TID)
 #define CXL_MODE_DEDICATED 0x1
 #define CXL_MODE_DIRECTED 0x2
 #define CXL_AFUID_FLAG_SLAVE 0x1
diff --git a/libc/kernel/uapi/misc/ocxl.h b/libc/kernel/uapi/misc/ocxl.h
new file mode 100644
index 0000000..98d3eac
--- /dev/null
+++ b/libc/kernel/uapi/misc/ocxl.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_MISC_OCXL_H
+#define _UAPI_MISC_OCXL_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
+enum ocxl_event_type {
+  OCXL_AFU_EVENT_XSL_FAULT_ERROR = 0,
+};
+#define OCXL_KERNEL_EVENT_FLAG_LAST 0x0001
+struct ocxl_kernel_event_header {
+  __u16 type;
+  __u16 flags;
+  __u32 reserved;
+};
+struct ocxl_kernel_event_xsl_fault_error {
+  __u64 addr;
+  __u64 dsisr;
+  __u64 count;
+  __u64 reserved;
+};
+struct ocxl_ioctl_attach {
+  __u64 amr;
+  __u64 reserved1;
+  __u64 reserved2;
+  __u64 reserved3;
+};
+struct ocxl_ioctl_metadata {
+  __u16 version;
+  __u8 afu_version_major;
+  __u8 afu_version_minor;
+  __u32 pasid;
+  __u64 pp_mmio_size;
+  __u64 global_mmio_size;
+  __u64 reserved[13];
+};
+struct ocxl_ioctl_irq_fd {
+  __u64 irq_offset;
+  __s32 eventfd;
+  __u32 reserved;
+};
+#define OCXL_MAGIC 0xCA
+#define OCXL_IOCTL_ATTACH _IOW(OCXL_MAGIC, 0x10, struct ocxl_ioctl_attach)
+#define OCXL_IOCTL_IRQ_ALLOC _IOR(OCXL_MAGIC, 0x11, __u64)
+#define OCXL_IOCTL_IRQ_FREE _IOW(OCXL_MAGIC, 0x12, __u64)
+#define OCXL_IOCTL_IRQ_SET_FD _IOW(OCXL_MAGIC, 0x13, struct ocxl_ioctl_irq_fd)
+#define OCXL_IOCTL_GET_METADATA _IOR(OCXL_MAGIC, 0x14, struct ocxl_ioctl_metadata)
+#endif
diff --git a/libc/kernel/uapi/rdma/bnxt_re-abi.h b/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 873c466..4e29624 100644
--- a/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -32,10 +32,10 @@
   __u32 pdid;
   __u32 dpi;
   __u64 dbr;
-};
+} __attribute__((packed, aligned(4)));
 struct bnxt_re_cq_req {
-  __u64 cq_va;
-  __u64 cq_handle;
+  __aligned_u64 cq_va;
+  __aligned_u64 cq_handle;
 };
 struct bnxt_re_cq_resp {
   __u32 cqid;
@@ -44,14 +44,21 @@
   __u32 rsvd;
 };
 struct bnxt_re_qp_req {
-  __u64 qpsva;
-  __u64 qprva;
-  __u64 qp_handle;
+  __aligned_u64 qpsva;
+  __aligned_u64 qprva;
+  __aligned_u64 qp_handle;
 };
 struct bnxt_re_qp_resp {
   __u32 qpid;
   __u32 rsvd;
 };
+struct bnxt_re_srq_req {
+  __aligned_u64 srqva;
+  __aligned_u64 srq_handle;
+};
+struct bnxt_re_srq_resp {
+  __u32 srqid;
+};
 enum bnxt_re_shpg_offt {
   BNXT_RE_BEG_RESV_OFFT = 0x00,
   BNXT_RE_AVID_OFFT = 0x10,
diff --git a/libc/kernel/uapi/rdma/cxgb3-abi.h b/libc/kernel/uapi/rdma/cxgb3-abi.h
index 6f015ef..205d748 100644
--- a/libc/kernel/uapi/rdma/cxgb3-abi.h
+++ b/libc/kernel/uapi/rdma/cxgb3-abi.h
@@ -21,23 +21,23 @@
 #include <linux/types.h>
 #define IWCH_UVERBS_ABI_VERSION 1
 struct iwch_create_cq_req {
-  __u64 user_rptr_addr;
+  __aligned_u64 user_rptr_addr;
 };
 struct iwch_create_cq_resp_v0 {
-  __u64 key;
+  __aligned_u64 key;
   __u32 cqid;
   __u32 size_log2;
 };
 struct iwch_create_cq_resp {
-  __u64 key;
+  __aligned_u64 key;
   __u32 cqid;
   __u32 size_log2;
   __u32 memsize;
   __u32 reserved;
 };
 struct iwch_create_qp_resp {
-  __u64 key;
-  __u64 db_key;
+  __aligned_u64 key;
+  __aligned_u64 db_key;
   __u32 qpid;
   __u32 size_log2;
   __u32 sq_size_log2;
@@ -46,4 +46,7 @@
 struct iwch_reg_user_mr_resp {
   __u32 pbl_addr;
 };
+struct iwch_alloc_pd_resp {
+  __u32 pdid;
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/cxgb4-abi.h b/libc/kernel/uapi/rdma/cxgb4-abi.h
index 42ed246..188d901 100644
--- a/libc/kernel/uapi/rdma/cxgb4-abi.h
+++ b/libc/kernel/uapi/rdma/cxgb4-abi.h
@@ -21,9 +21,9 @@
 #include <linux/types.h>
 #define C4IW_UVERBS_ABI_VERSION 3
 struct c4iw_create_cq_resp {
-  __u64 key;
-  __u64 gts_key;
-  __u64 memsize;
+  __aligned_u64 key;
+  __aligned_u64 gts_key;
+  __aligned_u64 memsize;
   __u32 cqid;
   __u32 size;
   __u32 qid_mask;
@@ -33,13 +33,13 @@
   C4IW_QPF_ONCHIP = (1 << 0)
 };
 struct c4iw_create_qp_resp {
-  __u64 ma_sync_key;
-  __u64 sq_key;
-  __u64 rq_key;
-  __u64 sq_db_gts_key;
-  __u64 rq_db_gts_key;
-  __u64 sq_memsize;
-  __u64 rq_memsize;
+  __aligned_u64 ma_sync_key;
+  __aligned_u64 sq_key;
+  __aligned_u64 rq_key;
+  __aligned_u64 sq_db_gts_key;
+  __aligned_u64 rq_db_gts_key;
+  __aligned_u64 sq_memsize;
+  __aligned_u64 rq_memsize;
   __u32 sqid;
   __u32 rqid;
   __u32 sq_size;
@@ -48,8 +48,11 @@
   __u32 flags;
 };
 struct c4iw_alloc_ucontext_resp {
-  __u64 status_page_key;
+  __aligned_u64 status_page_key;
   __u32 status_page_size;
   __u32 reserved;
 };
+struct c4iw_alloc_pd_resp {
+  __u32 pdid;
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h b/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h
index ea828fb..a430650 100644
--- a/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h
+++ b/libc/kernel/uapi/rdma/hfi/hfi1_ioctl.h
@@ -27,7 +27,7 @@
   __u8 uuid[16];
 };
 struct hfi1_ctxt_info {
-  __u64 runtime_flags;
+  __aligned_u64 runtime_flags;
   __u32 rcvegr_size;
   __u16 num_active;
   __u16 unit;
@@ -44,8 +44,8 @@
   __u16 sdma_ring_size;
 };
 struct hfi1_tid_info {
-  __u64 vaddr;
-  __u64 tidlist;
+  __aligned_u64 vaddr;
+  __aligned_u64 tidlist;
   __u32 tidcnt;
   __u32 length;
 };
@@ -55,18 +55,18 @@
   __u16 jkey;
   __u16 padding1;
   __u32 bthqp;
-  __u64 sc_credits_addr;
-  __u64 pio_bufbase_sop;
-  __u64 pio_bufbase;
-  __u64 rcvhdr_bufbase;
-  __u64 rcvegr_bufbase;
-  __u64 sdma_comp_bufbase;
-  __u64 user_regbase;
-  __u64 events_bufbase;
-  __u64 status_bufbase;
-  __u64 rcvhdrtail_base;
-  __u64 subctxt_uregbase;
-  __u64 subctxt_rcvegrbuf;
-  __u64 subctxt_rcvhdrbuf;
+  __aligned_u64 sc_credits_addr;
+  __aligned_u64 pio_bufbase_sop;
+  __aligned_u64 pio_bufbase;
+  __aligned_u64 rcvhdr_bufbase;
+  __aligned_u64 rcvegr_bufbase;
+  __aligned_u64 sdma_comp_bufbase;
+  __aligned_u64 user_regbase;
+  __aligned_u64 events_bufbase;
+  __aligned_u64 status_bufbase;
+  __aligned_u64 rcvhdrtail_base;
+  __aligned_u64 subctxt_uregbase;
+  __aligned_u64 subctxt_rcvegrbuf;
+  __aligned_u64 subctxt_rcvhdrbuf;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/hfi/hfi1_user.h b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
index 0d840e9..9148ed5 100644
--- a/libc/kernel/uapi/rdma/hfi/hfi1_user.h
+++ b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
@@ -75,8 +75,8 @@
   __u32 errcode;
 };
 struct hfi1_status {
-  __u64 dev;
-  __u64 port;
+  __aligned_u64 dev;
+  __aligned_u64 port;
   char freezemsg[0];
 };
 enum sdma_req_opcode {
@@ -94,19 +94,19 @@
   __u16 npkts;
   __u16 fragsize;
   __u16 comp_idx;
-} __packed;
+} __attribute__((__packed__));
 struct hfi1_kdeth_header {
   __le32 ver_tid_offset;
   __le16 jkey;
   __le16 hcrc;
   __le32 swdata[7];
-} __packed;
+} __attribute__((__packed__));
 struct hfi1_pkt_header {
   __le16 pbc[4];
   __be16 lrh[4];
   __be32 bth[3];
   struct hfi1_kdeth_header kdeth;
-} __packed;
+} __attribute__((__packed__));
 enum hfi1_ureg {
   ur_rcvhdrtail = 0,
   ur_rcvhdrhead = 1,
diff --git a/libc/kernel/uapi/rdma/hns-abi.h b/libc/kernel/uapi/rdma/hns-abi.h
index e6c0618..8c66f27 100644
--- a/libc/kernel/uapi/rdma/hns-abi.h
+++ b/libc/kernel/uapi/rdma/hns-abi.h
@@ -20,17 +20,29 @@
 #define HNS_ABI_USER_H
 #include <linux/types.h>
 struct hns_roce_ib_create_cq {
-  __u64 buf_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
+};
+struct hns_roce_ib_create_cq_resp {
+  __aligned_u64 cqn;
+  __aligned_u64 cap_flags;
 };
 struct hns_roce_ib_create_qp {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
   __u8 log_sq_bb_count;
   __u8 log_sq_stride;
   __u8 sq_no_prefetch;
   __u8 reserved[5];
 };
+struct hns_roce_ib_create_qp_resp {
+  __aligned_u64 cap_flags;
+};
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
+  __u32 reserved;
+};
+struct hns_roce_ib_alloc_pd_resp {
+  __u32 pdn;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/i40iw-abi.h b/libc/kernel/uapi/rdma/i40iw-abi.h
new file mode 100644
index 0000000..60a17f5
--- /dev/null
+++ b/libc/kernel/uapi/rdma/i40iw-abi.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 I40IW_ABI_H
+#define I40IW_ABI_H
+#include <linux/types.h>
+#define I40IW_ABI_VER 5
+struct i40iw_alloc_ucontext_req {
+  __u32 reserved32;
+  __u8 userspace_ver;
+  __u8 reserved8[3];
+};
+struct i40iw_alloc_ucontext_resp {
+  __u32 max_pds;
+  __u32 max_qps;
+  __u32 wq_size;
+  __u8 kernel_ver;
+  __u8 reserved[3];
+};
+struct i40iw_alloc_pd_resp {
+  __u32 pd_id;
+  __u8 reserved[4];
+};
+struct i40iw_create_cq_req {
+  __aligned_u64 user_cq_buffer;
+  __aligned_u64 user_shadow_area;
+};
+struct i40iw_create_qp_req {
+  __aligned_u64 user_wqe_buffers;
+  __aligned_u64 user_compl_ctx;
+  __aligned_u64 user_sq_phb;
+  __aligned_u64 user_rq_phb;
+};
+enum i40iw_memreg_type {
+  IW_MEMREG_TYPE_MEM = 0x0000,
+  IW_MEMREG_TYPE_QP = 0x0001,
+  IW_MEMREG_TYPE_CQ = 0x0002,
+};
+struct i40iw_mem_reg_req {
+  __u16 reg_type;
+  __u16 cq_pages;
+  __u16 rq_pages;
+  __u16 sq_pages;
+};
+struct i40iw_create_cq_resp {
+  __u32 cq_id;
+  __u32 cq_size;
+  __u32 mmap_db_index;
+  __u32 reserved;
+};
+struct i40iw_create_qp_resp {
+  __u32 qp_id;
+  __u32 actual_sq_size;
+  __u32 actual_rq_size;
+  __u32 i40iw_drv_opt;
+  __u16 push_idx;
+  __u8 lsmm;
+  __u8 rsvd2;
+};
+#endif
diff --git a/libc/kernel/uapi/rdma/ib_user_cm.h b/libc/kernel/uapi/rdma/ib_user_cm.h
index 0802f2a..5ba46b8 100644
--- a/libc/kernel/uapi/rdma/ib_user_cm.h
+++ b/libc/kernel/uapi/rdma/ib_user_cm.h
@@ -47,14 +47,14 @@
   __u16 out;
 };
 struct ib_ucm_create_id {
-  __u64 uid;
-  __u64 response;
+  __aligned_u64 uid;
+  __aligned_u64 response;
 };
 struct ib_ucm_create_id_resp {
   __u32 id;
 };
 struct ib_ucm_destroy_id {
-  __u64 response;
+  __aligned_u64 response;
   __u32 id;
   __u32 reserved;
 };
@@ -62,7 +62,7 @@
   __u32 events_reported;
 };
 struct ib_ucm_attr_id {
-  __u64 response;
+  __aligned_u64 response;
   __u32 id;
   __u32 reserved;
 };
@@ -73,7 +73,7 @@
   __be32 remote_id;
 };
 struct ib_ucm_init_qp_attr {
-  __u64 response;
+  __aligned_u64 response;
   __u32 id;
   __u32 qp_state;
 };
@@ -88,7 +88,7 @@
   __u32 event;
 };
 struct ib_ucm_private_data {
-  __u64 data;
+  __aligned_u64 data;
   __u32 id;
   __u8 len;
   __u8 reserved[3];
@@ -99,9 +99,9 @@
   __u32 qp_type;
   __u32 psn;
   __be64 sid;
-  __u64 data;
-  __u64 primary_path;
-  __u64 alternate_path;
+  __aligned_u64 data;
+  __aligned_u64 primary_path;
+  __aligned_u64 alternate_path;
   __u8 len;
   __u8 peer_to_peer;
   __u8 responder_resources;
@@ -116,8 +116,8 @@
   __u8 reserved[5];
 };
 struct ib_ucm_rep {
-  __u64 uid;
-  __u64 data;
+  __aligned_u64 uid;
+  __aligned_u64 data;
   __u32 id;
   __u32 qpn;
   __u32 psn;
@@ -134,22 +134,22 @@
 struct ib_ucm_info {
   __u32 id;
   __u32 status;
-  __u64 info;
-  __u64 data;
+  __aligned_u64 info;
+  __aligned_u64 data;
   __u8 info_len;
   __u8 data_len;
   __u8 reserved[6];
 };
 struct ib_ucm_mra {
-  __u64 data;
+  __aligned_u64 data;
   __u32 id;
   __u8 len;
   __u8 timeout;
   __u8 reserved[2];
 };
 struct ib_ucm_lap {
-  __u64 path;
-  __u64 data;
+  __aligned_u64 path;
+  __aligned_u64 data;
   __u32 id;
   __u8 len;
   __u8 reserved[3];
@@ -158,8 +158,8 @@
   __u32 id;
   __u32 timeout;
   __be64 sid;
-  __u64 data;
-  __u64 path;
+  __aligned_u64 data;
+  __aligned_u64 path;
   __u16 reserved_pkey;
   __u8 len;
   __u8 max_cm_retries;
@@ -170,16 +170,16 @@
   __u32 qpn;
   __u32 qkey;
   __u32 status;
-  __u64 info;
-  __u64 data;
+  __aligned_u64 info;
+  __aligned_u64 data;
   __u8 info_len;
   __u8 data_len;
   __u8 reserved[6];
 };
 struct ib_ucm_event_get {
-  __u64 response;
-  __u64 data;
-  __u64 info;
+  __aligned_u64 response;
+  __aligned_u64 data;
+  __aligned_u64 info;
   __u8 data_len;
   __u8 info_len;
   __u8 reserved[6];
@@ -245,7 +245,7 @@
 #define IB_UCM_PRES_PRIMARY 0x04
 #define IB_UCM_PRES_ALTERNATE 0x08
 struct ib_ucm_event_resp {
-  __u64 uid;
+  __aligned_u64 uid;
   __u32 id;
   __u32 event;
   __u32 present;
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
new file mode 100644
index 0000000..4bc9786
--- /dev/null
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h
@@ -0,0 +1,104 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 IB_USER_IOCTL_CMDS_H
+#define IB_USER_IOCTL_CMDS_H
+#define UVERBS_ID_NS_MASK 0xF000
+#define UVERBS_ID_NS_SHIFT 12
+#define UVERBS_UDATA_DRIVER_DATA_NS 1
+#define UVERBS_UDATA_DRIVER_DATA_FLAG (1UL << UVERBS_ID_NS_SHIFT)
+enum uverbs_default_objects {
+  UVERBS_OBJECT_DEVICE,
+  UVERBS_OBJECT_PD,
+  UVERBS_OBJECT_COMP_CHANNEL,
+  UVERBS_OBJECT_CQ,
+  UVERBS_OBJECT_QP,
+  UVERBS_OBJECT_SRQ,
+  UVERBS_OBJECT_AH,
+  UVERBS_OBJECT_MR,
+  UVERBS_OBJECT_MW,
+  UVERBS_OBJECT_FLOW,
+  UVERBS_OBJECT_XRCD,
+  UVERBS_OBJECT_RWQ_IND_TBL,
+  UVERBS_OBJECT_WQ,
+  UVERBS_OBJECT_FLOW_ACTION,
+  UVERBS_OBJECT_DM,
+};
+enum {
+  UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
+  UVERBS_ATTR_UHW_OUT,
+};
+enum uverbs_attrs_create_cq_cmd_attr_ids {
+  UVERBS_ATTR_CREATE_CQ_HANDLE,
+  UVERBS_ATTR_CREATE_CQ_CQE,
+  UVERBS_ATTR_CREATE_CQ_USER_HANDLE,
+  UVERBS_ATTR_CREATE_CQ_COMP_CHANNEL,
+  UVERBS_ATTR_CREATE_CQ_COMP_VECTOR,
+  UVERBS_ATTR_CREATE_CQ_FLAGS,
+  UVERBS_ATTR_CREATE_CQ_RESP_CQE,
+};
+enum uverbs_attrs_destroy_cq_cmd_attr_ids {
+  UVERBS_ATTR_DESTROY_CQ_HANDLE,
+  UVERBS_ATTR_DESTROY_CQ_RESP,
+};
+enum uverbs_attrs_create_flow_action_esp {
+  UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE,
+  UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS,
+  UVERBS_ATTR_FLOW_ACTION_ESP_ESN,
+  UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT,
+  UVERBS_ATTR_FLOW_ACTION_ESP_REPLAY,
+  UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP,
+};
+enum uverbs_attrs_destroy_flow_action_esp {
+  UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,
+};
+enum uverbs_methods_cq {
+  UVERBS_METHOD_CQ_CREATE,
+  UVERBS_METHOD_CQ_DESTROY,
+};
+enum uverbs_methods_actions_flow_action_ops {
+  UVERBS_METHOD_FLOW_ACTION_ESP_CREATE,
+  UVERBS_METHOD_FLOW_ACTION_DESTROY,
+  UVERBS_METHOD_FLOW_ACTION_ESP_MODIFY,
+};
+enum uverbs_attrs_alloc_dm_cmd_attr_ids {
+  UVERBS_ATTR_ALLOC_DM_HANDLE,
+  UVERBS_ATTR_ALLOC_DM_LENGTH,
+  UVERBS_ATTR_ALLOC_DM_ALIGNMENT,
+};
+enum uverbs_attrs_free_dm_cmd_attr_ids {
+  UVERBS_ATTR_FREE_DM_HANDLE,
+};
+enum uverbs_methods_dm {
+  UVERBS_METHOD_DM_ALLOC,
+  UVERBS_METHOD_DM_FREE,
+};
+enum uverbs_attrs_reg_dm_mr_cmd_attr_ids {
+  UVERBS_ATTR_REG_DM_MR_HANDLE,
+  UVERBS_ATTR_REG_DM_MR_OFFSET,
+  UVERBS_ATTR_REG_DM_MR_LENGTH,
+  UVERBS_ATTR_REG_DM_MR_PD_HANDLE,
+  UVERBS_ATTR_REG_DM_MR_ACCESS_FLAGS,
+  UVERBS_ATTR_REG_DM_MR_DM_HANDLE,
+  UVERBS_ATTR_REG_DM_MR_RESP_LKEY,
+  UVERBS_ATTR_REG_DM_MR_RESP_RKEY,
+};
+enum uverbs_methods_mr {
+  UVERBS_METHOD_DM_MR_REG,
+};
+#endif
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index 766fe4c..261734e 100644
--- a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -18,44 +18,51 @@
  ****************************************************************************/
 #ifndef IB_USER_IOCTL_VERBS_H
 #define IB_USER_IOCTL_VERBS_H
-#include <rdma/rdma_user_ioctl.h>
-#define UVERBS_UDATA_DRIVER_DATA_NS 1
-#define UVERBS_UDATA_DRIVER_DATA_FLAG (1UL << UVERBS_ID_NS_SHIFT)
-enum uverbs_default_objects {
-  UVERBS_OBJECT_DEVICE,
-  UVERBS_OBJECT_PD,
-  UVERBS_OBJECT_COMP_CHANNEL,
-  UVERBS_OBJECT_CQ,
-  UVERBS_OBJECT_QP,
-  UVERBS_OBJECT_SRQ,
-  UVERBS_OBJECT_AH,
-  UVERBS_OBJECT_MR,
-  UVERBS_OBJECT_MW,
-  UVERBS_OBJECT_FLOW,
-  UVERBS_OBJECT_XRCD,
-  UVERBS_OBJECT_RWQ_IND_TBL,
-  UVERBS_OBJECT_WQ,
-  UVERBS_OBJECT_LAST,
+#include <linux/types.h>
+#ifndef RDMA_UAPI_PTR
+#define RDMA_UAPI_PTR(_type,_name) __aligned_u64 _name
+#endif
+enum ib_uverbs_flow_action_esp_keymat {
+  IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM,
 };
-enum {
-  UVERBS_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
-  UVERBS_UHW_OUT,
+enum ib_uverbs_flow_action_esp_keymat_aes_gcm_iv_algo {
+  IB_UVERBS_FLOW_ACTION_IV_ALGO_SEQ,
 };
-enum uverbs_create_cq_cmd_attr_ids {
-  CREATE_CQ_HANDLE,
-  CREATE_CQ_CQE,
-  CREATE_CQ_USER_HANDLE,
-  CREATE_CQ_COMP_CHANNEL,
-  CREATE_CQ_COMP_VECTOR,
-  CREATE_CQ_FLAGS,
-  CREATE_CQ_RESP_CQE,
+struct ib_uverbs_flow_action_esp_keymat_aes_gcm {
+  __aligned_u64 iv;
+  __u32 iv_algo;
+  __u32 salt;
+  __u32 icv_len;
+  __u32 key_len;
+  __u32 aes_key[256 / 32];
 };
-enum uverbs_destroy_cq_cmd_attr_ids {
-  DESTROY_CQ_HANDLE,
-  DESTROY_CQ_RESP,
+enum ib_uverbs_flow_action_esp_replay {
+  IB_UVERBS_FLOW_ACTION_ESP_REPLAY_NONE,
+  IB_UVERBS_FLOW_ACTION_ESP_REPLAY_BMP,
 };
-enum uverbs_actions_cq_ops {
-  UVERBS_CQ_CREATE,
-  UVERBS_CQ_DESTROY,
+struct ib_uverbs_flow_action_esp_replay_bmp {
+  __u32 size;
+};
+enum ib_uverbs_flow_action_esp_flags {
+  IB_UVERBS_FLOW_ACTION_ESP_FLAGS_INLINE_CRYPTO = 0UL << 0,
+  IB_UVERBS_FLOW_ACTION_ESP_FLAGS_FULL_OFFLOAD = 1UL << 0,
+  IB_UVERBS_FLOW_ACTION_ESP_FLAGS_TUNNEL = 0UL << 1,
+  IB_UVERBS_FLOW_ACTION_ESP_FLAGS_TRANSPORT = 1UL << 1,
+  IB_UVERBS_FLOW_ACTION_ESP_FLAGS_DECRYPT = 0UL << 2,
+  IB_UVERBS_FLOW_ACTION_ESP_FLAGS_ENCRYPT = 1UL << 2,
+  IB_UVERBS_FLOW_ACTION_ESP_FLAGS_ESN_NEW_WINDOW = 1UL << 3,
+};
+struct ib_uverbs_flow_action_esp_encap {
+  RDMA_UAPI_PTR(void *, val_ptr);
+  RDMA_UAPI_PTR(struct ib_uverbs_flow_action_esp_encap *, next_ptr);
+  __u16 len;
+  __u16 type;
+};
+struct ib_uverbs_flow_action_esp {
+  __u32 spi;
+  __u32 seq;
+  __u32 tfc_pad;
+  __u32 flags;
+  __aligned_u64 hard_limit_pkts;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/ib_user_mad.h b/libc/kernel/uapi/rdma/ib_user_mad.h
index cd723bb..dadb590 100644
--- a/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -61,7 +61,7 @@
 };
 struct ib_user_mad {
   struct ib_user_mad_hdr hdr;
-  __u64 data[0];
+  __aligned_u64 data[0];
 };
 typedef unsigned long __attribute__((aligned(4))) packed_ulong;
 #define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof(long)))
@@ -85,7 +85,7 @@
   __u8 mgmt_class_version;
   __u16 res;
   __u32 flags;
-  __u64 method_mask[2];
+  __aligned_u64 method_mask[2];
   __u32 oui;
   __u8 rmpp_version;
   __u8 reserved[3];
diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h
index 03a2fcd..53e4725 100644
--- a/libc/kernel/uapi/rdma/ib_user_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_verbs.h
@@ -79,12 +79,12 @@
   IB_USER_VERBS_EX_CMD_MODIFY_CQ
 };
 struct ib_uverbs_async_event_desc {
-  __u64 element;
+  __aligned_u64 element;
   __u32 event_type;
   __u32 reserved;
 };
 struct ib_uverbs_comp_event_desc {
-  __u64 cq_handle;
+  __aligned_u64 cq_handle;
 };
 struct ib_uverbs_cq_moderation_caps {
   __u16 max_cq_moderation_count;
@@ -92,38 +92,36 @@
   __u32 reserved;
 };
 #define IB_USER_VERBS_CMD_COMMAND_MASK 0xff
-#define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u
-#define IB_USER_VERBS_CMD_FLAGS_SHIFT 24
-#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80
+#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80000000u
 struct ib_uverbs_cmd_hdr {
   __u32 command;
   __u16 in_words;
   __u16 out_words;
 };
 struct ib_uverbs_ex_cmd_hdr {
-  __u64 response;
+  __aligned_u64 response;
   __u16 provider_in_words;
   __u16 provider_out_words;
   __u32 cmd_hdr_reserved;
 };
 struct ib_uverbs_get_context {
-  __u64 response;
-  __u64 driver_data[0];
+  __aligned_u64 response;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_get_context_resp {
   __u32 async_fd;
   __u32 num_comp_vectors;
 };
 struct ib_uverbs_query_device {
-  __u64 response;
-  __u64 driver_data[0];
+  __aligned_u64 response;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_query_device_resp {
-  __u64 fw_ver;
+  __aligned_u64 fw_ver;
   __be64 node_guid;
   __be64 sys_image_guid;
-  __u64 max_mr_size;
-  __u64 page_size_cap;
+  __aligned_u64 max_mr_size;
+  __aligned_u64 page_size_cap;
   __u32 vendor_id;
   __u32 vendor_part_id;
   __u32 hw_ver;
@@ -166,7 +164,7 @@
   __u32 reserved;
 };
 struct ib_uverbs_odp_caps {
-  __u64 general_caps;
+  __aligned_u64 general_caps;
   struct {
     __u32 rc_odp_caps;
     __u32 uc_odp_caps;
@@ -193,20 +191,21 @@
   __u32 comp_mask;
   __u32 response_length;
   struct ib_uverbs_odp_caps odp_caps;
-  __u64 timestamp_mask;
-  __u64 hca_core_clock;
-  __u64 device_cap_flags_ex;
+  __aligned_u64 timestamp_mask;
+  __aligned_u64 hca_core_clock;
+  __aligned_u64 device_cap_flags_ex;
   struct ib_uverbs_rss_caps rss_caps;
   __u32 max_wq_type_rq;
   __u32 raw_packet_caps;
   struct ib_uverbs_tm_caps tm_caps;
   struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
+  __aligned_u64 max_dm_size;
 };
 struct ib_uverbs_query_port {
-  __u64 response;
+  __aligned_u64 response;
   __u8 port_num;
   __u8 reserved[7];
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_query_port_resp {
   __u32 port_cap_flags;
@@ -232,8 +231,8 @@
   __u8 reserved[2];
 };
 struct ib_uverbs_alloc_pd {
-  __u64 response;
-  __u64 driver_data[0];
+  __aligned_u64 response;
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_alloc_pd_resp {
   __u32 pd_handle;
@@ -242,10 +241,10 @@
   __u32 pd_handle;
 };
 struct ib_uverbs_open_xrcd {
-  __u64 response;
+  __aligned_u64 response;
   __u32 fd;
   __u32 oflags;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_open_xrcd_resp {
   __u32 xrcd_handle;
@@ -254,13 +253,13 @@
   __u32 xrcd_handle;
 };
 struct ib_uverbs_reg_mr {
-  __u64 response;
-  __u64 start;
-  __u64 length;
-  __u64 hca_va;
+  __aligned_u64 response;
+  __aligned_u64 start;
+  __aligned_u64 length;
+  __aligned_u64 hca_va;
   __u32 pd_handle;
   __u32 access_flags;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_reg_mr_resp {
   __u32 mr_handle;
@@ -268,12 +267,12 @@
   __u32 rkey;
 };
 struct ib_uverbs_rereg_mr {
-  __u64 response;
+  __aligned_u64 response;
   __u32 mr_handle;
   __u32 flags;
-  __u64 start;
-  __u64 length;
-  __u64 hca_va;
+  __aligned_u64 start;
+  __aligned_u64 length;
+  __aligned_u64 hca_va;
   __u32 pd_handle;
   __u32 access_flags;
 };
@@ -285,7 +284,7 @@
   __u32 mr_handle;
 };
 struct ib_uverbs_alloc_mw {
-  __u64 response;
+  __aligned_u64 response;
   __u32 pd_handle;
   __u8 mw_type;
   __u8 reserved[3];
@@ -298,22 +297,26 @@
   __u32 mw_handle;
 };
 struct ib_uverbs_create_comp_channel {
-  __u64 response;
+  __aligned_u64 response;
 };
 struct ib_uverbs_create_comp_channel_resp {
   __u32 fd;
 };
 struct ib_uverbs_create_cq {
-  __u64 response;
-  __u64 user_handle;
+  __aligned_u64 response;
+  __aligned_u64 user_handle;
   __u32 cqe;
   __u32 comp_vector;
   __s32 comp_channel;
   __u32 reserved;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
+};
+enum ib_uverbs_ex_create_cq_flags {
+  IB_UVERBS_CQ_FLAGS_TIMESTAMP_COMPLETION = 1 << 0,
+  IB_UVERBS_CQ_FLAGS_IGNORE_OVERRUN = 1 << 1,
 };
 struct ib_uverbs_ex_create_cq {
-  __u64 user_handle;
+  __aligned_u64 user_handle;
   __u32 cqe;
   __u32 comp_vector;
   __s32 comp_channel;
@@ -331,29 +334,29 @@
   __u32 response_length;
 };
 struct ib_uverbs_resize_cq {
-  __u64 response;
+  __aligned_u64 response;
   __u32 cq_handle;
   __u32 cqe;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_resize_cq_resp {
   __u32 cqe;
   __u32 reserved;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_poll_cq {
-  __u64 response;
+  __aligned_u64 response;
   __u32 cq_handle;
   __u32 ne;
 };
 struct ib_uverbs_wc {
-  __u64 wr_id;
+  __aligned_u64 wr_id;
   __u32 status;
   __u32 opcode;
   __u32 vendor_err;
   __u32 byte_len;
   union {
-    __u32 imm_data;
+    __be32 imm_data;
     __u32 invalidate_rkey;
   } ex;
   __u32 qp_num;
@@ -376,7 +379,7 @@
   __u32 solicited_only;
 };
 struct ib_uverbs_destroy_cq {
-  __u64 response;
+  __aligned_u64 response;
   __u32 cq_handle;
   __u32 reserved;
 };
@@ -436,8 +439,8 @@
   __u8 reserved[5];
 };
 struct ib_uverbs_create_qp {
-  __u64 response;
-  __u64 user_handle;
+  __aligned_u64 response;
+  __aligned_u64 user_handle;
   __u32 pd_handle;
   __u32 send_cq_handle;
   __u32 recv_cq_handle;
@@ -451,7 +454,7 @@
   __u8 qp_type;
   __u8 is_srq;
   __u8 reserved;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 enum ib_uverbs_create_qp_mask {
   IB_UVERBS_CREATE_QP_MASK_IND_TABLE = 1UL << 0,
@@ -466,7 +469,7 @@
   IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25,
 };
 struct ib_uverbs_ex_create_qp {
-  __u64 user_handle;
+  __aligned_u64 user_handle;
   __u32 pd_handle;
   __u32 send_cq_handle;
   __u32 recv_cq_handle;
@@ -486,13 +489,13 @@
   __u32 source_qpn;
 };
 struct ib_uverbs_open_qp {
-  __u64 response;
-  __u64 user_handle;
+  __aligned_u64 response;
+  __aligned_u64 user_handle;
   __u32 pd_handle;
   __u32 qpn;
   __u8 qp_type;
   __u8 reserved[7];
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_create_qp_resp {
   __u32 qp_handle;
@@ -524,10 +527,10 @@
   __u8 port_num;
 };
 struct ib_uverbs_query_qp {
-  __u64 response;
+  __aligned_u64 response;
   __u32 qp_handle;
   __u32 attr_mask;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_query_qp_resp {
   struct ib_uverbs_qp_dest dest;
@@ -560,7 +563,7 @@
   __u8 alt_timeout;
   __u8 sq_sig_all;
   __u8 reserved[5];
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_modify_qp {
   struct ib_uverbs_qp_dest dest;
@@ -589,7 +592,7 @@
   __u8 alt_port_num;
   __u8 alt_timeout;
   __u8 reserved[2];
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_ex_modify_qp {
   struct ib_uverbs_modify_qp base;
@@ -603,7 +606,7 @@
   __u32 response_length;
 };
 struct ib_uverbs_destroy_qp {
-  __u64 response;
+  __aligned_u64 response;
   __u32 qp_handle;
   __u32 reserved;
 };
@@ -611,29 +614,29 @@
   __u32 events_reported;
 };
 struct ib_uverbs_sge {
-  __u64 addr;
+  __aligned_u64 addr;
   __u32 length;
   __u32 lkey;
 };
 struct ib_uverbs_send_wr {
-  __u64 wr_id;
+  __aligned_u64 wr_id;
   __u32 num_sge;
   __u32 opcode;
   __u32 send_flags;
   union {
-    __u32 imm_data;
+    __be32 imm_data;
     __u32 invalidate_rkey;
   } ex;
   union {
     struct {
-      __u64 remote_addr;
+      __aligned_u64 remote_addr;
       __u32 rkey;
       __u32 reserved;
     } rdma;
     struct {
-      __u64 remote_addr;
-      __u64 compare_add;
-      __u64 swap;
+      __aligned_u64 remote_addr;
+      __aligned_u64 compare_add;
+      __aligned_u64 swap;
       __u32 rkey;
       __u32 reserved;
     } atomic;
@@ -646,7 +649,7 @@
   } wr;
 };
 struct ib_uverbs_post_send {
-  __u64 response;
+  __aligned_u64 response;
   __u32 qp_handle;
   __u32 wr_count;
   __u32 sge_count;
@@ -657,12 +660,12 @@
   __u32 bad_wr;
 };
 struct ib_uverbs_recv_wr {
-  __u64 wr_id;
+  __aligned_u64 wr_id;
   __u32 num_sge;
   __u32 reserved;
 };
 struct ib_uverbs_post_recv {
-  __u64 response;
+  __aligned_u64 response;
   __u32 qp_handle;
   __u32 wr_count;
   __u32 sge_count;
@@ -673,7 +676,7 @@
   __u32 bad_wr;
 };
 struct ib_uverbs_post_srq_recv {
-  __u64 response;
+  __aligned_u64 response;
   __u32 srq_handle;
   __u32 wr_count;
   __u32 sge_count;
@@ -684,8 +687,8 @@
   __u32 bad_wr;
 };
 struct ib_uverbs_create_ah {
-  __u64 response;
-  __u64 user_handle;
+  __aligned_u64 response;
+  __aligned_u64 user_handle;
   __u32 pd_handle;
   __u32 reserved;
   struct ib_uverbs_ah_attr attr;
@@ -701,20 +704,20 @@
   __u32 qp_handle;
   __u16 mlid;
   __u16 reserved;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_detach_mcast {
   __u8 gid[16];
   __u32 qp_handle;
   __u16 mlid;
   __u16 reserved;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_flow_spec_hdr {
   __u32 type;
   __u16 size;
   __u16 reserved;
-  __u64 flow_spec_data[0];
+  __aligned_u64 flow_spec_data[0];
 };
 struct ib_uverbs_flow_eth_filter {
   __u8 dst_mac[6];
@@ -813,6 +816,18 @@
     };
   };
 };
+struct ib_uverbs_flow_spec_action_handle {
+  union {
+    struct ib_uverbs_flow_spec_hdr hdr;
+    struct {
+      __u32 type;
+      __u16 size;
+      __u16 reserved;
+    };
+  };
+  __u32 handle;
+  __u32 reserved1;
+};
 struct ib_uverbs_flow_tunnel_filter {
   __be32 tunnel_id;
 };
@@ -828,6 +843,22 @@
   struct ib_uverbs_flow_tunnel_filter val;
   struct ib_uverbs_flow_tunnel_filter mask;
 };
+struct ib_uverbs_flow_spec_esp_filter {
+  __u32 spi;
+  __u32 seq;
+};
+struct ib_uverbs_flow_spec_esp {
+  union {
+    struct ib_uverbs_flow_spec_hdr hdr;
+    struct {
+      __u32 type;
+      __u16 size;
+      __u16 reserved;
+    };
+  };
+  struct ib_uverbs_flow_spec_esp_filter val;
+  struct ib_uverbs_flow_spec_esp_filter mask;
+};
 struct ib_uverbs_flow_attr {
   __u32 type;
   __u16 size;
@@ -852,17 +883,17 @@
   __u32 flow_handle;
 };
 struct ib_uverbs_create_srq {
-  __u64 response;
-  __u64 user_handle;
+  __aligned_u64 response;
+  __aligned_u64 user_handle;
   __u32 pd_handle;
   __u32 max_wr;
   __u32 max_sge;
   __u32 srq_limit;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_create_xsrq {
-  __u64 response;
-  __u64 user_handle;
+  __aligned_u64 response;
+  __aligned_u64 user_handle;
   __u32 srq_type;
   __u32 pd_handle;
   __u32 max_wr;
@@ -871,7 +902,7 @@
   __u32 max_num_tags;
   __u32 xrcd_handle;
   __u32 cq_handle;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_create_srq_resp {
   __u32 srq_handle;
@@ -884,13 +915,13 @@
   __u32 attr_mask;
   __u32 max_wr;
   __u32 srq_limit;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_query_srq {
-  __u64 response;
+  __aligned_u64 response;
   __u32 srq_handle;
   __u32 reserved;
-  __u64 driver_data[0];
+  __aligned_u64 driver_data[0];
 };
 struct ib_uverbs_query_srq_resp {
   __u32 max_wr;
@@ -899,7 +930,7 @@
   __u32 reserved;
 };
 struct ib_uverbs_destroy_srq {
-  __u64 response;
+  __aligned_u64 response;
   __u32 srq_handle;
   __u32 reserved;
 };
@@ -909,7 +940,7 @@
 struct ib_uverbs_ex_create_wq {
   __u32 comp_mask;
   __u32 wq_type;
-  __u64 user_handle;
+  __aligned_u64 user_handle;
   __u32 pd_handle;
   __u32 cq_handle;
   __u32 max_wr;
diff --git a/libc/kernel/uapi/rdma/mlx4-abi.h b/libc/kernel/uapi/rdma/mlx4-abi.h
index 078b386..121762b 100644
--- a/libc/kernel/uapi/rdma/mlx4-abi.h
+++ b/libc/kernel/uapi/rdma/mlx4-abi.h
@@ -26,6 +26,9 @@
   __u16 bf_reg_size;
   __u16 bf_regs_per_page;
 };
+enum {
+  MLX4_USER_DEV_CAP_LARGE_CQE = 1L << 0,
+};
 struct mlx4_ib_alloc_ucontext_resp {
   __u32 dev_caps;
   __u32 qp_tab_size;
@@ -38,26 +41,26 @@
   __u32 reserved;
 };
 struct mlx4_ib_create_cq {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
 };
 struct mlx4_ib_create_cq_resp {
   __u32 cqn;
   __u32 reserved;
 };
 struct mlx4_ib_resize_cq {
-  __u64 buf_addr;
+  __aligned_u64 buf_addr;
 };
 struct mlx4_ib_create_srq {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
 };
 struct mlx4_ib_create_srq_resp {
   __u32 srqn;
   __u32 reserved;
 };
 struct mlx4_ib_create_qp_rss {
-  __u64 rx_hash_fields_mask;
+  __aligned_u64 rx_hash_fields_mask;
   __u8 rx_hash_function;
   __u8 reserved[7];
   __u8 rx_hash_key[40];
@@ -65,8 +68,8 @@
   __u32 reserved1;
 };
 struct mlx4_ib_create_qp {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
   __u8 log_sq_bb_count;
   __u8 log_sq_stride;
   __u8 sq_no_prefetch;
@@ -74,8 +77,8 @@
   __u32 inl_recv_sz;
 };
 struct mlx4_ib_create_wq {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
   __u8 log_range_size;
   __u8 reserved[3];
   __u32 comp_mask;
@@ -99,6 +102,28 @@
   MLX4_IB_RX_HASH_SRC_PORT_TCP = 1 << 4,
   MLX4_IB_RX_HASH_DST_PORT_TCP = 1 << 5,
   MLX4_IB_RX_HASH_SRC_PORT_UDP = 1 << 6,
-  MLX4_IB_RX_HASH_DST_PORT_UDP = 1 << 7
+  MLX4_IB_RX_HASH_DST_PORT_UDP = 1 << 7,
+  MLX4_IB_RX_HASH_INNER = 1ULL << 31,
+};
+struct mlx4_ib_rss_caps {
+  __aligned_u64 rx_hash_fields_mask;
+  __u8 rx_hash_function;
+  __u8 reserved[7];
+};
+enum query_device_resp_mask {
+  MLX4_IB_QUERY_DEV_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
+};
+struct mlx4_ib_tso_caps {
+  __u32 max_tso;
+  __u32 supported_qpts;
+};
+struct mlx4_uverbs_ex_query_device_resp {
+  __u32 comp_mask;
+  __u32 response_length;
+  __aligned_u64 hca_core_clock_offset;
+  __u32 max_inl_recv_sz;
+  __u32 reserved;
+  struct mlx4_ib_rss_caps rss_caps;
+  struct mlx4_ib_tso_caps tso_caps;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h
index 9347cf3..170c0a6 100644
--- a/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -24,6 +24,9 @@
   MLX5_QP_FLAG_SIGNATURE = 1 << 0,
   MLX5_QP_FLAG_SCATTER_CQE = 1 << 1,
   MLX5_QP_FLAG_TUNNEL_OFFLOADS = 1 << 2,
+  MLX5_QP_FLAG_BFREG_INDEX = 1 << 3,
+  MLX5_QP_FLAG_TYPE_DCT = 1 << 4,
+  MLX5_QP_FLAG_TYPE_DCI = 1 << 5,
 };
 enum {
   MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
@@ -48,7 +51,7 @@
   __u8 reserved0;
   __u16 reserved1;
   __u32 reserved2;
-  __u64 lib_caps;
+  __aligned_u64 lib_caps;
 };
 enum mlx5_ib_alloc_ucontext_resp_mask {
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
@@ -64,6 +67,13 @@
   MLX5_USER_INLINE_MODE_IP,
   MLX5_USER_INLINE_MODE_TCP_UDP,
 };
+enum {
+  MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM = 1 << 0,
+  MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_REQ_METADATA = 1 << 1,
+  MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_SPI_STEERING = 1 << 2,
+  MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_FULL_OFFLOAD = 1 << 3,
+  MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_TX_IV_IS_ESN = 1 << 4,
+};
 struct mlx5_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
   __u32 bf_reg_size;
@@ -75,16 +85,18 @@
   __u32 max_recv_wr;
   __u32 max_srq_recv_wr;
   __u16 num_ports;
-  __u16 reserved1;
+  __u16 flow_action_flags;
   __u32 comp_mask;
   __u32 response_length;
   __u8 cqe_version;
   __u8 cmds_supp_uhw;
   __u8 eth_min_inline;
-  __u8 reserved2;
-  __u64 hca_core_clock_offset;
+  __u8 clock_info_versions;
+  __aligned_u64 hca_core_clock_offset;
   __u32 log_uar_size;
   __u32 num_uars_per_page;
+  __u32 num_dyn_bfregs;
+  __u32 reserved3;
 };
 struct mlx5_ib_alloc_pd_resp {
   __u32 pdn;
@@ -94,7 +106,7 @@
   __u32 supported_qpts;
 };
 struct mlx5_ib_rss_caps {
-  __u64 rx_hash_fields_mask;
+  __aligned_u64 rx_hash_fields_mask;
   __u8 rx_hash_function;
   __u8 reserved[7];
 };
@@ -107,11 +119,15 @@
   __u32 max_num;
   __u32 supported_format;
 };
+enum mlx5_ib_packet_pacing_cap_flags {
+  MLX5_IB_PP_SUPPORT_BURST = 1 << 0,
+};
 struct mlx5_packet_pacing_caps {
   __u32 qp_rate_limit_min;
   __u32 qp_rate_limit_max;
   __u32 supported_qpts;
-  __u32 reserved;
+  __u8 cap_flags;
+  __u8 reserved[3];
 };
 enum mlx5_ib_mpw_caps {
   MPW_RESERVED = 1 << 0,
@@ -162,8 +178,8 @@
   MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
 };
 struct mlx5_ib_create_cq {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
   __u32 cqe_size;
   __u8 cqe_comp_en;
   __u8 cqe_comp_res_format;
@@ -174,14 +190,14 @@
   __u32 reserved;
 };
 struct mlx5_ib_resize_cq {
-  __u64 buf_addr;
+  __aligned_u64 buf_addr;
   __u16 cqe_size;
   __u16 reserved0;
   __u32 reserved1;
 };
 struct mlx5_ib_create_srq {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
   __u32 flags;
   __u32 reserved0;
   __u32 uidx;
@@ -192,15 +208,18 @@
   __u32 reserved;
 };
 struct mlx5_ib_create_qp {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
   __u32 sq_wqe_count;
   __u32 rq_wqe_count;
   __u32 rq_wqe_shift;
   __u32 flags;
   __u32 uidx;
-  __u32 reserved0;
-  __u64 sq_buf_addr;
+  __u32 bfreg_index;
+  union {
+    __aligned_u64 sq_buf_addr;
+    __aligned_u64 access_key;
+  };
 };
 enum mlx5_rx_hash_function_flags {
   MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
@@ -214,10 +233,11 @@
   MLX5_RX_HASH_DST_PORT_TCP = 1 << 5,
   MLX5_RX_HASH_SRC_PORT_UDP = 1 << 6,
   MLX5_RX_HASH_DST_PORT_UDP = 1 << 7,
-  MLX5_RX_HASH_INNER = 1 << 31
+  MLX5_RX_HASH_IPSEC_SPI = 1 << 8,
+  MLX5_RX_HASH_INNER = (1UL << 31),
 };
 struct mlx5_ib_create_qp_rss {
-  __u64 rx_hash_fields_mask;
+  __aligned_u64 rx_hash_fields_mask;
   __u8 rx_hash_function;
   __u8 rx_key_len;
   __u8 reserved[6];
@@ -227,6 +247,7 @@
 };
 struct mlx5_ib_create_qp_resp {
   __u32 bfreg_index;
+  __u32 reserved;
 };
 struct mlx5_ib_alloc_mw {
   __u32 comp_mask;
@@ -238,8 +259,8 @@
   MLX5_IB_CREATE_WQ_STRIDING_RQ = (1 << 0),
 };
 struct mlx5_ib_create_wq {
-  __u64 buf_addr;
-  __u64 db_addr;
+  __aligned_u64 buf_addr;
+  __aligned_u64 db_addr;
   __u32 rq_wqe_count;
   __u32 rq_wqe_shift;
   __u32 user_index;
@@ -254,6 +275,20 @@
   __u8 dmac[ETH_ALEN];
   __u8 reserved[6];
 };
+struct mlx5_ib_burst_info {
+  __u32 max_burst_sz;
+  __u16 typical_pkt_sz;
+  __u16 reserved;
+};
+struct mlx5_ib_modify_qp {
+  __u32 comp_mask;
+  struct mlx5_ib_burst_info burst_info;
+  __u32 reserved;
+};
+struct mlx5_ib_modify_qp_resp {
+  __u32 response_length;
+  __u32 dctn;
+};
 struct mlx5_ib_create_wq_resp {
   __u32 response_length;
   __u32 reserved;
@@ -266,4 +301,31 @@
   __u32 comp_mask;
   __u32 reserved;
 };
+struct mlx5_ib_clock_info {
+  __u32 sign;
+  __u32 resv;
+  __aligned_u64 nsec;
+  __aligned_u64 cycles;
+  __aligned_u64 frac;
+  __u32 mult;
+  __u32 shift;
+  __aligned_u64 mask;
+  __aligned_u64 overflow_period;
+};
+enum mlx5_ib_mmap_cmd {
+  MLX5_IB_MMAP_REGULAR_PAGE = 0,
+  MLX5_IB_MMAP_GET_CONTIGUOUS_PAGES = 1,
+  MLX5_IB_MMAP_WC_PAGE = 2,
+  MLX5_IB_MMAP_NC_PAGE = 3,
+  MLX5_IB_MMAP_CORE_CLOCK = 5,
+  MLX5_IB_MMAP_ALLOC_WC = 6,
+  MLX5_IB_MMAP_CLOCK_INFO = 7,
+  MLX5_IB_MMAP_DEVICE_MEM = 8,
+};
+enum {
+  MLX5_IB_CLOCK_INFO_KERNEL_UPDATING = 1,
+};
+enum {
+  MLX5_IB_CLOCK_INFO_V1 = 0,
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
new file mode 100644
index 0000000..37aebaf
--- /dev/null
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -0,0 +1,29 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 MLX5_USER_IOCTL_CMDS_H
+#define MLX5_USER_IOCTL_CMDS_H
+#include <rdma/ib_user_ioctl_cmds.h>
+enum mlx5_ib_create_flow_action_attrs {
+  MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_alloc_dm_attrs {
+  MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
+};
+#endif
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
new file mode 100644
index 0000000..c9a83cf
--- /dev/null
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -0,0 +1,25 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 MLX5_USER_IOCTL_VERBS_H
+#define MLX5_USER_IOCTL_VERBS_H
+#include <linux/types.h>
+enum mlx5_ib_uapi_flow_action_flags {
+  MLX5_IB_UAPI_FLOW_ACTION_FLAGS_REQUIRE_METADATA = 1 << 0,
+};
+#endif
diff --git a/libc/kernel/uapi/rdma/mthca-abi.h b/libc/kernel/uapi/rdma/mthca-abi.h
index 49d1df0..86224f2 100644
--- a/libc/kernel/uapi/rdma/mthca-abi.h
+++ b/libc/kernel/uapi/rdma/mthca-abi.h
@@ -36,8 +36,8 @@
 struct mthca_create_cq {
   __u32 lkey;
   __u32 pdn;
-  __u64 arm_db_page;
-  __u64 set_db_page;
+  __aligned_u64 arm_db_page;
+  __aligned_u64 set_db_page;
   __u32 arm_db_index;
   __u32 set_db_index;
 };
@@ -52,7 +52,7 @@
 struct mthca_create_srq {
   __u32 lkey;
   __u32 db_index;
-  __u64 db_page;
+  __aligned_u64 db_page;
 };
 struct mthca_create_srq_resp {
   __u32 srqn;
@@ -61,8 +61,8 @@
 struct mthca_create_qp {
   __u32 lkey;
   __u32 reserved;
-  __u64 sq_db_page;
-  __u64 rq_db_page;
+  __aligned_u64 sq_db_page;
+  __aligned_u64 rq_db_page;
   __u32 sq_db_index;
   __u32 rq_db_index;
 };
diff --git a/libc/kernel/uapi/rdma/nes-abi.h b/libc/kernel/uapi/rdma/nes-abi.h
index 1545e18..724852e 100644
--- a/libc/kernel/uapi/rdma/nes-abi.h
+++ b/libc/kernel/uapi/rdma/nes-abi.h
@@ -39,13 +39,13 @@
   __u32 mmap_db_index;
 };
 struct nes_create_cq_req {
-  __u64 user_cq_buffer;
+  __aligned_u64 user_cq_buffer;
   __u32 mcrqf;
   __u8 reserved[4];
 };
 struct nes_create_qp_req {
-  __u64 user_wqe_buffers;
-  __u64 user_qp_buffer;
+  __aligned_u64 user_wqe_buffers;
+  __aligned_u64 user_qp_buffer;
 };
 enum iwnes_memreg_type {
   IWNES_MEMREG_TYPE_MEM = 0x0000,
diff --git a/libc/kernel/uapi/rdma/ocrdma-abi.h b/libc/kernel/uapi/rdma/ocrdma-abi.h
index f909632..007f0e1 100644
--- a/libc/kernel/uapi/rdma/ocrdma-abi.h
+++ b/libc/kernel/uapi/rdma/ocrdma-abi.h
@@ -26,22 +26,22 @@
   __u32 wqe_size;
   __u32 max_inline_data;
   __u32 dpp_wqe_size;
-  __u64 ah_tbl_page;
+  __aligned_u64 ah_tbl_page;
   __u32 ah_tbl_len;
   __u32 rqe_size;
   __u8 fw_ver[32];
-  __u64 rsvd1;
-  __u64 rsvd2;
+  __aligned_u64 rsvd1;
+  __aligned_u64 rsvd2;
 };
 struct ocrdma_alloc_pd_ureq {
-  __u64 rsvd1;
+  __u32 rsvd[2];
 };
 struct ocrdma_alloc_pd_uresp {
   __u32 id;
   __u32 dpp_enabled;
   __u32 dpp_page_addr_hi;
   __u32 dpp_page_addr_lo;
-  __u64 rsvd1;
+  __u32 rsvd[2];
 };
 struct ocrdma_create_cq_ureq {
   __u32 dpp_cq;
@@ -53,12 +53,12 @@
   __u32 page_size;
   __u32 num_pages;
   __u32 max_hw_cqe;
-  __u64 page_addr[MAX_CQ_PAGES];
-  __u64 db_page_addr;
+  __aligned_u64 page_addr[MAX_CQ_PAGES];
+  __aligned_u64 db_page_addr;
   __u32 db_page_size;
   __u32 phase_change;
-  __u64 rsvd1;
-  __u64 rsvd2;
+  __aligned_u64 rsvd1;
+  __aligned_u64 rsvd2;
 };
 #define MAX_QP_PAGES 8
 #define MAX_UD_AV_PAGES 8
@@ -77,9 +77,9 @@
   __u32 rq_page_size;
   __u32 num_sq_pages;
   __u32 num_rq_pages;
-  __u64 sq_page_addr[MAX_QP_PAGES];
-  __u64 rq_page_addr[MAX_QP_PAGES];
-  __u64 db_page_addr;
+  __aligned_u64 sq_page_addr[MAX_QP_PAGES];
+  __aligned_u64 rq_page_addr[MAX_QP_PAGES];
+  __aligned_u64 db_page_addr;
   __u32 db_page_size;
   __u32 dpp_credit;
   __u32 dpp_offset;
@@ -88,21 +88,21 @@
   __u32 db_sq_offset;
   __u32 db_rq_offset;
   __u32 db_shift;
-  __u64 rsvd[11];
-} __packed;
+  __aligned_u64 rsvd[11];
+};
 struct ocrdma_create_srq_uresp {
   __u16 rq_dbid;
   __u16 resv0;
   __u32 resv1;
   __u32 rq_page_size;
   __u32 num_rq_pages;
-  __u64 rq_page_addr[MAX_QP_PAGES];
-  __u64 db_page_addr;
+  __aligned_u64 rq_page_addr[MAX_QP_PAGES];
+  __aligned_u64 db_page_addr;
   __u32 db_page_size;
   __u32 num_rqe_allocated;
   __u32 db_rq_offset;
   __u32 db_shift;
-  __u64 rsvd2;
-  __u64 rsvd3;
+  __aligned_u64 rsvd2;
+  __aligned_u64 rsvd3;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/qedr-abi.h b/libc/kernel/uapi/rdma/qedr-abi.h
index 55af44b..8626f8c 100644
--- a/libc/kernel/uapi/rdma/qedr-abi.h
+++ b/libc/kernel/uapi/rdma/qedr-abi.h
@@ -21,7 +21,7 @@
 #include <linux/types.h>
 #define QEDR_ABI_VERSION (8)
 struct qedr_alloc_ucontext_resp {
-  __u64 db_pa;
+  __aligned_u64 db_pa;
   __u32 db_size;
   __u32 max_send_wr;
   __u32 max_recv_wr;
@@ -33,28 +33,31 @@
   __u8 dpm_enabled;
   __u8 wids_enabled;
   __u16 wid_count;
+  __u32 reserved;
 };
 struct qedr_alloc_pd_ureq {
-  __u64 rsvd1;
+  __aligned_u64 rsvd1;
 };
 struct qedr_alloc_pd_uresp {
   __u32 pd_id;
+  __u32 reserved;
 };
 struct qedr_create_cq_ureq {
-  __u64 addr;
-  __u64 len;
+  __aligned_u64 addr;
+  __aligned_u64 len;
 };
 struct qedr_create_cq_uresp {
   __u32 db_offset;
   __u16 icid;
+  __u16 reserved;
 };
 struct qedr_create_qp_ureq {
   __u32 qp_handle_hi;
   __u32 qp_handle_lo;
-  __u64 sq_addr;
-  __u64 sq_len;
-  __u64 rq_addr;
-  __u64 rq_len;
+  __aligned_u64 sq_addr;
+  __aligned_u64 sq_len;
+  __aligned_u64 rq_addr;
+  __aligned_u64 rq_len;
 };
 struct qedr_create_qp_uresp {
   __u32 qp_id;
@@ -64,5 +67,6 @@
   __u32 rq_db_offset;
   __u16 rq_icid;
   __u32 rq_db2_offset;
+  __u32 reserved;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/rdma_netlink.h b/libc/kernel/uapi/rdma/rdma_netlink.h
index c7bcb6d..36c8911 100644
--- a/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -173,13 +173,13 @@
 enum rdma_nldev_command {
   RDMA_NLDEV_CMD_UNSPEC,
   RDMA_NLDEV_CMD_GET,
-  RDMA_NLDEV_CMD_SET,
-  RDMA_NLDEV_CMD_NEW,
-  RDMA_NLDEV_CMD_DEL,
-  RDMA_NLDEV_CMD_PORT_GET,
-  RDMA_NLDEV_CMD_PORT_SET,
-  RDMA_NLDEV_CMD_PORT_NEW,
-  RDMA_NLDEV_CMD_PORT_DEL,
+  RDMA_NLDEV_CMD_PORT_GET = 5,
+  RDMA_NLDEV_CMD_RES_GET = 9,
+  RDMA_NLDEV_CMD_RES_QP_GET,
+  RDMA_NLDEV_CMD_RES_CM_ID_GET,
+  RDMA_NLDEV_CMD_RES_CQ_GET,
+  RDMA_NLDEV_CMD_RES_MR_GET,
+  RDMA_NLDEV_CMD_RES_PD_GET,
   RDMA_NLDEV_NUM_OPS
 };
 enum rdma_nldev_attr {
@@ -198,6 +198,43 @@
   RDMA_NLDEV_ATTR_PORT_STATE,
   RDMA_NLDEV_ATTR_PORT_PHYS_STATE,
   RDMA_NLDEV_ATTR_DEV_NODE_TYPE,
+  RDMA_NLDEV_ATTR_RES_SUMMARY,
+  RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_NAME,
+  RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_CURR,
+  RDMA_NLDEV_ATTR_RES_QP,
+  RDMA_NLDEV_ATTR_RES_QP_ENTRY,
+  RDMA_NLDEV_ATTR_RES_LQPN,
+  RDMA_NLDEV_ATTR_RES_RQPN,
+  RDMA_NLDEV_ATTR_RES_RQ_PSN,
+  RDMA_NLDEV_ATTR_RES_SQ_PSN,
+  RDMA_NLDEV_ATTR_RES_PATH_MIG_STATE,
+  RDMA_NLDEV_ATTR_RES_TYPE,
+  RDMA_NLDEV_ATTR_RES_STATE,
+  RDMA_NLDEV_ATTR_RES_PID,
+  RDMA_NLDEV_ATTR_RES_KERN_NAME,
+  RDMA_NLDEV_ATTR_RES_CM_ID,
+  RDMA_NLDEV_ATTR_RES_CM_ID_ENTRY,
+  RDMA_NLDEV_ATTR_RES_PS,
+  RDMA_NLDEV_ATTR_RES_SRC_ADDR,
+  RDMA_NLDEV_ATTR_RES_DST_ADDR,
+  RDMA_NLDEV_ATTR_RES_CQ,
+  RDMA_NLDEV_ATTR_RES_CQ_ENTRY,
+  RDMA_NLDEV_ATTR_RES_CQE,
+  RDMA_NLDEV_ATTR_RES_USECNT,
+  RDMA_NLDEV_ATTR_RES_POLL_CTX,
+  RDMA_NLDEV_ATTR_RES_MR,
+  RDMA_NLDEV_ATTR_RES_MR_ENTRY,
+  RDMA_NLDEV_ATTR_RES_RKEY,
+  RDMA_NLDEV_ATTR_RES_LKEY,
+  RDMA_NLDEV_ATTR_RES_IOVA,
+  RDMA_NLDEV_ATTR_RES_MRLEN,
+  RDMA_NLDEV_ATTR_RES_PD,
+  RDMA_NLDEV_ATTR_RES_PD_ENTRY,
+  RDMA_NLDEV_ATTR_RES_LOCAL_DMA_LKEY,
+  RDMA_NLDEV_ATTR_RES_UNSAFE_GLOBAL_RKEY,
+  RDMA_NLDEV_ATTR_NDEV_INDEX,
+  RDMA_NLDEV_ATTR_NDEV_NAME,
   RDMA_NLDEV_ATTR_MAX
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/rdma_user_cm.h b/libc/kernel/uapi/rdma/rdma_user_cm.h
index 24e0f2e..b200491 100644
--- a/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -50,14 +50,20 @@
   RDMA_USER_CM_CMD_RESOLVE_ADDR,
   RDMA_USER_CM_CMD_JOIN_MCAST
 };
+enum rdma_ucm_port_space {
+  RDMA_PS_IPOIB = 0x0002,
+  RDMA_PS_IB = 0x013F,
+  RDMA_PS_TCP = 0x0106,
+  RDMA_PS_UDP = 0x0111,
+};
 struct rdma_ucm_cmd_hdr {
   __u32 cmd;
   __u16 in;
   __u16 out;
 };
 struct rdma_ucm_create_id {
-  __u64 uid;
-  __u64 response;
+  __aligned_u64 uid;
+  __aligned_u64 response;
   __u16 ps;
   __u8 qp_type;
   __u8 reserved[5];
@@ -66,7 +72,7 @@
   __u32 id;
 };
 struct rdma_ucm_destroy_id {
-  __u64 response;
+  __aligned_u64 response;
   __u32 id;
   __u32 reserved;
 };
@@ -74,7 +80,7 @@
   __u32 events_reported;
 };
 struct rdma_ucm_bind_ip {
-  __u64 response;
+  __aligned_u64 response;
   struct sockaddr_in6 addr;
   __u32 id;
 };
@@ -109,12 +115,12 @@
   RDMA_USER_CM_QUERY_GID
 };
 struct rdma_ucm_query {
-  __u64 response;
+  __aligned_u64 response;
   __u32 id;
   __u32 option;
 };
 struct rdma_ucm_query_route_resp {
-  __u64 node_guid;
+  __aligned_u64 node_guid;
   struct ib_user_path_rec ib_route[2];
   struct sockaddr_in6 src_addr;
   struct sockaddr_in6 dst_addr;
@@ -123,7 +129,7 @@
   __u8 reserved[3];
 };
 struct rdma_ucm_query_addr_resp {
-  __u64 node_guid;
+  __aligned_u64 node_guid;
   __u8 port_num;
   __u8 reserved;
   __u16 pkey;
@@ -168,7 +174,7 @@
   __u32 backlog;
 };
 struct rdma_ucm_accept {
-  __u64 uid;
+  __aligned_u64 uid;
   struct rdma_ucm_conn_param conn_param;
   __u32 id;
   __u32 reserved;
@@ -183,7 +189,7 @@
   __u32 id;
 };
 struct rdma_ucm_init_qp_attr {
-  __u64 response;
+  __aligned_u64 response;
   __u32 id;
   __u32 qp_state;
 };
@@ -192,8 +198,8 @@
   __u32 event;
 };
 struct rdma_ucm_join_ip_mcast {
-  __u64 response;
-  __u64 uid;
+  __aligned_u64 response;
+  __aligned_u64 uid;
   struct sockaddr_in6 addr;
   __u32 id;
 };
@@ -203,18 +209,18 @@
   RDMA_MC_JOIN_FLAG_RESERVED,
 };
 struct rdma_ucm_join_mcast {
-  __u64 response;
-  __u64 uid;
+  __aligned_u64 response;
+  __aligned_u64 uid;
   __u32 id;
   __u16 addr_size;
   __u16 join_flags;
   struct sockaddr_storage addr;
 };
 struct rdma_ucm_get_event {
-  __u64 response;
+  __aligned_u64 response;
 };
 struct rdma_ucm_event_resp {
-  __u64 uid;
+  __aligned_u64 uid;
   __u32 id;
   __u32 event;
   __u32 status;
@@ -222,6 +228,7 @@
     struct rdma_ucm_conn_param conn;
     struct rdma_ucm_ud_param ud;
   } param;
+  __u32 reserved;
 };
 enum {
   RDMA_OPTION_ID = 0,
@@ -234,14 +241,14 @@
   RDMA_OPTION_IB_PATH = 1
 };
 struct rdma_ucm_set_option {
-  __u64 optval;
+  __aligned_u64 optval;
   __u32 id;
   __u32 level;
   __u32 optname;
   __u32 optlen;
 };
 struct rdma_ucm_migrate_id {
-  __u64 response;
+  __aligned_u64 response;
   __u32 id;
   __u32 fd;
 };
diff --git a/libc/kernel/uapi/rdma/rdma_user_ioctl.h b/libc/kernel/uapi/rdma/rdma_user_ioctl.h
index 41c11bc..2f532d3 100644
--- a/libc/kernel/uapi/rdma/rdma_user_ioctl.h
+++ b/libc/kernel/uapi/rdma/rdma_user_ioctl.h
@@ -18,34 +18,10 @@
  ****************************************************************************/
 #ifndef RDMA_USER_IOCTL_H
 #define RDMA_USER_IOCTL_H
-#include <linux/types.h>
-#include <linux/ioctl.h>
 #include <rdma/ib_user_mad.h>
 #include <rdma/hfi/hfi1_ioctl.h>
-#define RDMA_IOCTL_MAGIC 0x1b
+#include <rdma/rdma_user_ioctl_cmds.h>
 #define IB_IOCTL_MAGIC RDMA_IOCTL_MAGIC
-#define RDMA_VERBS_IOCTL _IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
-#define UVERBS_ID_NS_MASK 0xF000
-#define UVERBS_ID_NS_SHIFT 12
-enum {
-  UVERBS_ATTR_F_MANDATORY = 1U << 0,
-  UVERBS_ATTR_F_VALID_OUTPUT = 1U << 1,
-};
-struct ib_uverbs_attr {
-  __u16 attr_id;
-  __u16 len;
-  __u16 flags;
-  __u16 reserved;
-  __u64 data;
-};
-struct ib_uverbs_ioctl_hdr {
-  __u16 length;
-  __u16 object_id;
-  __u16 method_id;
-  __u16 num_attrs;
-  __u64 reserved;
-  struct ib_uverbs_attr attrs[0];
-};
 #define IB_USER_MAD_REGISTER_AGENT _IOWR(RDMA_IOCTL_MAGIC, 0x01, struct ib_user_mad_reg_req)
 #define IB_USER_MAD_UNREGISTER_AGENT _IOW(RDMA_IOCTL_MAGIC, 0x02, __u32)
 #define IB_USER_MAD_ENABLE_PKEY _IO(RDMA_IOCTL_MAGIC, 0x03)
diff --git a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
new file mode 100644
index 0000000..5da7917
--- /dev/null
+++ b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
@@ -0,0 +1,71 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 RDMA_USER_IOCTL_CMDS_H
+#define RDMA_USER_IOCTL_CMDS_H
+#include <linux/types.h>
+#include <linux/ioctl.h>
+#define RDMA_IOCTL_MAGIC 0x1b
+#define RDMA_VERBS_IOCTL _IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
+enum {
+  UVERBS_ATTR_F_MANDATORY = 1U << 0,
+  UVERBS_ATTR_F_VALID_OUTPUT = 1U << 1,
+};
+struct ib_uverbs_attr {
+  __u16 attr_id;
+  __u16 len;
+  __u16 flags;
+  union {
+    struct {
+      __u8 elem_id;
+      __u8 reserved;
+    } enum_data;
+    __u16 reserved;
+  } attr_data;
+  __aligned_u64 data;
+};
+struct ib_uverbs_ioctl_hdr {
+  __u16 length;
+  __u16 object_id;
+  __u16 method_id;
+  __u16 num_attrs;
+  __aligned_u64 reserved1;
+  __u32 driver_id;
+  __u32 reserved2;
+  struct ib_uverbs_attr attrs[0];
+};
+enum rdma_driver_id {
+  RDMA_DRIVER_UNKNOWN,
+  RDMA_DRIVER_MLX5,
+  RDMA_DRIVER_MLX4,
+  RDMA_DRIVER_CXGB3,
+  RDMA_DRIVER_CXGB4,
+  RDMA_DRIVER_MTHCA,
+  RDMA_DRIVER_BNXT_RE,
+  RDMA_DRIVER_OCRDMA,
+  RDMA_DRIVER_NES,
+  RDMA_DRIVER_I40IW,
+  RDMA_DRIVER_VMW_PVRDMA,
+  RDMA_DRIVER_QEDR,
+  RDMA_DRIVER_HNS,
+  RDMA_DRIVER_USNIC,
+  RDMA_DRIVER_RXE,
+  RDMA_DRIVER_HFI1,
+  RDMA_DRIVER_QIB,
+};
+#endif
diff --git a/libc/kernel/uapi/rdma/rdma_user_rxe.h b/libc/kernel/uapi/rdma/rdma_user_rxe.h
index 8d1bbd0..a57ed1a 100644
--- a/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -19,6 +19,9 @@
 #ifndef RDMA_USER_RXE_H
 #define RDMA_USER_RXE_H
 #include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/in.h>
+#include <linux/in6.h>
 union rxe_gid {
   __u8 raw[16];
   struct {
@@ -36,15 +39,16 @@
 struct rxe_av {
   __u8 port_num;
   __u8 network_type;
+  __u16 reserved1;
+  __u32 reserved2;
   struct rxe_global_route grh;
   union {
-    struct sockaddr _sockaddr;
     struct sockaddr_in _sockaddr_in;
     struct sockaddr_in6 _sockaddr_in6;
   } sgid_addr, dgid_addr;
 };
 struct rxe_send_wr {
-  __u64 wr_id;
+  __aligned_u64 wr_id;
   __u32 num_sge;
   __u32 opcode;
   __u32 send_flags;
@@ -54,14 +58,16 @@
   } ex;
   union {
     struct {
-      __u64 remote_addr;
+      __aligned_u64 remote_addr;
       __u32 rkey;
+      __u32 reserved;
     } rdma;
     struct {
-      __u64 remote_addr;
-      __u64 compare_add;
-      __u64 swap;
+      __aligned_u64 remote_addr;
+      __aligned_u64 compare_add;
+      __aligned_u64 swap;
       __u32 rkey;
+      __u32 reserved;
     } atomic;
     struct {
       __u32 remote_qpn;
@@ -69,19 +75,22 @@
       __u16 pkey_index;
     } ud;
     struct {
-      struct ib_mr * mr;
+      union {
+        struct ib_mr * mr;
+        __aligned_u64 reserved;
+      };
       __u32 key;
-      int access;
+      __u32 access;
     } reg;
   } wr;
 };
 struct rxe_sge {
-  __u64 addr;
+  __aligned_u64 addr;
   __u32 length;
   __u32 lkey;
 };
 struct mminfo {
-  __u64 offset;
+  __aligned_u64 offset;
   __u32 size;
   __u32 pad;
 };
@@ -91,6 +100,7 @@
   __u32 cur_sge;
   __u32 num_sge;
   __u32 sge_offset;
+  __u32 reserved;
   union {
     __u8 inline_data[0];
     struct rxe_sge sge[0];
@@ -101,7 +111,7 @@
   struct rxe_av av;
   __u32 status;
   __u32 state;
-  __u64 iova;
+  __aligned_u64 iova;
   __u32 mask;
   __u32 first_psn;
   __u32 last_psn;
@@ -111,9 +121,27 @@
   struct rxe_dma_info dma;
 };
 struct rxe_recv_wqe {
-  __u64 wr_id;
+  __aligned_u64 wr_id;
   __u32 num_sge;
   __u32 padding;
   struct rxe_dma_info dma;
 };
+struct rxe_create_cq_resp {
+  struct mminfo mi;
+};
+struct rxe_resize_cq_resp {
+  struct mminfo mi;
+};
+struct rxe_create_qp_resp {
+  struct mminfo rq_mi;
+  struct mminfo sq_mi;
+};
+struct rxe_create_srq_resp {
+  struct mminfo mi;
+  __u32 srq_num;
+  __u32 reserved;
+};
+struct rxe_modify_srq_cmd {
+  __aligned_u64 mmap_info_addr;
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
index 7c13680..7b43e35 100644
--- a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
+++ b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h
@@ -22,12 +22,14 @@
 #define PVRDMA_UVERBS_ABI_VERSION 3
 #define PVRDMA_UAR_HANDLE_MASK 0x00FFFFFF
 #define PVRDMA_UAR_QP_OFFSET 0
-#define PVRDMA_UAR_QP_SEND BIT(30)
-#define PVRDMA_UAR_QP_RECV BIT(31)
+#define PVRDMA_UAR_QP_SEND (1 << 30)
+#define PVRDMA_UAR_QP_RECV (1 << 31)
 #define PVRDMA_UAR_CQ_OFFSET 4
-#define PVRDMA_UAR_CQ_ARM_SOL BIT(29)
-#define PVRDMA_UAR_CQ_ARM BIT(30)
-#define PVRDMA_UAR_CQ_POLL BIT(31)
+#define PVRDMA_UAR_CQ_ARM_SOL (1 << 29)
+#define PVRDMA_UAR_CQ_ARM (1 << 30)
+#define PVRDMA_UAR_CQ_POLL (1 << 31)
+#define PVRDMA_UAR_SRQ_OFFSET 8
+#define PVRDMA_UAR_SRQ_RECV (1 << 30)
 enum pvrdma_wr_opcode {
   PVRDMA_WR_RDMA_WRITE,
   PVRDMA_WR_RDMA_WRITE_WITH_IMM,
@@ -104,7 +106,7 @@
   __u32 reserved;
 };
 struct pvrdma_create_cq {
-  __u64 buf_addr;
+  __aligned_u64 buf_addr;
   __u32 buf_size;
   __u32 reserved;
 };
@@ -113,12 +115,12 @@
   __u32 reserved;
 };
 struct pvrdma_resize_cq {
-  __u64 buf_addr;
+  __aligned_u64 buf_addr;
   __u32 buf_size;
   __u32 reserved;
 };
 struct pvrdma_create_srq {
-  __u64 buf_addr;
+  __aligned_u64 buf_addr;
   __u32 buf_size;
   __u32 reserved;
 };
@@ -127,21 +129,21 @@
   __u32 reserved;
 };
 struct pvrdma_create_qp {
-  __u64 rbuf_addr;
-  __u64 sbuf_addr;
+  __aligned_u64 rbuf_addr;
+  __aligned_u64 sbuf_addr;
   __u32 rbuf_size;
   __u32 sbuf_size;
-  __u64 qp_addr;
+  __aligned_u64 qp_addr;
 };
 struct pvrdma_ex_cmp_swap {
-  __u64 swap_val;
-  __u64 compare_val;
-  __u64 swap_mask;
-  __u64 compare_mask;
+  __aligned_u64 swap_val;
+  __aligned_u64 compare_val;
+  __aligned_u64 swap_mask;
+  __aligned_u64 compare_mask;
 };
 struct pvrdma_ex_fetch_add {
-  __u64 add_val;
-  __u64 field_boundary;
+  __aligned_u64 add_val;
+  __aligned_u64 field_boundary;
 };
 struct pvrdma_av {
   __u32 port_pd;
@@ -155,17 +157,17 @@
   __u8 reserved[6];
 };
 struct pvrdma_sge {
-  __u64 addr;
+  __aligned_u64 addr;
   __u32 length;
   __u32 lkey;
 };
 struct pvrdma_rq_wqe_hdr {
-  __u64 wr_id;
+  __aligned_u64 wr_id;
   __u32 num_sge;
   __u32 total_len;
 };
 struct pvrdma_sq_wqe_hdr {
-  __u64 wr_id;
+  __aligned_u64 wr_id;
   __u32 num_sge;
   __u32 total_len;
   __u32 opcode;
@@ -177,19 +179,19 @@
   __u32 reserved;
   union {
     struct {
-      __u64 remote_addr;
+      __aligned_u64 remote_addr;
       __u32 rkey;
       __u8 reserved[4];
     } rdma;
     struct {
-      __u64 remote_addr;
-      __u64 compare_add;
-      __u64 swap;
+      __aligned_u64 remote_addr;
+      __aligned_u64 compare_add;
+      __aligned_u64 swap;
       __u32 rkey;
       __u32 reserved;
     } atomic;
     struct {
-      __u64 remote_addr;
+      __aligned_u64 remote_addr;
       __u32 log_arg_sz;
       __u32 rkey;
       union {
@@ -198,13 +200,14 @@
       } wr_data;
     } masked_atomics;
     struct {
-      __u64 iova_start;
-      __u64 pl_pdir_dma;
+      __aligned_u64 iova_start;
+      __aligned_u64 pl_pdir_dma;
       __u32 page_shift;
       __u32 page_list_len;
       __u32 length;
       __u32 access_flags;
       __u32 rkey;
+      __u32 reserved;
     } fast_reg;
     struct {
       __u32 remote_qpn;
@@ -214,8 +217,8 @@
   } wr;
 };
 struct pvrdma_cqe {
-  __u64 wr_id;
-  __u64 qp;
+  __aligned_u64 wr_id;
+  __aligned_u64 qp;
   __u32 opcode;
   __u32 status;
   __u32 byte_len;
diff --git a/libc/kernel/uapi/sound/asound.h b/libc/kernel/uapi/sound/asound.h
index 63f66b4..e5473a5 100644
--- a/libc/kernel/uapi/sound/asound.h
+++ b/libc/kernel/uapi/sound/asound.h
@@ -153,6 +153,10 @@
 #define SNDRV_PCM_FORMAT_IMA_ADPCM ((__force snd_pcm_format_t) 22)
 #define SNDRV_PCM_FORMAT_MPEG ((__force snd_pcm_format_t) 23)
 #define SNDRV_PCM_FORMAT_GSM ((__force snd_pcm_format_t) 24)
+#define SNDRV_PCM_FORMAT_S20_LE ((__force snd_pcm_format_t) 25)
+#define SNDRV_PCM_FORMAT_S20_BE ((__force snd_pcm_format_t) 26)
+#define SNDRV_PCM_FORMAT_U20_LE ((__force snd_pcm_format_t) 27)
+#define SNDRV_PCM_FORMAT_U20_BE ((__force snd_pcm_format_t) 28)
 #define SNDRV_PCM_FORMAT_SPECIAL ((__force snd_pcm_format_t) 31)
 #define SNDRV_PCM_FORMAT_S24_3LE ((__force snd_pcm_format_t) 32)
 #define SNDRV_PCM_FORMAT_S24_3BE ((__force snd_pcm_format_t) 33)
@@ -176,6 +180,7 @@
 #define SNDRV_PCM_FORMAT_DSD_U16_BE ((__force snd_pcm_format_t) 51)
 #define SNDRV_PCM_FORMAT_DSD_U32_BE ((__force snd_pcm_format_t) 52)
 #define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U32_BE
+#define SNDRV_PCM_FORMAT_FIRST SNDRV_PCM_FORMAT_S8
 #ifdef SNDRV_LITTLE_ENDIAN
 #define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE
 #define SNDRV_PCM_FORMAT_U16 SNDRV_PCM_FORMAT_U16_LE
@@ -186,6 +191,8 @@
 #define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_LE
 #define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_LE
 #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE
+#define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_LE
+#define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_LE
 #endif
 #ifdef SNDRV_BIG_ENDIAN
 #define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_BE
@@ -197,6 +204,8 @@
 #define SNDRV_PCM_FORMAT_FLOAT SNDRV_PCM_FORMAT_FLOAT_BE
 #define SNDRV_PCM_FORMAT_FLOAT64 SNDRV_PCM_FORMAT_FLOAT64_BE
 #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE
+#define SNDRV_PCM_FORMAT_S20 SNDRV_PCM_FORMAT_S20_BE
+#define SNDRV_PCM_FORMAT_U20 SNDRV_PCM_FORMAT_U20_BE
 #endif
 typedef int __bitwise snd_pcm_subformat_t;
 #define SNDRV_PCM_SUBFORMAT_STD ((__force snd_pcm_subformat_t) 0)
diff --git a/libc/kernel/uapi/sound/snd_sst_tokens.h b/libc/kernel/uapi/sound/snd_sst_tokens.h
index a4cfdd5..85a99c7 100644
--- a/libc/kernel/uapi/sound/snd_sst_tokens.h
+++ b/libc/kernel/uapi/sound/snd_sst_tokens.h
@@ -93,6 +93,10 @@
   SKL_TKN_MM_U32_FMT_ID,
   SKL_TKN_MM_U32_NUM_IN_FMT,
   SKL_TKN_MM_U32_NUM_OUT_FMT,
-  SKL_TKN_MAX = SKL_TKN_MM_U32_NUM_OUT_FMT,
+  SKL_TKN_U32_ASTATE_IDX,
+  SKL_TKN_U32_ASTATE_COUNT,
+  SKL_TKN_U32_ASTATE_KCPS,
+  SKL_TKN_U32_ASTATE_CLK_SRC,
+  SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC,
 };
 #endif
