diff options
Diffstat (limited to 'libc')
153 files changed, 2876 insertions, 688 deletions
diff --git a/libc/include/bits/glibc-syscalls.h b/libc/include/bits/glibc-syscalls.h index ffd92ccd5..52eff56e3 100644 --- a/libc/include/bits/glibc-syscalls.h +++ b/libc/include/bits/glibc-syscalls.h @@ -418,6 +418,9 @@ #if defined(__NR_io_getevents) #define SYS_io_getevents __NR_io_getevents #endif +#if defined(__NR_io_pgetevents) + #define SYS_io_pgetevents __NR_io_pgetevents +#endif #if defined(__NR_io_setup) #define SYS_io_setup __NR_io_setup #endif @@ -799,6 +802,9 @@ #if defined(__NR_rmdir) #define SYS_rmdir __NR_rmdir #endif +#if defined(__NR_rseq) + #define SYS_rseq __NR_rseq +#endif #if defined(__NR_rt_sigaction) #define SYS_rt_sigaction __NR_rt_sigaction #endif diff --git a/libc/kernel/uapi/asm-arm/asm/kvm.h b/libc/kernel/uapi/asm-arm/asm/kvm.h index 6cbc53337..95f0c4d30 100644 --- a/libc/kernel/uapi/asm-arm/asm/kvm.h +++ b/libc/kernel/uapi/asm-arm/asm/kvm.h @@ -24,6 +24,7 @@ #define __KVM_HAVE_GUEST_DEBUG #define __KVM_HAVE_IRQ_LINE #define __KVM_HAVE_READONLY_MEM +#define __KVM_HAVE_VCPU_EVENTS #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 #define KVM_REG_SIZE(id) (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) #define KVM_ARM_SVC_sp svc_regs[0] @@ -69,6 +70,7 @@ struct kvm_regs { #define KVM_VGIC_V3_ADDR_TYPE_DIST 2 #define KVM_VGIC_V3_ADDR_TYPE_REDIST 3 #define KVM_VGIC_ITS_ADDR_TYPE 4 +#define KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION 5 #define KVM_VGIC_V3_DIST_SIZE SZ_64K #define KVM_VGIC_V3_REDIST_SIZE (2 * SZ_64K) #define KVM_VGIC_V3_ITS_SIZE (2 * SZ_64K) @@ -91,6 +93,15 @@ struct kvm_sync_regs { }; struct kvm_arch_memory_slot { }; +struct kvm_vcpu_events { + struct { + __u8 serror_pending; + __u8 serror_has_esr; + __u8 pad[6]; + __u64 serror_esr; + } exception; + __u32 reserved[12]; +}; #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 #define KVM_REG_ARM_COPROC_SHIFT 16 #define KVM_REG_ARM_32_OPC2_MASK 0x0000000000000007 diff --git a/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/libc/kernel/uapi/asm-arm/asm/unistd-common.h index c9ee55596..824a7d30a 100644 --- a/libc/kernel/uapi/asm-arm/asm/unistd-common.h +++ b/libc/kernel/uapi/asm-arm/asm/unistd-common.h @@ -371,4 +371,6 @@ #define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395) #define __NR_pkey_free (__NR_SYSCALL_BASE + 396) #define __NR_statx (__NR_SYSCALL_BASE + 397) +#define __NR_rseq (__NR_SYSCALL_BASE + 398) +#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399) #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/auxvec.h b/libc/kernel/uapi/asm-arm64/asm/auxvec.h index 74fca55f3..4735fd5e5 100644 --- a/libc/kernel/uapi/asm-arm64/asm/auxvec.h +++ b/libc/kernel/uapi/asm-arm64/asm/auxvec.h @@ -19,5 +19,6 @@ #ifndef __ASM_AUXVEC_H #define __ASM_AUXVEC_H #define AT_SYSINFO_EHDR 33 -#define AT_VECTOR_SIZE_ARCH 1 +#define AT_MINSIGSTKSZ 51 +#define AT_VECTOR_SIZE_ARCH 2 #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/kvm.h b/libc/kernel/uapi/asm-arm64/asm/kvm.h index 167d811d8..e79562cd2 100644 --- a/libc/kernel/uapi/asm-arm64/asm/kvm.h +++ b/libc/kernel/uapi/asm-arm64/asm/kvm.h @@ -32,6 +32,7 @@ #define __KVM_HAVE_GUEST_DEBUG #define __KVM_HAVE_IRQ_LINE #define __KVM_HAVE_READONLY_MEM +#define __KVM_HAVE_VCPU_EVENTS #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 #define KVM_REG_SIZE(id) (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) struct kvm_regs { @@ -60,6 +61,7 @@ struct kvm_regs { #define KVM_VGIC_V3_ADDR_TYPE_DIST 2 #define KVM_VGIC_V3_ADDR_TYPE_REDIST 3 #define KVM_VGIC_ITS_ADDR_TYPE 4 +#define KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION 5 #define KVM_VGIC_V3_DIST_SIZE SZ_64K #define KVM_VGIC_V3_REDIST_SIZE (2 * SZ_64K) #define KVM_VGIC_V3_ITS_SIZE (2 * SZ_64K) @@ -93,6 +95,15 @@ struct kvm_sync_regs { }; struct kvm_arch_memory_slot { }; +struct kvm_vcpu_events { + struct { + __u8 serror_pending; + __u8 serror_has_esr; + __u8 pad[6]; + __u64 serror_esr; + } exception; + __u32 reserved[12]; +}; #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 #define KVM_REG_ARM_COPROC_SHIFT 16 #define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT) diff --git a/libc/kernel/uapi/asm-generic/hugetlb_encode.h b/libc/kernel/uapi/asm-generic/hugetlb_encode.h index 68849b351..01a10ce5e 100644 --- a/libc/kernel/uapi/asm-generic/hugetlb_encode.h +++ b/libc/kernel/uapi/asm-generic/hugetlb_encode.h @@ -26,7 +26,9 @@ #define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_32MB (25 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_512MB (29 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT) diff --git a/libc/kernel/uapi/asm-generic/msgbuf.h b/libc/kernel/uapi/asm-generic/msgbuf.h index 86a80a431..a8af16e5e 100644 --- a/libc/kernel/uapi/asm-generic/msgbuf.h +++ b/libc/kernel/uapi/asm-generic/msgbuf.h @@ -21,24 +21,24 @@ #include <asm/bitsperlong.h> struct msqid64_ds { struct ipc64_perm msg_perm; +#if __BITS_PER_LONG == 64 __kernel_time_t msg_stime; -#if __BITS_PER_LONG != 64 - unsigned long __unused1; -#endif __kernel_time_t msg_rtime; -#if __BITS_PER_LONG != 64 - unsigned long __unused2; -#endif __kernel_time_t msg_ctime; -#if __BITS_PER_LONG != 64 - unsigned long __unused3; +#else + unsigned long msg_stime; + unsigned long msg_stime_high; + unsigned long msg_rtime; + unsigned long msg_rtime_high; + unsigned long msg_ctime; + unsigned long msg_ctime_high; #endif - __kernel_ulong_t msg_cbytes; - __kernel_ulong_t msg_qnum; - __kernel_ulong_t msg_qbytes; + unsigned long msg_cbytes; + unsigned long msg_qnum; + unsigned long msg_qbytes; __kernel_pid_t msg_lspid; __kernel_pid_t msg_lrpid; - __kernel_ulong_t __unused4; - __kernel_ulong_t __unused5; + unsigned long __unused4; + unsigned long __unused5; }; #endif diff --git a/libc/kernel/uapi/asm-generic/posix_types.h b/libc/kernel/uapi/asm-generic/posix_types.h index 1bafe1bcd..5aaa56d2f 100644 --- a/libc/kernel/uapi/asm-generic/posix_types.h +++ b/libc/kernel/uapi/asm-generic/posix_types.h @@ -75,6 +75,7 @@ typedef struct { typedef __kernel_long_t __kernel_off_t; typedef long long __kernel_loff_t; typedef __kernel_long_t __kernel_time_t; +typedef long long __kernel_time64_t; typedef __kernel_long_t __kernel_clock_t; typedef int __kernel_timer_t; typedef int __kernel_clockid_t; diff --git a/libc/kernel/uapi/asm-generic/sembuf.h b/libc/kernel/uapi/asm-generic/sembuf.h index 1a94bff25..c8c1d2916 100644 --- a/libc/kernel/uapi/asm-generic/sembuf.h +++ b/libc/kernel/uapi/asm-generic/sembuf.h @@ -21,13 +21,14 @@ #include <asm/bitsperlong.h> struct semid64_ds { struct ipc64_perm sem_perm; +#if __BITS_PER_LONG == 64 __kernel_time_t sem_otime; -#if __BITS_PER_LONG != 64 - unsigned long __unused1; -#endif __kernel_time_t sem_ctime; -#if __BITS_PER_LONG != 64 - unsigned long __unused2; +#else + unsigned long sem_otime; + unsigned long sem_otime_high; + unsigned long sem_ctime; + unsigned long sem_ctime_high; #endif unsigned long sem_nsems; unsigned long __unused3; diff --git a/libc/kernel/uapi/asm-generic/shmbuf.h b/libc/kernel/uapi/asm-generic/shmbuf.h index 6d4d86763..1d003ba7e 100644 --- a/libc/kernel/uapi/asm-generic/shmbuf.h +++ b/libc/kernel/uapi/asm-generic/shmbuf.h @@ -22,33 +22,33 @@ struct shmid64_ds { struct ipc64_perm shm_perm; size_t shm_segsz; +#if __BITS_PER_LONG == 64 __kernel_time_t shm_atime; -#if __BITS_PER_LONG != 64 - unsigned long __unused1; -#endif __kernel_time_t shm_dtime; -#if __BITS_PER_LONG != 64 - unsigned long __unused2; -#endif __kernel_time_t shm_ctime; -#if __BITS_PER_LONG != 64 - unsigned long __unused3; +#else + unsigned long shm_atime; + unsigned long shm_atime_high; + unsigned long shm_dtime; + unsigned long shm_dtime_high; + unsigned long shm_ctime; + unsigned long shm_ctime_high; #endif __kernel_pid_t shm_cpid; __kernel_pid_t shm_lpid; - __kernel_ulong_t shm_nattch; - __kernel_ulong_t __unused4; - __kernel_ulong_t __unused5; + unsigned long shm_nattch; + unsigned long __unused4; + unsigned long __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; + unsigned long shmmax; + unsigned long shmmin; + unsigned long shmmni; + unsigned long shmseg; + unsigned long shmall; + unsigned long __unused1; + unsigned long __unused2; + unsigned long __unused3; + unsigned long __unused4; }; #endif diff --git a/libc/kernel/uapi/asm-generic/siginfo.h b/libc/kernel/uapi/asm-generic/siginfo.h index af3d98ef3..166193b84 100644 --- a/libc/kernel/uapi/asm-generic/siginfo.h +++ b/libc/kernel/uapi/asm-generic/siginfo.h @@ -194,7 +194,8 @@ typedef struct siginfo { #define TRAP_TRACE 2 #define TRAP_BRANCH 3 #define TRAP_HWBKPT 4 -#define NSIGTRAP 4 +#define TRAP_UNK 5 +#define NSIGTRAP 5 #define CLD_EXITED 1 #define CLD_KILLED 2 #define CLD_DUMPED 3 diff --git a/libc/kernel/uapi/asm-generic/socket.h b/libc/kernel/uapi/asm-generic/socket.h index b8215541d..7c52ccc42 100644 --- a/libc/kernel/uapi/asm-generic/socket.h +++ b/libc/kernel/uapi/asm-generic/socket.h @@ -88,4 +88,6 @@ #define SCM_TIMESTAMPING_PKTINFO 58 #define SO_PEERGROUPS 59 #define SO_ZEROCOPY 60 +#define SO_TXTIME 61 +#define SCM_TXTIME SO_TXTIME #endif diff --git a/libc/kernel/uapi/asm-generic/unistd.h b/libc/kernel/uapi/asm-generic/unistd.h index 39b7c1aa4..52f0b5756 100644 --- a/libc/kernel/uapi/asm-generic/unistd.h +++ b/libc/kernel/uapi/asm-generic/unistd.h @@ -317,8 +317,10 @@ #define __NR_pkey_alloc 289 #define __NR_pkey_free 290 #define __NR_statx 291 +#define __NR_io_pgetevents 292 +#define __NR_rseq 293 #undef __NR_syscalls -#define __NR_syscalls 292 +#define __NR_syscalls 294 #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/msgbuf.h b/libc/kernel/uapi/asm-mips/asm/msgbuf.h index e64d9a9ee..e41761a27 100644 --- a/libc/kernel/uapi/asm-mips/asm/msgbuf.h +++ b/libc/kernel/uapi/asm-mips/asm/msgbuf.h @@ -18,20 +18,12 @@ ****************************************************************************/ #ifndef _ASM_MSGBUF_H #define _ASM_MSGBUF_H +#ifdef __mips64 struct msqid64_ds { struct ipc64_perm msg_perm; __kernel_time_t msg_stime; -#ifndef __mips64 - unsigned long __unused1; -#endif __kernel_time_t msg_rtime; -#ifndef __mips64 - unsigned long __unused2; -#endif __kernel_time_t msg_ctime; -#ifndef __mips64 - unsigned long __unused3; -#endif unsigned long msg_cbytes; unsigned long msg_qnum; unsigned long msg_qbytes; @@ -40,4 +32,22 @@ struct msqid64_ds { unsigned long __unused4; unsigned long __unused5; }; +#elif 1 +struct msqid64_ds { + struct ipc64_perm msg_perm; + unsigned long msg_stime; + unsigned long msg_stime_high; + unsigned long msg_rtime; + unsigned long msg_rtime_high; + unsigned long msg_ctime; + unsigned long msg_ctime_high; + unsigned long msg_cbytes; + unsigned long msg_qnum; + unsigned long msg_qbytes; + __kernel_pid_t msg_lspid; + __kernel_pid_t msg_lrpid; + unsigned long __unused4; + unsigned long __unused5; +}; +#endif #endif diff --git a/libc/kernel/uapi/asm-mips/asm/sembuf.h b/libc/kernel/uapi/asm-mips/asm/sembuf.h index 25979ac3a..a46f32685 100644 --- a/libc/kernel/uapi/asm-mips/asm/sembuf.h +++ b/libc/kernel/uapi/asm-mips/asm/sembuf.h @@ -18,6 +18,7 @@ ****************************************************************************/ #ifndef _ASM_SEMBUF_H #define _ASM_SEMBUF_H +#ifdef __mips64 struct semid64_ds { struct ipc64_perm sem_perm; __kernel_time_t sem_otime; @@ -26,4 +27,14 @@ struct semid64_ds { unsigned long __unused1; unsigned long __unused2; }; +#else +struct semid64_ds { + struct ipc64_perm sem_perm; + unsigned long sem_otime; + unsigned long sem_ctime; + unsigned long sem_nsems; + unsigned long sem_otime_high; + unsigned long sem_ctime_high; +}; +#endif #endif diff --git a/libc/kernel/uapi/asm-mips/asm/shmbuf.h b/libc/kernel/uapi/asm-mips/asm/shmbuf.h index 0d1e8a1e8..9c42ceeb3 100644 --- a/libc/kernel/uapi/asm-mips/asm/shmbuf.h +++ b/libc/kernel/uapi/asm-mips/asm/shmbuf.h @@ -18,6 +18,7 @@ ****************************************************************************/ #ifndef _ASM_SHMBUF_H #define _ASM_SHMBUF_H +#ifdef __mips64 struct shmid64_ds { struct ipc64_perm shm_perm; size_t shm_segsz; @@ -30,6 +31,22 @@ struct shmid64_ds { unsigned long __unused1; unsigned long __unused2; }; +#else +struct shmid64_ds { + struct ipc64_perm shm_perm; + size_t shm_segsz; + unsigned long shm_atime; + unsigned long shm_dtime; + unsigned long shm_ctime; + __kernel_pid_t shm_cpid; + __kernel_pid_t shm_lpid; + unsigned long shm_nattch; + unsigned short shm_atime_high; + unsigned short shm_dtime_high; + unsigned short shm_ctime_high; + unsigned short __unused1; +}; +#endif struct shminfo64 { unsigned long shmmax; unsigned long shmmin; diff --git a/libc/kernel/uapi/asm-mips/asm/socket.h b/libc/kernel/uapi/asm-mips/asm/socket.h index b8de15cb9..960b141dc 100644 --- a/libc/kernel/uapi/asm-mips/asm/socket.h +++ b/libc/kernel/uapi/asm-mips/asm/socket.h @@ -87,4 +87,6 @@ #define SCM_TIMESTAMPING_PKTINFO 58 #define SO_PEERGROUPS 59 #define SO_ZEROCOPY 60 +#define SO_TXTIME 61 +#define SCM_TXTIME SO_TXTIME #endif diff --git a/libc/kernel/uapi/asm-mips/asm/unistd.h b/libc/kernel/uapi/asm-mips/asm/unistd.h index 76d7b8157..e4dee2bb7 100644 --- a/libc/kernel/uapi/asm-mips/asm/unistd.h +++ b/libc/kernel/uapi/asm-mips/asm/unistd.h @@ -387,10 +387,12 @@ #define __NR_pkey_alloc (__NR_Linux + 364) #define __NR_pkey_free (__NR_Linux + 365) #define __NR_statx (__NR_Linux + 366) -#define __NR_Linux_syscalls 366 +#define __NR_rseq (__NR_Linux + 367) +#define __NR_io_pgetevents (__NR_Linux + 368) +#define __NR_Linux_syscalls 368 #endif #define __NR_O32_Linux 4000 -#define __NR_O32_Linux_syscalls 366 +#define __NR_O32_Linux_syscalls 368 #if _MIPS_SIM == _MIPS_SIM_ABI64 #define __NR_Linux 5000 #define __NR_read (__NR_Linux + 0) @@ -719,10 +721,12 @@ #define __NR_pkey_alloc (__NR_Linux + 324) #define __NR_pkey_free (__NR_Linux + 325) #define __NR_statx (__NR_Linux + 326) -#define __NR_Linux_syscalls 326 +#define __NR_rseq (__NR_Linux + 327) +#define __NR_io_pgetevents (__NR_Linux + 328) +#define __NR_Linux_syscalls 328 #endif #define __NR_64_Linux 5000 -#define __NR_64_Linux_syscalls 326 +#define __NR_64_Linux_syscalls 328 #if _MIPS_SIM == _MIPS_SIM_NABI32 #define __NR_Linux 6000 #define __NR_read (__NR_Linux + 0) @@ -1055,8 +1059,10 @@ #define __NR_pkey_alloc (__NR_Linux + 328) #define __NR_pkey_free (__NR_Linux + 329) #define __NR_statx (__NR_Linux + 330) -#define __NR_Linux_syscalls 330 +#define __NR_rseq (__NR_Linux + 331) +#define __NR_io_pgetevents (__NR_Linux + 332) +#define __NR_Linux_syscalls 332 #endif #define __NR_N32_Linux 6000 -#define __NR_N32_Linux_syscalls 330 +#define __NR_N32_Linux_syscalls 332 #endif diff --git a/libc/kernel/uapi/asm-x86/asm/kvm.h b/libc/kernel/uapi/asm-x86/asm/kvm.h index df1b39659..1d7f767e7 100644 --- a/libc/kernel/uapi/asm-x86/asm/kvm.h +++ b/libc/kernel/uapi/asm-x86/asm/kvm.h @@ -313,4 +313,26 @@ struct kvm_sync_regs { }; #define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0) #define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) +#define KVM_X86_QUIRK_LAPIC_MMIO_HOLE (1 << 2) +#define KVM_STATE_NESTED_GUEST_MODE 0x00000001 +#define KVM_STATE_NESTED_RUN_PENDING 0x00000002 +#define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 +#define KVM_STATE_NESTED_SMM_VMXON 0x00000002 +struct kvm_vmx_nested_state { + __u64 vmxon_pa; + __u64 vmcs_pa; + struct { + __u16 flags; + } smm; +}; +struct kvm_nested_state { + __u16 flags; + __u16 format; + __u32 size; + union { + struct kvm_vmx_nested_state vmx; + __u8 pad[120]; + }; + __u8 data[0]; +}; #endif diff --git a/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/libc/kernel/uapi/asm-x86/asm/kvm_para.h index 0e4f2e09e..47ecca957 100644 --- a/libc/kernel/uapi/asm-x86/asm/kvm_para.h +++ b/libc/kernel/uapi/asm-x86/asm/kvm_para.h @@ -31,6 +31,7 @@ #define KVM_FEATURE_PV_UNHALT 7 #define KVM_FEATURE_PV_TLB_FLUSH 9 #define KVM_FEATURE_ASYNC_PF_VMEXIT 10 +#define KVM_FEATURE_PV_SEND_IPI 11 #define KVM_HINTS_REALTIME 0 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24 #define MSR_KVM_WALL_CLOCK 0x11 diff --git a/libc/kernel/uapi/asm-x86/asm/sembuf.h b/libc/kernel/uapi/asm-x86/asm/sembuf.h index 9b7e109b5..9b9672270 100644 --- a/libc/kernel/uapi/asm-x86/asm/sembuf.h +++ b/libc/kernel/uapi/asm-x86/asm/sembuf.h @@ -20,10 +20,17 @@ #define _ASM_X86_SEMBUF_H struct semid64_ds { struct ipc64_perm sem_perm; +#ifdef __i386__ + unsigned long sem_otime; + unsigned long sem_otime_high; + unsigned long sem_ctime; + unsigned long sem_ctime_high; +#else __kernel_time_t sem_otime; __kernel_ulong_t __unused1; __kernel_time_t sem_ctime; __kernel_ulong_t __unused2; +#endif __kernel_ulong_t sem_nsems; __kernel_ulong_t __unused3; __kernel_ulong_t __unused4; diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/libc/kernel/uapi/asm-x86/asm/unistd_32.h index 0038efba9..4afa67649 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_32.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_32.h @@ -399,4 +399,6 @@ #define __NR_pkey_free 382 #define __NR_statx 383 #define __NR_arch_prctl 384 +#define __NR_io_pgetevents 385 +#define __NR_rseq 386 #endif diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/libc/kernel/uapi/asm-x86/asm/unistd_64.h index 3cde1661e..a11820041 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_64.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_64.h @@ -351,4 +351,6 @@ #define __NR_pkey_alloc 330 #define __NR_pkey_free 331 #define __NR_statx 332 +#define __NR_io_pgetevents 333 +#define __NR_rseq 334 #endif diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h index e10cc6b4d..b5f3fb105 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h @@ -304,6 +304,8 @@ #define __NR_pkey_alloc (__X32_SYSCALL_BIT + 330) #define __NR_pkey_free (__X32_SYSCALL_BIT + 331) #define __NR_statx (__X32_SYSCALL_BIT + 332) +#define __NR_io_pgetevents (__X32_SYSCALL_BIT + 333) +#define __NR_rseq (__X32_SYSCALL_BIT + 334) #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) #define __NR_ioctl (__X32_SYSCALL_BIT + 514) diff --git a/libc/kernel/uapi/drm/amdgpu_drm.h b/libc/kernel/uapi/drm/amdgpu_drm.h index 59f5260ba..bdf59d6ec 100644 --- a/libc/kernel/uapi/drm/amdgpu_drm.h +++ b/libc/kernel/uapi/drm/amdgpu_drm.h @@ -59,6 +59,7 @@ #define AMDGPU_GEM_DOMAIN_GDS 0x8 #define AMDGPU_GEM_DOMAIN_GWS 0x10 #define AMDGPU_GEM_DOMAIN_OA 0x20 +#define AMDGPU_GEM_DOMAIN_MASK (AMDGPU_GEM_DOMAIN_CPU | AMDGPU_GEM_DOMAIN_GTT | AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GDS | AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA) #define AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED (1 << 0) #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1) #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2) @@ -67,6 +68,7 @@ #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5) #define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6) #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7) +#define AMDGPU_GEM_CREATE_MQD_GFX9 (1 << 8) struct drm_amdgpu_gem_create_in { __u64 bo_size; __u64 alignment; @@ -305,13 +307,15 @@ struct drm_amdgpu_gem_va { #define AMDGPU_HW_IP_UVD_ENC 5 #define AMDGPU_HW_IP_VCN_DEC 6 #define AMDGPU_HW_IP_VCN_ENC 7 -#define AMDGPU_HW_IP_NUM 8 +#define AMDGPU_HW_IP_VCN_JPEG 8 +#define AMDGPU_HW_IP_NUM 9 #define AMDGPU_HW_IP_INSTANCE_MAX_COUNT 1 #define AMDGPU_CHUNK_ID_IB 0x01 #define AMDGPU_CHUNK_ID_FENCE 0x02 #define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03 #define AMDGPU_CHUNK_ID_SYNCOBJ_IN 0x04 #define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05 +#define AMDGPU_CHUNK_ID_BO_HANDLES 0x06 struct drm_amdgpu_cs_chunk { __u32 chunk_id; __u32 length_dw; @@ -334,6 +338,7 @@ union drm_amdgpu_cs { #define AMDGPU_IB_FLAG_CE (1 << 0) #define AMDGPU_IB_FLAG_PREAMBLE (1 << 1) #define AMDGPU_IB_FLAG_PREEMPT (1 << 2) +#define AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE (1 << 3) struct drm_amdgpu_cs_chunk_ib { __u32 _pad; __u32 flags; @@ -397,6 +402,9 @@ struct drm_amdgpu_cs_chunk_data { #define AMDGPU_INFO_FW_SOS 0x0c #define AMDGPU_INFO_FW_ASD 0x0d #define AMDGPU_INFO_FW_VCN 0x0e +#define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_CNTL 0x0f +#define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_GPM_MEM 0x10 +#define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_SRM_MEM 0x11 #define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f #define AMDGPU_INFO_VRAM_USAGE 0x10 #define AMDGPU_INFO_GTT_USAGE 0x11 diff --git a/libc/kernel/uapi/drm/drm.h b/libc/kernel/uapi/drm/drm.h index ec0c1fad3..21f23f48e 100644 --- a/libc/kernel/uapi/drm/drm.h +++ b/libc/kernel/uapi/drm/drm.h @@ -369,6 +369,8 @@ struct drm_get_cap { #define DRM_CLIENT_CAP_STEREO_3D 1 #define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2 #define DRM_CLIENT_CAP_ATOMIC 3 +#define DRM_CLIENT_CAP_ASPECT_RATIO 4 +#define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5 struct drm_set_client_cap { __u64 capability; __u64 value; diff --git a/libc/kernel/uapi/drm/drm_fourcc.h b/libc/kernel/uapi/drm/drm_fourcc.h index d5fb0550d..9634e993f 100644 --- a/libc/kernel/uapi/drm/drm_fourcc.h +++ b/libc/kernel/uapi/drm/drm_fourcc.h @@ -106,6 +106,7 @@ #define DRM_FORMAT_MOD_VENDOR_QCOM 0x05 #define DRM_FORMAT_MOD_VENDOR_VIVANTE 0x06 #define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07 +#define DRM_FORMAT_MOD_VENDOR_ARM 0x08 #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1) #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) @@ -116,6 +117,7 @@ #define I915_FORMAT_MOD_Y_TILED_CCS fourcc_mod_code(INTEL, 4) #define I915_FORMAT_MOD_Yf_TILED_CCS fourcc_mod_code(INTEL, 5) #define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1) +#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1) #define DRM_FORMAT_MOD_VIVANTE_TILED fourcc_mod_code(VIVANTE, 1) #define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED fourcc_mod_code(VIVANTE, 2) #define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED fourcc_mod_code(VIVANTE, 3) @@ -128,7 +130,31 @@ #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 __fourcc_mod_broadcom_param_shift 8 +#define __fourcc_mod_broadcom_param_bits 48 +#define fourcc_mod_broadcom_code(val,params) fourcc_mod_code(BROADCOM, ((((__u64) params) << __fourcc_mod_broadcom_param_shift) | val)) +#define fourcc_mod_broadcom_param(m) ((int) (((m) >> __fourcc_mod_broadcom_param_shift) & ((1ULL << __fourcc_mod_broadcom_param_bits) - 1))) +#define fourcc_mod_broadcom_mod(m) ((m) & ~(((1ULL << __fourcc_mod_broadcom_param_bits) - 1) << __fourcc_mod_broadcom_param_shift)) #define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1) +#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) fourcc_mod_broadcom_code(2, v) +#define DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(v) fourcc_mod_broadcom_code(3, v) +#define DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(v) fourcc_mod_broadcom_code(4, v) +#define DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(v) fourcc_mod_broadcom_code(5, v) +#define DRM_FORMAT_MOD_BROADCOM_SAND32 DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(0) +#define DRM_FORMAT_MOD_BROADCOM_SAND64 DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(0) +#define DRM_FORMAT_MOD_BROADCOM_SAND128 DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(0) +#define DRM_FORMAT_MOD_BROADCOM_SAND256 DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(0) +#define DRM_FORMAT_MOD_BROADCOM_UIF fourcc_mod_code(BROADCOM, 6) +#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) fourcc_mod_code(ARM, __afbc_mode) +#define AFBC_FORMAT_MOD_BLOCK_SIZE_MASK 0xf +#define AFBC_FORMAT_MOD_BLOCK_SIZE_16x16 (1ULL) +#define AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 (2ULL) +#define AFBC_FORMAT_MOD_YTR (1ULL << 4) +#define AFBC_FORMAT_MOD_SPLIT (1ULL << 5) +#define AFBC_FORMAT_MOD_SPARSE (1ULL << 6) +#define AFBC_FORMAT_MOD_CBR (1ULL << 7) +#define AFBC_FORMAT_MOD_TILED (1ULL << 8) +#define AFBC_FORMAT_MOD_SC (1ULL << 9) #ifdef __cplusplus #endif #endif diff --git a/libc/kernel/uapi/drm/drm_mode.h b/libc/kernel/uapi/drm/drm_mode.h index b91f16128..06c26e4ba 100644 --- a/libc/kernel/uapi/drm/drm_mode.h +++ b/libc/kernel/uapi/drm/drm_mode.h @@ -60,10 +60,19 @@ #define DRM_MODE_PICTURE_ASPECT_NONE 0 #define DRM_MODE_PICTURE_ASPECT_4_3 1 #define DRM_MODE_PICTURE_ASPECT_16_9 2 +#define DRM_MODE_PICTURE_ASPECT_64_27 3 +#define DRM_MODE_PICTURE_ASPECT_256_135 4 +#define DRM_MODE_CONTENT_TYPE_NO_DATA 0 +#define DRM_MODE_CONTENT_TYPE_GRAPHICS 1 +#define DRM_MODE_CONTENT_TYPE_PHOTO 2 +#define DRM_MODE_CONTENT_TYPE_CINEMA 3 +#define DRM_MODE_CONTENT_TYPE_GAME 4 #define DRM_MODE_FLAG_PIC_AR_MASK (0x0F << 19) #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_PIC_AR_64_27 (DRM_MODE_PICTURE_ASPECT_64_27 << 19) +#define DRM_MODE_FLAG_PIC_AR_256_135 (DRM_MODE_PICTURE_ASPECT_256_135 << 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 @@ -207,6 +216,7 @@ enum drm_mode_subconnector { #define DRM_MODE_CONNECTOR_VIRTUAL 15 #define DRM_MODE_CONNECTOR_DSI 16 #define DRM_MODE_CONNECTOR_DPI 17 +#define DRM_MODE_CONNECTOR_WRITEBACK 18 struct drm_mode_get_connector { __u64 encoders_ptr; __u64 modes_ptr; diff --git a/libc/kernel/uapi/drm/exynos_drm.h b/libc/kernel/uapi/drm/exynos_drm.h index ed9022bea..8b27cbbd8 100644 --- a/libc/kernel/uapi/drm/exynos_drm.h +++ b/libc/kernel/uapi/drm/exynos_drm.h @@ -80,6 +80,109 @@ struct drm_exynos_g2d_set_cmdlist { struct drm_exynos_g2d_exec { __u64 async; }; +struct drm_exynos_ioctl_ipp_get_res { + __u32 count_ipps; + __u32 reserved; + __u64 ipp_id_ptr; +}; +enum drm_exynos_ipp_format_type { + DRM_EXYNOS_IPP_FORMAT_SOURCE = 0x01, + DRM_EXYNOS_IPP_FORMAT_DESTINATION = 0x02, +}; +struct drm_exynos_ipp_format { + __u32 fourcc; + __u32 type; + __u64 modifier; +}; +enum drm_exynos_ipp_capability { + DRM_EXYNOS_IPP_CAP_CROP = 0x01, + DRM_EXYNOS_IPP_CAP_ROTATE = 0x02, + DRM_EXYNOS_IPP_CAP_SCALE = 0x04, + DRM_EXYNOS_IPP_CAP_CONVERT = 0x08, +}; +struct drm_exynos_ioctl_ipp_get_caps { + __u32 ipp_id; + __u32 capabilities; + __u32 reserved; + __u32 formats_count; + __u64 formats_ptr; +}; +enum drm_exynos_ipp_limit_type { + DRM_EXYNOS_IPP_LIMIT_TYPE_SIZE = 0x0001, + DRM_EXYNOS_IPP_LIMIT_TYPE_SCALE = 0x0002, + DRM_EXYNOS_IPP_LIMIT_SIZE_BUFFER = 0x0001 << 16, + DRM_EXYNOS_IPP_LIMIT_SIZE_AREA = 0x0002 << 16, + DRM_EXYNOS_IPP_LIMIT_SIZE_ROTATED = 0x0003 << 16, + DRM_EXYNOS_IPP_LIMIT_TYPE_MASK = 0x000f, + DRM_EXYNOS_IPP_LIMIT_SIZE_MASK = 0x000f << 16, +}; +struct drm_exynos_ipp_limit_val { + __u32 min; + __u32 max; + __u32 align; + __u32 reserved; +}; +struct drm_exynos_ipp_limit { + __u32 type; + __u32 reserved; + struct drm_exynos_ipp_limit_val h; + struct drm_exynos_ipp_limit_val v; +}; +struct drm_exynos_ioctl_ipp_get_limits { + __u32 ipp_id; + __u32 fourcc; + __u64 modifier; + __u32 type; + __u32 limits_count; + __u64 limits_ptr; +}; +enum drm_exynos_ipp_task_id { + DRM_EXYNOS_IPP_TASK_BUFFER = 0x0001, + DRM_EXYNOS_IPP_TASK_RECTANGLE = 0x0002, + DRM_EXYNOS_IPP_TASK_TRANSFORM = 0x0003, + DRM_EXYNOS_IPP_TASK_ALPHA = 0x0004, + DRM_EXYNOS_IPP_TASK_TYPE_SOURCE = 0x0001 << 16, + DRM_EXYNOS_IPP_TASK_TYPE_DESTINATION = 0x0002 << 16, +}; +struct drm_exynos_ipp_task_buffer { + __u32 id; + __u32 fourcc; + __u32 width, height; + __u32 gem_id[4]; + __u32 offset[4]; + __u32 pitch[4]; + __u64 modifier; +}; +struct drm_exynos_ipp_task_rect { + __u32 id; + __u32 reserved; + __u32 x; + __u32 y; + __u32 w; + __u32 h; +}; +struct drm_exynos_ipp_task_transform { + __u32 id; + __u32 rotation; +}; +struct drm_exynos_ipp_task_alpha { + __u32 id; + __u32 value; +}; +enum drm_exynos_ipp_flag { + DRM_EXYNOS_IPP_FLAG_EVENT = 0x01, + DRM_EXYNOS_IPP_FLAG_TEST_ONLY = 0x02, + DRM_EXYNOS_IPP_FLAG_NONBLOCK = 0x04, +}; +#define DRM_EXYNOS_IPP_FLAGS (DRM_EXYNOS_IPP_FLAG_EVENT | DRM_EXYNOS_IPP_FLAG_TEST_ONLY | DRM_EXYNOS_IPP_FLAG_NONBLOCK) +struct drm_exynos_ioctl_ipp_commit { + __u32 ipp_id; + __u32 flags; + __u32 reserved; + __u32 params_size; + __u64 params_ptr; + __u64 user_data; +}; #define DRM_EXYNOS_GEM_CREATE 0x00 #define DRM_EXYNOS_GEM_MAP 0x01 #define DRM_EXYNOS_GEM_GET 0x04 @@ -87,6 +190,10 @@ struct drm_exynos_g2d_exec { #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_RESOURCES 0x40 +#define DRM_EXYNOS_IPP_GET_CAPS 0x41 +#define DRM_EXYNOS_IPP_GET_LIMITS 0x42 +#define DRM_EXYNOS_IPP_COMMIT 0x43 #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) @@ -94,7 +201,12 @@ struct drm_exynos_g2d_exec { #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_RESOURCES DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_GET_RESOURCES, struct drm_exynos_ioctl_ipp_get_res) +#define DRM_IOCTL_EXYNOS_IPP_GET_CAPS DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_GET_CAPS, struct drm_exynos_ioctl_ipp_get_caps) +#define DRM_IOCTL_EXYNOS_IPP_GET_LIMITS DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_GET_LIMITS, struct drm_exynos_ioctl_ipp_get_limits) +#define DRM_IOCTL_EXYNOS_IPP_COMMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_COMMIT, struct drm_exynos_ioctl_ipp_commit) #define DRM_EXYNOS_G2D_EVENT 0x80000000 +#define DRM_EXYNOS_IPP_EVENT 0x80000002 struct drm_exynos_g2d_event { struct drm_event base; __u64 user_data; @@ -103,6 +215,15 @@ struct drm_exynos_g2d_event { __u32 cmdlist_no; __u32 reserved; }; +struct drm_exynos_ipp_event { + struct drm_event base; + __u64 user_data; + __u32 tv_sec; + __u32 tv_usec; + __u32 ipp_id; + __u32 sequence; + __u64 reserved; +}; #ifdef __cplusplus #endif #endif diff --git a/libc/kernel/uapi/drm/tegra_drm.h b/libc/kernel/uapi/drm/tegra_drm.h index e0bcf953f..ee111dc59 100644 --- a/libc/kernel/uapi/drm/tegra_drm.h +++ b/libc/kernel/uapi/drm/tegra_drm.h @@ -154,7 +154,7 @@ struct drm_tegra_gem_get_flags { #define DRM_IOCTL_TEGRA_SYNCPT_INCR DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_INCR, struct drm_tegra_syncpt_incr) #define DRM_IOCTL_TEGRA_SYNCPT_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SYNCPT_WAIT, struct drm_tegra_syncpt_wait) #define DRM_IOCTL_TEGRA_OPEN_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_OPEN_CHANNEL, struct drm_tegra_open_channel) -#define DRM_IOCTL_TEGRA_CLOSE_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_CLOSE_CHANNEL, struct drm_tegra_open_channel) +#define DRM_IOCTL_TEGRA_CLOSE_CHANNEL DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_CLOSE_CHANNEL, struct drm_tegra_close_channel) #define DRM_IOCTL_TEGRA_GET_SYNCPT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT, struct drm_tegra_get_syncpt) #define DRM_IOCTL_TEGRA_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_SUBMIT, struct drm_tegra_submit) #define DRM_IOCTL_TEGRA_GET_SYNCPT_BASE DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GET_SYNCPT_BASE, struct drm_tegra_get_syncpt_base) diff --git a/libc/kernel/uapi/drm/v3d_drm.h b/libc/kernel/uapi/drm/v3d_drm.h new file mode 100644 index 000000000..c3e58cb88 --- /dev/null +++ b/libc/kernel/uapi/drm/v3d_drm.h @@ -0,0 +1,87 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 _V3D_DRM_H_ +#define _V3D_DRM_H_ +#include "drm.h" +#ifdef __cplusplus +#endif +#define DRM_V3D_SUBMIT_CL 0x00 +#define DRM_V3D_WAIT_BO 0x01 +#define DRM_V3D_CREATE_BO 0x02 +#define DRM_V3D_MMAP_BO 0x03 +#define DRM_V3D_GET_PARAM 0x04 +#define DRM_V3D_GET_BO_OFFSET 0x05 +#define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl) +#define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo) +#define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo) +#define DRM_IOCTL_V3D_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_MMAP_BO, struct drm_v3d_mmap_bo) +#define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param) +#define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset) +struct drm_v3d_submit_cl { + __u32 bcl_start; + __u32 bcl_end; + __u32 rcl_start; + __u32 rcl_end; + __u32 in_sync_bcl; + __u32 in_sync_rcl; + __u32 out_sync; + __u32 qma; + __u32 qms; + __u32 qts; + __u64 bo_handles; + __u32 bo_handle_count; + __u32 pad; +}; +struct drm_v3d_wait_bo { + __u32 handle; + __u32 pad; + __u64 timeout_ns; +}; +struct drm_v3d_create_bo { + __u32 size; + __u32 flags; + __u32 handle; + __u32 offset; +}; +struct drm_v3d_mmap_bo { + __u32 handle; + __u32 flags; + __u64 offset; +}; +enum drm_v3d_param { + DRM_V3D_PARAM_V3D_UIFCFG, + DRM_V3D_PARAM_V3D_HUB_IDENT1, + DRM_V3D_PARAM_V3D_HUB_IDENT2, + DRM_V3D_PARAM_V3D_HUB_IDENT3, + DRM_V3D_PARAM_V3D_CORE0_IDENT0, + DRM_V3D_PARAM_V3D_CORE0_IDENT1, + DRM_V3D_PARAM_V3D_CORE0_IDENT2, +}; +struct drm_v3d_get_param { + __u32 param; + __u32 pad; + __u64 value; +}; +struct drm_v3d_get_bo_offset { + __u32 handle; + __u32 offset; +}; +#ifdef __cplusplus +#endif +#endif diff --git a/libc/kernel/uapi/drm/vc4_drm.h b/libc/kernel/uapi/drm/vc4_drm.h index 05ed17291..29eb87205 100644 --- a/libc/kernel/uapi/drm/vc4_drm.h +++ b/libc/kernel/uapi/drm/vc4_drm.h @@ -91,6 +91,8 @@ struct drm_vc4_submit_cl { __u32 flags; __u64 seqno; __u32 perfmonid; + __u32 in_sync; + __u32 out_sync; __u32 pad2; }; struct drm_vc4_wait_seqno { diff --git a/libc/kernel/uapi/drm/vmwgfx_drm.h b/libc/kernel/uapi/drm/vmwgfx_drm.h index f6a7b14f0..7df722a13 100644 --- a/libc/kernel/uapi/drm/vmwgfx_drm.h +++ b/libc/kernel/uapi/drm/vmwgfx_drm.h @@ -25,6 +25,7 @@ #define DRM_VMW_MAX_MIP_LEVELS 24 #define DRM_VMW_GET_PARAM 0 #define DRM_VMW_ALLOC_DMABUF 1 +#define DRM_VMW_ALLOC_BO 1 #define DRM_VMW_UNREF_DMABUF 2 #define DRM_VMW_HANDLE_CLOSE 2 #define DRM_VMW_CURSOR_BYPASS 3 @@ -51,6 +52,8 @@ #define DRM_VMW_GB_SURFACE_REF 24 #define DRM_VMW_SYNCCPU 25 #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 +#define DRM_VMW_GB_SURFACE_CREATE_EXT 27 +#define DRM_VMW_GB_SURFACE_REF_EXT 28 #define DRM_VMW_PARAM_NUM_STREAMS 0 #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 #define DRM_VMW_PARAM_3D 2 @@ -64,6 +67,8 @@ #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 #define DRM_VMW_PARAM_SCREEN_TARGET 11 #define DRM_VMW_PARAM_DX 12 +#define DRM_VMW_PARAM_HW_CAPS2 13 +#define DRM_VMW_PARAM_SM4_1 14 enum drm_vmw_handle_type { DRM_VMW_HANDLE_LEGACY = 0, DRM_VMW_HANDLE_PRIME = 1 @@ -124,25 +129,24 @@ struct drm_vmw_fence_rep { __s32 fd; __s32 error; }; -struct drm_vmw_alloc_dmabuf_req { +struct drm_vmw_alloc_bo_req { __u32 size; __u32 pad64; }; -struct drm_vmw_dmabuf_rep { +#define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req +struct drm_vmw_bo_rep { __u64 map_handle; __u32 handle; __u32 cur_gmr_id; __u32 cur_gmr_offset; __u32 pad64; }; -union drm_vmw_alloc_dmabuf_arg { - struct drm_vmw_alloc_dmabuf_req req; - struct drm_vmw_dmabuf_rep rep; -}; -struct drm_vmw_unref_dmabuf_arg { - __u32 handle; - __u32 pad64; +#define drm_vmw_dmabuf_rep drm_vmw_bo_rep +union drm_vmw_alloc_bo_arg { + struct drm_vmw_alloc_bo_req req; + struct drm_vmw_bo_rep rep; }; +#define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg struct drm_vmw_rect { __s32 x; __s32 y; @@ -321,6 +325,30 @@ struct drm_vmw_handle_close_arg { __u32 handle; __u32 pad64; }; +#define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg +enum drm_vmw_surface_version { + drm_vmw_gb_surface_v1 +}; +struct drm_vmw_gb_surface_create_ext_req { + struct drm_vmw_gb_surface_create_req base; + enum drm_vmw_surface_version version; + uint32_t svga3d_flags_upper_32_bits; + SVGA3dMSPattern multisample_pattern; + SVGA3dMSQualityLevel quality_level; + uint64_t must_be_zero; +}; +union drm_vmw_gb_surface_create_ext_arg { + struct drm_vmw_gb_surface_create_rep rep; + struct drm_vmw_gb_surface_create_ext_req req; +}; +struct drm_vmw_gb_surface_ref_ext_rep { + struct drm_vmw_gb_surface_create_ext_req creq; + struct drm_vmw_gb_surface_create_rep crep; +}; +union drm_vmw_gb_surface_reference_ext_arg { + struct drm_vmw_gb_surface_ref_ext_rep rep; + struct drm_vmw_surface_arg req; +}; #ifdef __cplusplus #endif #endif diff --git a/libc/kernel/uapi/linux/aio_abi.h b/libc/kernel/uapi/linux/aio_abi.h index e71936d60..17ca2f923 100644 --- a/libc/kernel/uapi/linux/aio_abi.h +++ b/libc/kernel/uapi/linux/aio_abi.h @@ -27,11 +27,13 @@ enum { IOCB_CMD_PWRITE = 1, IOCB_CMD_FSYNC = 2, IOCB_CMD_FDSYNC = 3, + IOCB_CMD_POLL = 5, IOCB_CMD_NOOP = 6, IOCB_CMD_PREADV = 7, IOCB_CMD_PWRITEV = 8, }; #define IOCB_FLAG_RESFD (1 << 0) +#define IOCB_FLAG_IOPRIO (1 << 1) struct io_event { __u64 data; __u64 obj; diff --git a/libc/kernel/uapi/linux/audit.h b/libc/kernel/uapi/linux/audit.h index be48b446f..235a0e7c1 100644 --- a/libc/kernel/uapi/linux/audit.h +++ b/libc/kernel/uapi/linux/audit.h @@ -110,13 +110,16 @@ #define AUDIT_INTEGRITY_HASH 1803 #define AUDIT_INTEGRITY_PCR 1804 #define AUDIT_INTEGRITY_RULE 1805 +#define AUDIT_INTEGRITY_EVM_XATTR 1806 +#define AUDIT_INTEGRITY_POLICY_RULE 1807 #define AUDIT_KERNEL 2000 #define AUDIT_FILTER_USER 0x00 #define AUDIT_FILTER_TASK 0x01 #define AUDIT_FILTER_ENTRY 0x02 #define AUDIT_FILTER_WATCH 0x03 #define AUDIT_FILTER_EXIT 0x04 -#define AUDIT_FILTER_TYPE 0x05 +#define AUDIT_FILTER_EXCLUDE 0x05 +#define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE #define AUDIT_FILTER_FS 0x06 #define AUDIT_NR_FILTERS 7 #define AUDIT_FILTER_PREPEND 0x10 @@ -335,6 +338,7 @@ struct audit_tty_status { __u32 log_passwd; }; #define AUDIT_UID_UNSET (unsigned int) - 1 +#define AUDIT_SID_UNSET ((unsigned int) - 1) struct audit_rule_data { __u32 flags; __u32 action; diff --git a/libc/kernel/uapi/linux/auto_fs.h b/libc/kernel/uapi/linux/auto_fs.h index 93a372409..0264b8644 100644 --- a/libc/kernel/uapi/linux/auto_fs.h +++ b/libc/kernel/uapi/linux/auto_fs.h @@ -21,9 +21,10 @@ #include <linux/types.h> #include <linux/limits.h> #include <sys/ioctl.h> -#define AUTOFS_PROTO_VERSION 3 -#define AUTOFS_MAX_PROTO_VERSION AUTOFS_PROTO_VERSION -#define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION +#define AUTOFS_PROTO_VERSION 5 +#define AUTOFS_MIN_PROTO_VERSION 3 +#define AUTOFS_MAX_PROTO_VERSION 5 +#define AUTOFS_PROTO_SUBVERSION 3 #if defined(__ia64__) || defined(__alpha__) typedef unsigned long autofs_wqt_t; #else @@ -62,4 +63,66 @@ enum { #define AUTOFS_IOC_SETTIMEOUT32 _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, compat_ulong_t) #define AUTOFS_IOC_SETTIMEOUT _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, unsigned long) #define AUTOFS_IOC_EXPIRE _IOR(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_CMD, struct autofs_packet_expire) +#define AUTOFS_EXP_NORMAL 0x00 +#define AUTOFS_EXP_IMMEDIATE 0x01 +#define AUTOFS_EXP_LEAVES 0x02 +#define AUTOFS_EXP_FORCED 0x04 +#define AUTOFS_TYPE_ANY 0U +#define AUTOFS_TYPE_INDIRECT 1U +#define AUTOFS_TYPE_DIRECT 2U +#define AUTOFS_TYPE_OFFSET 4U +enum autofs_notify { + NFY_NONE, + NFY_MOUNT, + NFY_EXPIRE +}; +#define autofs_ptype_expire_multi 2 +#define autofs_ptype_missing_indirect 3 +#define autofs_ptype_expire_indirect 4 +#define autofs_ptype_missing_direct 5 +#define autofs_ptype_expire_direct 6 +struct autofs_packet_expire_multi { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[NAME_MAX + 1]; +}; +union autofs_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_packet_missing missing; + struct autofs_packet_expire expire; + struct autofs_packet_expire_multi expire_multi; +}; +struct autofs_v5_packet { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + __u32 dev; + __u64 ino; + __u32 uid; + __u32 gid; + __u32 pid; + __u32 tgid; + __u32 len; + char name[NAME_MAX + 1]; +}; +typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; +typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; +typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +typedef struct autofs_v5_packet autofs_packet_expire_direct_t; +union autofs_v5_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_v5_packet v5_packet; + autofs_packet_missing_indirect_t missing_indirect; + autofs_packet_expire_indirect_t expire_indirect; + autofs_packet_missing_direct_t missing_direct; + autofs_packet_expire_direct_t expire_direct; +}; +enum { + AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66, + AUTOFS_IOC_PROTOSUBVER_CMD, + AUTOFS_IOC_ASKUMOUNT_CMD = 0x70, +}; +#define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int) +#define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int) +#define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int) #endif diff --git a/libc/kernel/uapi/linux/auto_fs4.h b/libc/kernel/uapi/linux/auto_fs4.h index be6766bc8..41f3c8c71 100644 --- a/libc/kernel/uapi/linux/auto_fs4.h +++ b/libc/kernel/uapi/linux/auto_fs4.h @@ -16,75 +16,7 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef _LINUX_AUTO_FS4_H -#define _LINUX_AUTO_FS4_H -#include <linux/types.h> +#ifndef _UAPI_LINUX_AUTO_FS4_H +#define _UAPI_LINUX_AUTO_FS4_H #include <linux/auto_fs.h> -#undef AUTOFS_PROTO_VERSION -#undef AUTOFS_MIN_PROTO_VERSION -#undef AUTOFS_MAX_PROTO_VERSION -#define AUTOFS_PROTO_VERSION 5 -#define AUTOFS_MIN_PROTO_VERSION 3 -#define AUTOFS_MAX_PROTO_VERSION 5 -#define AUTOFS_PROTO_SUBVERSION 2 -#define AUTOFS_EXP_IMMEDIATE 1 -#define AUTOFS_EXP_LEAVES 2 -#define AUTOFS_TYPE_ANY 0U -#define AUTOFS_TYPE_INDIRECT 1U -#define AUTOFS_TYPE_DIRECT 2U -#define AUTOFS_TYPE_OFFSET 4U -enum autofs_notify { - NFY_NONE, - NFY_MOUNT, - NFY_EXPIRE -}; -#define autofs_ptype_expire_multi 2 -#define autofs_ptype_missing_indirect 3 -#define autofs_ptype_expire_indirect 4 -#define autofs_ptype_missing_direct 5 -#define autofs_ptype_expire_direct 6 -struct autofs_packet_expire_multi { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[NAME_MAX + 1]; -}; -union autofs_packet_union { - struct autofs_packet_hdr hdr; - struct autofs_packet_missing missing; - struct autofs_packet_expire expire; - struct autofs_packet_expire_multi expire_multi; -}; -struct autofs_v5_packet { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - __u32 dev; - __u64 ino; - __u32 uid; - __u32 gid; - __u32 pid; - __u32 tgid; - __u32 len; - char name[NAME_MAX + 1]; -}; -typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; -typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; -typedef struct autofs_v5_packet autofs_packet_missing_direct_t; -typedef struct autofs_v5_packet autofs_packet_expire_direct_t; -union autofs_v5_packet_union { - struct autofs_packet_hdr hdr; - struct autofs_v5_packet v5_packet; - autofs_packet_missing_indirect_t missing_indirect; - autofs_packet_expire_indirect_t expire_indirect; - autofs_packet_missing_direct_t missing_direct; - autofs_packet_expire_direct_t expire_direct; -}; -enum { - AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66, - AUTOFS_IOC_PROTOSUBVER_CMD, - AUTOFS_IOC_ASKUMOUNT_CMD = 0x70, -}; -#define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int) -#define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int) -#define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int) #endif diff --git a/libc/kernel/uapi/linux/bcache.h b/libc/kernel/uapi/linux/bcache.h index 4c7e32a1c..1bee0a30a 100644 --- a/libc/kernel/uapi/linux/bcache.h +++ b/libc/kernel/uapi/linux/bcache.h @@ -29,8 +29,8 @@ struct bkey { __u64 ptr[]; }; #define KEY_FIELD(name,field,offset,size) BITMASK(name, struct bkey, field, offset, size) -#define PTR_FIELD(name,offset,size) static inline __u64 name(const struct bkey * k, unsigned i) \ -{ return(k->ptr[i] >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(struct bkey * k, unsigned i, __u64 v) \ +#define PTR_FIELD(name,offset,size) static inline __u64 name(const struct bkey * k, unsigned int i) \ +{ return(k->ptr[i] >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(struct bkey * k, unsigned int i, __u64 v) \ { k->ptr[i] &= ~(~(~0ULL << size) << offset); k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \ } #define KEY_SIZE_BITS 16 diff --git a/libc/kernel/uapi/linux/blkzoned.h b/libc/kernel/uapi/linux/blkzoned.h index c071c9846..eaff1d80e 100644 --- a/libc/kernel/uapi/linux/blkzoned.h +++ b/libc/kernel/uapi/linux/blkzoned.h @@ -50,7 +50,7 @@ struct blk_zone_report { __u32 nr_zones; __u8 reserved[4]; struct blk_zone zones[0]; -} __packed; +}; struct blk_zone_range { __u64 sector; __u64 nr_sectors; diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h index 0eb0d4547..a1879135a 100644 --- a/libc/kernel/uapi/linux/bpf.h +++ b/libc/kernel/uapi/linux/bpf.h @@ -65,6 +65,10 @@ struct bpf_lpm_trie_key { __u32 prefixlen; __u8 data[0]; }; +struct bpf_cgroup_storage_key { + __u64 cgroup_inode_id; + __u32 attach_type; +}; enum bpf_cmd { BPF_MAP_CREATE, BPF_MAP_LOOKUP_ELEM, @@ -84,6 +88,9 @@ enum bpf_cmd { BPF_OBJ_GET_INFO_BY_FD, BPF_PROG_QUERY, BPF_RAW_TRACEPOINT_OPEN, + BPF_BTF_LOAD, + BPF_BTF_GET_FD_BY_ID, + BPF_TASK_FD_QUERY, }; enum bpf_map_type { BPF_MAP_TYPE_UNSPEC, @@ -103,6 +110,10 @@ enum bpf_map_type { BPF_MAP_TYPE_DEVMAP, BPF_MAP_TYPE_SOCKMAP, BPF_MAP_TYPE_CPUMAP, + BPF_MAP_TYPE_XSKMAP, + BPF_MAP_TYPE_SOCKHASH, + BPF_MAP_TYPE_CGROUP_STORAGE, + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, }; enum bpf_prog_type { BPF_PROG_TYPE_UNSPEC, @@ -124,6 +135,9 @@ enum bpf_prog_type { BPF_PROG_TYPE_SK_MSG, BPF_PROG_TYPE_RAW_TRACEPOINT, BPF_PROG_TYPE_CGROUP_SOCK_ADDR, + BPF_PROG_TYPE_LWT_SEG6LOCAL, + BPF_PROG_TYPE_LIRC_MODE2, + BPF_PROG_TYPE_SK_REUSEPORT, }; enum bpf_attach_type { BPF_CGROUP_INET_INGRESS, @@ -140,6 +154,9 @@ enum bpf_attach_type { BPF_CGROUP_INET6_CONNECT, BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_POST_BIND, + BPF_CGROUP_UDP4_SENDMSG, + BPF_CGROUP_UDP6_SENDMSG, + BPF_LIRC_MODE2, __MAX_BPF_ATTACH_TYPE }; #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE @@ -184,6 +201,9 @@ union bpf_attr { __u32 numa_node; char map_name[BPF_OBJ_NAME_LEN]; __u32 map_ifindex; + __u32 btf_fd; + __u32 btf_key_type_id; + __u32 btf_value_type_id; }; struct { __u32 map_fd; @@ -234,6 +254,7 @@ union bpf_attr { __u32 start_id; __u32 prog_id; __u32 map_id; + __u32 btf_id; }; __u32 next_id; __u32 open_flags; @@ -255,8 +276,26 @@ union bpf_attr { __u64 name; __u32 prog_fd; } raw_tracepoint; + struct { + __aligned_u64 btf; + __aligned_u64 btf_log_buf; + __u32 btf_size; + __u32 btf_log_size; + __u32 btf_log_level; + }; + struct { + __u32 pid; + __u32 fd; + __u32 flags; + __u32 buf_len; + __aligned_u64 buf; + __u32 prog_id; + __u32 fd_type; + __u64 probe_offset; + __u64 probe_addr; + } task_fd_query; } __attribute__((aligned(8))); -#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), +#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x enum bpf_func_id { __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID, @@ -274,6 +313,7 @@ enum bpf_func_id { #define BPF_F_USER_STACK (1ULL << 8) #define BPF_F_FAST_STACK_CMP (1ULL << 9) #define BPF_F_REUSE_STACKID (1ULL << 10) +#define BPF_F_USER_BUILD_ID (1ULL << 11) #define BPF_F_ZERO_CSUM_TX (1ULL << 1) #define BPF_F_DONT_FRAGMENT (1ULL << 2) #define BPF_F_SEQ_NUMBER (1ULL << 3) @@ -283,6 +323,14 @@ enum bpf_func_id { enum bpf_adj_room_mode { BPF_ADJ_ROOM_NET, }; +enum bpf_hdr_start_off { + BPF_HDR_START_MAC, + BPF_HDR_START_NET, +}; +enum bpf_lwt_encap_mode { + BPF_LWT_ENCAP_SEG6, + BPF_LWT_ENCAP_SEG6_INLINE +}; struct __sk_buff { __u32 len; __u32 pkt_type; @@ -322,6 +370,16 @@ struct bpf_tunnel_key { __u16 tunnel_ext; __u32 tunnel_label; }; +struct bpf_xfrm_state { + __u32 reqid; + __u32 spi; + __u16 family; + __u16 ext; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; +}; enum bpf_ret_code { BPF_OK = 0, BPF_DROP = 2, @@ -360,6 +418,22 @@ enum sk_action { struct sk_msg_md { void * data; void * data_end; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; +}; +struct sk_reuseport_md { + void * data; + void * data_end; + __u32 len; + __u32 eth_protocol; + __u32 ip_protocol; + __u32 bind_inany; + __u32 hash; }; #define BPF_TAG_SIZE 8 struct bpf_prog_info { @@ -376,9 +450,13 @@ struct bpf_prog_info { __aligned_u64 map_ids; char name[BPF_OBJ_NAME_LEN]; __u32 ifindex; - __u32 : 32; + __u32 gpl_compatible : 1; __u64 netns_dev; __u64 netns_ino; + __u32 nr_jited_ksyms; + __u32 nr_jited_func_lens; + __aligned_u64 jited_ksyms; + __aligned_u64 jited_func_lens; } __attribute__((aligned(8))); struct bpf_map_info { __u32 type; @@ -392,6 +470,14 @@ struct bpf_map_info { __u32 : 32; __u64 netns_dev; __u64 netns_ino; + __u32 btf_id; + __u32 btf_key_type_id; + __u32 btf_value_type_id; +} __attribute__((aligned(8))); +struct bpf_btf_info { + __aligned_u64 btf; + __u32 btf_size; + __u32 id; } __attribute__((aligned(8))); struct bpf_sock_addr { __u32 user_family; @@ -401,6 +487,8 @@ struct bpf_sock_addr { __u32 family; __u32 type; __u32 protocol; + __u32 msg_src_ip4; + __u32 msg_src_ip6[4]; }; struct bpf_sock_ops { __u32 op; @@ -459,6 +547,7 @@ enum { BPF_SOCK_OPS_RTO_CB, BPF_SOCK_OPS_RETRANS_CB, BPF_SOCK_OPS_STATE_CB, + BPF_SOCK_OPS_TCP_LISTEN_CB, }; enum { BPF_TCP_ESTABLISHED = 1, @@ -495,4 +584,50 @@ struct bpf_cgroup_dev_ctx { struct bpf_raw_tracepoint_args { __u64 args[0]; }; +#define BPF_FIB_LOOKUP_DIRECT BIT(0) +#define BPF_FIB_LOOKUP_OUTPUT BIT(1) +enum { + BPF_FIB_LKUP_RET_SUCCESS, + BPF_FIB_LKUP_RET_BLACKHOLE, + BPF_FIB_LKUP_RET_UNREACHABLE, + BPF_FIB_LKUP_RET_PROHIBIT, + BPF_FIB_LKUP_RET_NOT_FWDED, + BPF_FIB_LKUP_RET_FWD_DISABLED, + BPF_FIB_LKUP_RET_UNSUPP_LWT, + BPF_FIB_LKUP_RET_NO_NEIGH, + BPF_FIB_LKUP_RET_FRAG_NEEDED, +}; +struct bpf_fib_lookup { + __u8 family; + __u8 l4_protocol; + __be16 sport; + __be16 dport; + __u16 tot_len; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + __u8 smac[6]; + __u8 dmac[6]; +}; +enum bpf_task_fd_type { + BPF_FD_TYPE_RAW_TRACEPOINT, + BPF_FD_TYPE_TRACEPOINT, + BPF_FD_TYPE_KPROBE, + BPF_FD_TYPE_KRETPROBE, + BPF_FD_TYPE_UPROBE, + BPF_FD_TYPE_URETPROBE, +}; #endif diff --git a/libc/kernel/uapi/linux/ncp_no.h b/libc/kernel/uapi/linux/bpfilter.h index fe5caa0b7..a7d8d66b7 100644 --- a/libc/kernel/uapi/linux/ncp_no.h +++ b/libc/kernel/uapi/linux/bpfilter.h @@ -16,19 +16,19 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef _NCP_NO -#define _NCP_NO -#define aRONLY (__cpu_to_le32(1)) -#define aHIDDEN (__cpu_to_le32(2)) -#define aSYSTEM (__cpu_to_le32(4)) -#define aEXECUTE (__cpu_to_le32(8)) -#define aDIR (__cpu_to_le32(0x10)) -#define aARCH (__cpu_to_le32(0x20)) -#define aSHARED (__cpu_to_le32(0x80)) -#define aDONTSUBALLOCATE (__cpu_to_le32(1L << 11)) -#define aTRANSACTIONAL (__cpu_to_le32(1L << 12)) -#define aPURGE (__cpu_to_le32(1L << 16)) -#define aRENAMEINHIBIT (__cpu_to_le32(1L << 17)) -#define aDELETEINHIBIT (__cpu_to_le32(1L << 18)) -#define aDONTCOMPRESS (__cpu_to_le32(1L << 27)) +#ifndef _UAPI_LINUX_BPFILTER_H +#define _UAPI_LINUX_BPFILTER_H +#include <linux/if.h> +enum { + BPFILTER_IPT_SO_SET_REPLACE = 64, + BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65, + BPFILTER_IPT_SET_MAX, +}; +enum { + BPFILTER_IPT_SO_GET_INFO = 64, + BPFILTER_IPT_SO_GET_ENTRIES = 65, + BPFILTER_IPT_SO_GET_REVISION_MATCH = 66, + BPFILTER_IPT_SO_GET_REVISION_TARGET = 67, + BPFILTER_IPT_GET_MAX, +}; #endif diff --git a/libc/kernel/uapi/linux/btf.h b/libc/kernel/uapi/linux/btf.h new file mode 100644 index 000000000..33dde5ac5 --- /dev/null +++ b/libc/kernel/uapi/linux/btf.h @@ -0,0 +1,81 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_BTF_H__ +#define _UAPI__LINUX_BTF_H__ +#include <linux/types.h> +#define BTF_MAGIC 0xeB9F +#define BTF_VERSION 1 +struct btf_header { + __u16 magic; + __u8 version; + __u8 flags; + __u32 hdr_len; + __u32 type_off; + __u32 type_len; + __u32 str_off; + __u32 str_len; +}; +#define BTF_MAX_TYPE 0x0000ffff +#define BTF_MAX_NAME_OFFSET 0x0000ffff +#define BTF_MAX_VLEN 0xffff +struct btf_type { + __u32 name_off; + __u32 info; + union { + __u32 size; + __u32 type; + }; +}; +#define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f) +#define BTF_INFO_VLEN(info) ((info) & 0xffff) +#define BTF_KIND_UNKN 0 +#define BTF_KIND_INT 1 +#define BTF_KIND_PTR 2 +#define BTF_KIND_ARRAY 3 +#define BTF_KIND_STRUCT 4 +#define BTF_KIND_UNION 5 +#define BTF_KIND_ENUM 6 +#define BTF_KIND_FWD 7 +#define BTF_KIND_TYPEDEF 8 +#define BTF_KIND_VOLATILE 9 +#define BTF_KIND_CONST 10 +#define BTF_KIND_RESTRICT 11 +#define BTF_KIND_MAX 11 +#define NR_BTF_KINDS 12 +#define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) +#define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16) +#define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff) +#define BTF_INT_SIGNED (1 << 0) +#define BTF_INT_CHAR (1 << 1) +#define BTF_INT_BOOL (1 << 2) +struct btf_enum { + __u32 name_off; + __s32 val; +}; +struct btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; +}; +struct btf_member { + __u32 name_off; + __u32 type; + __u32 offset; +}; +#endif diff --git a/libc/kernel/uapi/linux/btrfs.h b/libc/kernel/uapi/linux/btrfs.h index a162bb086..2bb79d878 100644 --- a/libc/kernel/uapi/linux/btrfs.h +++ b/libc/kernel/uapi/linux/btrfs.h @@ -248,6 +248,13 @@ struct btrfs_ioctl_ino_lookup_args { __u64 objectid; char name[BTRFS_INO_LOOKUP_PATH_MAX]; }; +#define BTRFS_INO_LOOKUP_USER_PATH_MAX (4080 - BTRFS_VOL_NAME_MAX - 1) +struct btrfs_ioctl_ino_lookup_user_args { + __u64 dirid; + __u64 treeid; + char name[BTRFS_VOL_NAME_MAX + 1]; + char path[BTRFS_INO_LOOKUP_USER_PATH_MAX]; +}; struct btrfs_ioctl_search_key { __u64 tree_id; __u64 min_objectid; @@ -406,6 +413,36 @@ struct btrfs_ioctl_send_args { __u64 flags; __u64 reserved[4]; }; +struct btrfs_ioctl_get_subvol_info_args { + __u64 treeid; + char name[BTRFS_VOL_NAME_MAX + 1]; + __u64 parent_id; + __u64 dirid; + __u64 generation; + __u64 flags; + __u8 uuid[BTRFS_UUID_SIZE]; + __u8 parent_uuid[BTRFS_UUID_SIZE]; + __u8 received_uuid[BTRFS_UUID_SIZE]; + __u64 ctransid; + __u64 otransid; + __u64 stransid; + __u64 rtransid; + struct btrfs_ioctl_timespec ctime; + struct btrfs_ioctl_timespec otime; + struct btrfs_ioctl_timespec stime; + struct btrfs_ioctl_timespec rtime; + __u64 reserved[8]; +}; +#define BTRFS_MAX_ROOTREF_BUFFER_NUM 255 +struct btrfs_ioctl_get_subvol_rootref_args { + __u64 min_treeid; + struct { + __u64 treeid; + __u64 dirid; + } rootref[BTRFS_MAX_ROOTREF_BUFFER_NUM]; + __u8 num_items; + __u8 align[7]; +}; enum btrfs_err_code { BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1, BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET, @@ -472,4 +509,7 @@ enum btrfs_err_code { #define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[3]) #define BTRFS_IOC_RM_DEV_V2 _IOW(BTRFS_IOCTL_MAGIC, 58, struct btrfs_ioctl_vol_args_v2) #define BTRFS_IOC_LOGICAL_INO_V2 _IOWR(BTRFS_IOCTL_MAGIC, 59, struct btrfs_ioctl_logical_ino_args) +#define BTRFS_IOC_GET_SUBVOL_INFO _IOR(BTRFS_IOCTL_MAGIC, 60, struct btrfs_ioctl_get_subvol_info_args) +#define BTRFS_IOC_GET_SUBVOL_ROOTREF _IOWR(BTRFS_IOCTL_MAGIC, 61, struct btrfs_ioctl_get_subvol_rootref_args) +#define BTRFS_IOC_INO_LOOKUP_USER _IOWR(BTRFS_IOCTL_MAGIC, 62, struct btrfs_ioctl_ino_lookup_user_args) #endif diff --git a/libc/kernel/uapi/linux/cec.h b/libc/kernel/uapi/linux/cec.h index 98892f713..fd0f82481 100644 --- a/libc/kernel/uapi/linux/cec.h +++ b/libc/kernel/uapi/linux/cec.h @@ -132,6 +132,8 @@ struct cec_log_addrs { #define CEC_EVENT_PIN_CEC_HIGH 4 #define CEC_EVENT_PIN_HPD_LOW 5 #define CEC_EVENT_PIN_HPD_HIGH 6 +#define CEC_EVENT_PIN_5V_LOW 7 +#define CEC_EVENT_PIN_5V_HIGH 8 #define CEC_EVENT_FL_INITIAL_STATE (1 << 0) #define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1) struct cec_event_state_change { diff --git a/libc/kernel/uapi/linux/cn_proc.h b/libc/kernel/uapi/linux/cn_proc.h index 8aa48a836..411b7253e 100644 --- a/libc/kernel/uapi/linux/cn_proc.h +++ b/libc/kernel/uapi/linux/cn_proc.h @@ -82,11 +82,15 @@ struct proc_event { struct coredump_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; + __kernel_pid_t parent_pid; + __kernel_pid_t parent_tgid; } coredump; struct exit_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; __u32 exit_code, exit_signal; + __kernel_pid_t parent_pid; + __kernel_pid_t parent_tgid; } exit; } event_data; }; diff --git a/libc/kernel/uapi/linux/dcbnl.h b/libc/kernel/uapi/linux/dcbnl.h index 2fe4cce5c..d1f2ebabf 100644 --- a/libc/kernel/uapi/linux/dcbnl.h +++ b/libc/kernel/uapi/linux/dcbnl.h @@ -71,6 +71,13 @@ struct ieee_pfc { __u64 requests[IEEE_8021QAZ_MAX_TCS]; __u64 indications[IEEE_8021QAZ_MAX_TCS]; }; +#define IEEE_8021Q_MAX_PRIORITIES 8 +#define DCBX_MAX_BUFFERS 8 +struct dcbnl_buffer { + __u8 prio2buffer[IEEE_8021Q_MAX_PRIORITIES]; + __u32 buffer_size[DCBX_MAX_BUFFERS]; + __u32 total_size; +}; #define CEE_DCBX_MAX_PGS 8 #define CEE_DCBX_MAX_PRIO 8 struct cee_pg { @@ -170,6 +177,7 @@ enum ieee_attrs { DCB_ATTR_IEEE_MAXRATE, DCB_ATTR_IEEE_QCN, DCB_ATTR_IEEE_QCN_STATS, + DCB_ATTR_DCB_BUFFER, __DCB_ATTR_IEEE_MAX }; #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1) diff --git a/libc/kernel/uapi/linux/devlink.h b/libc/kernel/uapi/linux/devlink.h index 07c5752cb..ead40add2 100644 --- a/libc/kernel/uapi/linux/devlink.h +++ b/libc/kernel/uapi/linux/devlink.h @@ -62,6 +62,15 @@ enum devlink_command { DEVLINK_CMD_RESOURCE_SET, DEVLINK_CMD_RESOURCE_DUMP, DEVLINK_CMD_RELOAD, + DEVLINK_CMD_PARAM_GET, + DEVLINK_CMD_PARAM_SET, + DEVLINK_CMD_PARAM_NEW, + DEVLINK_CMD_PARAM_DEL, + DEVLINK_CMD_REGION_GET, + DEVLINK_CMD_REGION_SET, + DEVLINK_CMD_REGION_NEW, + DEVLINK_CMD_REGION_DEL, + DEVLINK_CMD_REGION_READ, __DEVLINK_CMD_MAX, DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1 }; @@ -94,6 +103,18 @@ enum devlink_eswitch_encap_mode { DEVLINK_ESWITCH_ENCAP_MODE_NONE, DEVLINK_ESWITCH_ENCAP_MODE_BASIC, }; +enum devlink_port_flavour { + DEVLINK_PORT_FLAVOUR_PHYSICAL, + DEVLINK_PORT_FLAVOUR_CPU, + DEVLINK_PORT_FLAVOUR_DSA, +}; +enum devlink_param_cmode { + DEVLINK_PARAM_CMODE_RUNTIME, + DEVLINK_PARAM_CMODE_DRIVERINIT, + DEVLINK_PARAM_CMODE_PERMANENT, + __DEVLINK_PARAM_CMODE_MAX, + DEVLINK_PARAM_CMODE_MAX = __DEVLINK_PARAM_CMODE_MAX - 1 +}; enum devlink_attr { DEVLINK_ATTR_UNSPEC, DEVLINK_ATTR_BUS_NAME, @@ -172,6 +193,27 @@ enum devlink_attr { DEVLINK_ATTR_RESOURCE_OCC, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS, + DEVLINK_ATTR_PORT_FLAVOUR, + DEVLINK_ATTR_PORT_NUMBER, + DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER, + DEVLINK_ATTR_PARAM, + DEVLINK_ATTR_PARAM_NAME, + DEVLINK_ATTR_PARAM_GENERIC, + DEVLINK_ATTR_PARAM_TYPE, + DEVLINK_ATTR_PARAM_VALUES_LIST, + DEVLINK_ATTR_PARAM_VALUE, + DEVLINK_ATTR_PARAM_VALUE_DATA, + DEVLINK_ATTR_PARAM_VALUE_CMODE, + DEVLINK_ATTR_REGION_NAME, + DEVLINK_ATTR_REGION_SIZE, + DEVLINK_ATTR_REGION_SNAPSHOTS, + DEVLINK_ATTR_REGION_SNAPSHOT, + DEVLINK_ATTR_REGION_SNAPSHOT_ID, + DEVLINK_ATTR_REGION_CHUNKS, + DEVLINK_ATTR_REGION_CHUNK, + DEVLINK_ATTR_REGION_CHUNK_DATA, + DEVLINK_ATTR_REGION_CHUNK_ADDR, + DEVLINK_ATTR_REGION_CHUNK_LEN, __DEVLINK_ATTR_MAX, DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1 }; diff --git a/libc/kernel/uapi/linux/dvb/audio.h b/libc/kernel/uapi/linux/dvb/audio.h index e606f792c..0a527c10e 100644 --- a/libc/kernel/uapi/linux/dvb/audio.h +++ b/libc/kernel/uapi/linux/dvb/audio.h @@ -48,12 +48,6 @@ typedef struct audio_status { int bypass_mode; audio_mixer_t mixer_state; } audio_status_t; -typedef struct audio_karaoke { - int vocal1; - int vocal2; - int melody; -} audio_karaoke_t; -typedef __u16 audio_attributes_t; #define AUDIO_CAP_DTS 1 #define AUDIO_CAP_LPCM 2 #define AUDIO_CAP_MP1 4 @@ -78,9 +72,5 @@ typedef __u16 audio_attributes_t; #define AUDIO_SET_ID _IO('o', 13) #define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t) #define AUDIO_SET_STREAMTYPE _IO('o', 15) -#define AUDIO_SET_EXT_ID _IO('o', 16) -#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t) -#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t) -#define AUDIO_GET_PTS _IOR('o', 19, __u64) #define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) #endif diff --git a/libc/kernel/uapi/linux/dvb/video.h b/libc/kernel/uapi/linux/dvb/video.h index 7ada1a0a0..6577e1ffd 100644 --- a/libc/kernel/uapi/linux/dvb/video.h +++ b/libc/kernel/uapi/linux/dvb/video.h @@ -26,16 +26,6 @@ typedef enum { VIDEO_FORMAT_221_1 } video_format_t; typedef enum { - VIDEO_SYSTEM_PAL, - VIDEO_SYSTEM_NTSC, - VIDEO_SYSTEM_PALN, - VIDEO_SYSTEM_PALNc, - VIDEO_SYSTEM_PALM, - VIDEO_SYSTEM_NTSC60, - VIDEO_SYSTEM_PAL60, - VIDEO_SYSTEM_PALM60 -} video_system_t; -typedef enum { VIDEO_PAN_SCAN, VIDEO_LETTER_BOX, VIDEO_CENTER_CUT_OUT @@ -107,27 +97,6 @@ struct video_still_picture { char __user * iFrame; __s32 size; }; -typedef struct video_highlight { - int active; - __u8 contrast1; - __u8 contrast2; - __u8 color1; - __u8 color2; - __u32 ypos; - __u32 xpos; -} video_highlight_t; -typedef struct video_spu { - int active; - int stream_id; -} video_spu_t; -typedef struct video_spu_palette { - int length; - __u8 __user * palette; -} video_spu_palette_t; -typedef struct video_navi_pack { - int length; - __u8 data[1024]; -} video_navi_pack_t; typedef __u16 video_attributes_t; #define VIDEO_CAP_MPEG1 1 #define VIDEO_CAP_MPEG2 2 @@ -150,17 +119,9 @@ typedef __u16 video_attributes_t; #define VIDEO_SLOWMOTION _IO('o', 32) #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int) #define VIDEO_CLEAR_BUFFER _IO('o', 34) -#define VIDEO_SET_ID _IO('o', 35) #define VIDEO_SET_STREAMTYPE _IO('o', 36) #define VIDEO_SET_FORMAT _IO('o', 37) -#define VIDEO_SET_SYSTEM _IO('o', 38) -#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t) -#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t) -#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t) -#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t) -#define VIDEO_SET_ATTRIBUTES _IO('o', 53) #define VIDEO_GET_SIZE _IOR('o', 55, video_size_t) -#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int) #define VIDEO_GET_PTS _IOR('o', 57, __u64) #define VIDEO_GET_FRAME_COUNT _IOR('o', 58, __u64) #define VIDEO_COMMAND _IOWR('o', 59, struct video_command) diff --git a/libc/kernel/uapi/linux/elf.h b/libc/kernel/uapi/linux/elf.h index 195ef0978..1f69e1bfe 100644 --- a/libc/kernel/uapi/linux/elf.h +++ b/libc/kernel/uapi/linux/elf.h @@ -356,6 +356,9 @@ typedef struct elf64_shdr { #define NT_ARM_SYSTEM_CALL 0x404 #define NT_ARM_SVE 0x405 #define NT_ARC_V2 0x600 +#define NT_VMCOREDD 0x700 +#define NT_MIPS_DSP 0x800 +#define NT_MIPS_FP_MODE 0x801 typedef struct elf32_note { Elf32_Word n_namesz; Elf32_Word n_descsz; diff --git a/libc/kernel/uapi/linux/errqueue.h b/libc/kernel/uapi/linux/errqueue.h index 196189be2..f4a244fc0 100644 --- a/libc/kernel/uapi/linux/errqueue.h +++ b/libc/kernel/uapi/linux/errqueue.h @@ -34,9 +34,12 @@ struct sock_extended_err { #define SO_EE_ORIGIN_ICMP6 3 #define SO_EE_ORIGIN_TXSTATUS 4 #define SO_EE_ORIGIN_ZEROCOPY 5 +#define SO_EE_ORIGIN_TXTIME 6 #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS #define SO_EE_OFFENDER(ee) ((struct sockaddr *) ((ee) + 1)) #define SO_EE_CODE_ZEROCOPY_COPIED 1 +#define SO_EE_CODE_TXTIME_INVALID_PARAM 1 +#define SO_EE_CODE_TXTIME_MISSED 2 struct scm_timestamping { struct timespec ts[3]; }; diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h index 92607f959..25e1a9ee9 100644 --- a/libc/kernel/uapi/linux/ethtool.h +++ b/libc/kernel/uapi/linux/ethtool.h @@ -320,6 +320,17 @@ struct ethtool_rx_flow_spec { #define ETHTOOL_RX_FLOW_SPEC_RING 0x00000000FFFFFFFFLL #define ETHTOOL_RX_FLOW_SPEC_RING_VF 0x000000FF00000000LL #define ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF 32 +struct ethtool_rxnfc { + __u32 cmd; + __u32 flow_type; + __u64 data; + struct ethtool_rx_flow_spec fs; + union { + __u32 rule_cnt; + __u32 rss_context; + }; + __u32 rule_locs[0]; +}; struct ethtool_rxfh_indir { __u32 cmd; __u32 size; @@ -683,6 +694,7 @@ enum ethtool_link_mode_bit_indices { #define WAKE_ARP (1 << 4) #define WAKE_MAGIC (1 << 5) #define WAKE_MAGICSECURE (1 << 6) +#define WAKE_FILTER (1 << 7) #define TCP_V4_FLOW 0x01 #define UDP_V4_FLOW 0x02 #define SCTP_V4_FLOW 0x03 @@ -713,6 +725,7 @@ enum ethtool_link_mode_bit_indices { #define RXH_L4_B_2_3 (1 << 7) #define RXH_DISCARD (1 << 31) #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL +#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL #define RX_CLS_LOC_SPECIAL 0x80000000 #define RX_CLS_LOC_ANY 0xffffffff #define RX_CLS_LOC_FIRST 0xfffffffe diff --git a/libc/kernel/uapi/linux/eventpoll.h b/libc/kernel/uapi/linux/eventpoll.h index 2e5ba8ee6..d2601e5cb 100644 --- a/libc/kernel/uapi/linux/eventpoll.h +++ b/libc/kernel/uapi/linux/eventpoll.h @@ -37,10 +37,10 @@ #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) +#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/fpga-dfl.h b/libc/kernel/uapi/linux/fpga-dfl.h new file mode 100644 index 000000000..bf9a7c76d --- /dev/null +++ b/libc/kernel/uapi/linux/fpga-dfl.h @@ -0,0 +1,74 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_FPGA_DFL_H +#define _UAPI_LINUX_FPGA_DFL_H +#include <linux/types.h> +#include <linux/ioctl.h> +#define DFL_FPGA_API_VERSION 0 +#define DFL_FPGA_MAGIC 0xB6 +#define DFL_FPGA_BASE 0 +#define DFL_PORT_BASE 0x40 +#define DFL_FME_BASE 0x80 +#define DFL_FPGA_GET_API_VERSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 0) +#define DFL_FPGA_CHECK_EXTENSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 1) +#define DFL_FPGA_PORT_RESET _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 0) +struct dfl_fpga_port_info { + __u32 argsz; + __u32 flags; + __u32 num_regions; + __u32 num_umsgs; +}; +#define DFL_FPGA_PORT_GET_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1) +struct dfl_fpga_port_region_info { + __u32 argsz; + __u32 flags; +#define DFL_PORT_REGION_READ (1 << 0) +#define DFL_PORT_REGION_WRITE (1 << 1) +#define DFL_PORT_REGION_MMAP (1 << 2) + __u32 index; +#define DFL_PORT_REGION_INDEX_AFU 0 +#define DFL_PORT_REGION_INDEX_STP 1 + __u32 padding; + __u64 size; + __u64 offset; +}; +#define DFL_FPGA_PORT_GET_REGION_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 2) +struct dfl_fpga_port_dma_map { + __u32 argsz; + __u32 flags; + __u64 user_addr; + __u64 length; + __u64 iova; +}; +#define DFL_FPGA_PORT_DMA_MAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3) +struct dfl_fpga_port_dma_unmap { + __u32 argsz; + __u32 flags; + __u64 iova; +}; +#define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4) +struct dfl_fpga_fme_port_pr { + __u32 argsz; + __u32 flags; + __u32 port_id; + __u32 buffer_size; + __u64 buffer_address; +}; +#define DFL_FPGA_FME_PORT_PR _IO(DFL_FPGA_MAGIC, DFL_FME_BASE + 0) +#endif diff --git a/libc/kernel/uapi/linux/fs.h b/libc/kernel/uapi/linux/fs.h index 77c45c82a..5c237d8fc 100644 --- a/libc/kernel/uapi/linux/fs.h +++ b/libc/kernel/uapi/linux/fs.h @@ -170,6 +170,7 @@ struct fsxattr { #define FICLONE _IOW(0x94, 9, int) #define FICLONERANGE _IOW(0x94, 13, struct file_clone_range) #define FIDEDUPERANGE _IOWR(0x94, 54, struct file_dedupe_range) +#define FSLABEL_MAX 256 #define FS_IOC_GETFLAGS _IOR('f', 1, long) #define FS_IOC_SETFLAGS _IOW('f', 2, long) #define FS_IOC_GETVERSION _IOR('v', 1, long) @@ -181,6 +182,8 @@ struct fsxattr { #define FS_IOC32_SETVERSION _IOW('v', 2, int) #define FS_IOC_FSGETXATTR _IOR('X', 31, struct fsxattr) #define FS_IOC_FSSETXATTR _IOW('X', 32, struct fsxattr) +#define FS_IOC_GETFSLABEL _IOR(0x94, 49, char[FSLABEL_MAX]) +#define FS_IOC_SETFSLABEL _IOW(0x94, 50, char[FSLABEL_MAX]) #define FS_KEY_DESCRIPTOR_SIZE 8 #define FS_POLICY_FLAGS_PAD_4 0x00 #define FS_POLICY_FLAGS_PAD_8 0x01 @@ -195,6 +198,8 @@ struct fsxattr { #define FS_ENCRYPTION_MODE_AES_256_CTS 4 #define FS_ENCRYPTION_MODE_AES_128_CBC 5 #define FS_ENCRYPTION_MODE_AES_128_CTS 6 +#define FS_ENCRYPTION_MODE_SPECK128_256_XTS 7 +#define FS_ENCRYPTION_MODE_SPECK128_256_CTS 8 struct fscrypt_policy { __u8 version; __u8 contents_encryption_mode; diff --git a/libc/kernel/uapi/linux/fsi.h b/libc/kernel/uapi/linux/fsi.h new file mode 100644 index 000000000..fc88464d6 --- /dev/null +++ b/libc/kernel/uapi/linux/fsi.h @@ -0,0 +1,51 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_FSI_H +#define _UAPI_LINUX_FSI_H +#include <linux/types.h> +#include <linux/ioctl.h> +struct scom_access { + __u64 addr; + __u64 data; + __u64 mask; + __u32 intf_errors; +#define SCOM_INTF_ERR_PARITY 0x00000001 +#define SCOM_INTF_ERR_PROTECTION 0x00000002 +#define SCOM_INTF_ERR_ABORT 0x00000004 +#define SCOM_INTF_ERR_UNKNOWN 0x80000000 + __u8 pib_status; +#define SCOM_PIB_SUCCESS 0 +#define SCOM_PIB_BLOCKED 1 +#define SCOM_PIB_OFFLINE 2 +#define SCOM_PIB_PARTIAL 3 +#define SCOM_PIB_BAD_ADDR 4 +#define SCOM_PIB_CLK_ERR 5 +#define SCOM_PIB_PARITY_ERR 6 +#define SCOM_PIB_TIMEOUT 7 + __u8 pad; +}; +#define SCOM_CHECK_SUPPORTED 0x00000001 +#define SCOM_CHECK_PROTECTED 0x00000002 +#define SCOM_RESET_INTF 0x00000001 +#define SCOM_RESET_PIB 0x00000002 +#define FSI_SCOM_CHECK _IOR('s', 0x00, __u32) +#define FSI_SCOM_READ _IOWR('s', 0x01, struct scom_access) +#define FSI_SCOM_WRITE _IOWR('s', 0x02, struct scom_access) +#define FSI_SCOM_RESET _IOW('s', 0x03, __u32) +#endif diff --git a/libc/kernel/uapi/linux/fuse.h b/libc/kernel/uapi/linux/fuse.h index 42f9ed621..a727580c2 100644 --- a/libc/kernel/uapi/linux/fuse.h +++ b/libc/kernel/uapi/linux/fuse.h @@ -20,7 +20,7 @@ #define _LINUX_FUSE_H #include <stdint.h> #define FUSE_KERNEL_VERSION 7 -#define FUSE_KERNEL_MINOR_VERSION 26 +#define FUSE_KERNEL_MINOR_VERSION 27 #define FUSE_ROOT_ID 1 struct fuse_attr { uint64_t ino; @@ -93,6 +93,7 @@ struct fuse_file_lock { #define FUSE_PARALLEL_DIROPS (1 << 18) #define FUSE_HANDLE_KILLPRIV (1 << 19) #define FUSE_POSIX_ACL (1 << 20) +#define FUSE_ABORT_ERROR (1 << 21) #define CUSE_UNRESTRICTED_IOCTL (1 << 0) #define FUSE_RELEASE_FLUSH (1 << 0) #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1) diff --git a/libc/kernel/uapi/linux/if_addr.h b/libc/kernel/uapi/linux/if_addr.h index cefc11b3e..0a4b0aeb4 100644 --- a/libc/kernel/uapi/linux/if_addr.h +++ b/libc/kernel/uapi/linux/if_addr.h @@ -37,6 +37,7 @@ enum { IFA_CACHEINFO, IFA_MULTICAST, IFA_FLAGS, + IFA_RT_PRIORITY, __IFA_MAX, }; #define IFA_MAX (__IFA_MAX - 1) diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h index 8a9993bb8..4bbf21da5 100644 --- a/libc/kernel/uapi/linux/if_link.h +++ b/libc/kernel/uapi/linux/if_link.h @@ -141,6 +141,8 @@ enum { IFLA_CARRIER_UP_COUNT, IFLA_CARRIER_DOWN_COUNT, IFLA_NEW_IFINDEX, + IFLA_MIN_MTU, + IFLA_MAX_MTU, __IFLA_MAX }; #define IFLA_MAX (__IFLA_MAX - 1) @@ -262,6 +264,8 @@ enum { IFLA_BRPORT_BCAST_FLOOD, IFLA_BRPORT_GROUP_FWD_MASK, IFLA_BRPORT_NEIGH_SUPPRESS, + IFLA_BRPORT_ISOLATED, + IFLA_BRPORT_BACKUP_PORT, __IFLA_BRPORT_MAX }; #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) @@ -361,6 +365,13 @@ enum { __IFLA_MACSEC_MAX, }; #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1) +enum { + IFLA_XFRM_UNSPEC, + IFLA_XFRM_LINK, + IFLA_XFRM_IF_ID, + __IFLA_XFRM_MAX +}; +#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1) enum macsec_validation_type { MACSEC_VALIDATE_DISABLED = 0, MACSEC_VALIDATE_CHECK = 1, @@ -412,6 +423,7 @@ enum { IFLA_VXLAN_COLLECT_METADATA, IFLA_VXLAN_LABEL, IFLA_VXLAN_GPE, + IFLA_VXLAN_TTL_INHERIT, __IFLA_VXLAN_MAX }; #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) @@ -714,6 +726,7 @@ enum { XDP_ATTACHED_DRV, XDP_ATTACHED_SKB, XDP_ATTACHED_HW, + XDP_ATTACHED_MULTI, }; enum { IFLA_XDP_UNSPEC, @@ -721,6 +734,9 @@ enum { IFLA_XDP_ATTACHED, IFLA_XDP_FLAGS, IFLA_XDP_PROG_ID, + IFLA_XDP_DRV_PROG_ID, + IFLA_XDP_SKB_PROG_ID, + IFLA_XDP_HW_PROG_ID, __IFLA_XDP_MAX, }; #define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1) diff --git a/libc/kernel/uapi/linux/if_xdp.h b/libc/kernel/uapi/linux/if_xdp.h new file mode 100644 index 000000000..a0935bdc0 --- /dev/null +++ b/libc/kernel/uapi/linux/if_xdp.h @@ -0,0 +1,70 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_IF_XDP_H +#define _LINUX_IF_XDP_H +#include <linux/types.h> +#define XDP_SHARED_UMEM (1 << 0) +#define XDP_COPY (1 << 1) +#define XDP_ZEROCOPY (1 << 2) +struct sockaddr_xdp { + __u16 sxdp_family; + __u16 sxdp_flags; + __u32 sxdp_ifindex; + __u32 sxdp_queue_id; + __u32 sxdp_shared_umem_fd; +}; +struct xdp_ring_offset { + __u64 producer; + __u64 consumer; + __u64 desc; +}; +struct xdp_mmap_offsets { + struct xdp_ring_offset rx; + struct xdp_ring_offset tx; + struct xdp_ring_offset fr; + struct xdp_ring_offset cr; +}; +#define XDP_MMAP_OFFSETS 1 +#define XDP_RX_RING 2 +#define XDP_TX_RING 3 +#define XDP_UMEM_REG 4 +#define XDP_UMEM_FILL_RING 5 +#define XDP_UMEM_COMPLETION_RING 6 +#define XDP_STATISTICS 7 +struct xdp_umem_reg { + __u64 addr; + __u64 len; + __u32 chunk_size; + __u32 headroom; +}; +struct xdp_statistics { + __u64 rx_dropped; + __u64 rx_invalid_descs; + __u64 tx_invalid_descs; +}; +#define XDP_PGOFF_RX_RING 0 +#define XDP_PGOFF_TX_RING 0x80000000 +#define XDP_UMEM_PGOFF_FILL_RING 0x100000000ULL +#define XDP_UMEM_PGOFF_COMPLETION_RING 0x180000000ULL +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; +}; +#endif diff --git a/libc/kernel/uapi/linux/iio/types.h b/libc/kernel/uapi/linux/iio/types.h index 3d4769d53..834a2eb64 100644 --- a/libc/kernel/uapi/linux/iio/types.h +++ b/libc/kernel/uapi/linux/iio/types.h @@ -51,6 +51,8 @@ enum iio_chan_type { IIO_COUNT, IIO_INDEX, IIO_GRAVITY, + IIO_POSITIONRELATIVE, + IIO_PHASE, }; enum iio_modifier { IIO_NO_MOD, @@ -90,6 +92,7 @@ enum iio_modifier { IIO_MOD_CO2, IIO_MOD_VOC, IIO_MOD_LIGHT_UV, + IIO_MOD_LIGHT_DUV, }; enum iio_event_type { IIO_EV_TYPE_THRESH, diff --git a/libc/kernel/uapi/linux/ila.h b/libc/kernel/uapi/linux/ila.h index a5af23a46..75de8eb6e 100644 --- a/libc/kernel/uapi/linux/ila.h +++ b/libc/kernel/uapi/linux/ila.h @@ -39,6 +39,7 @@ enum { ILA_CMD_ADD, ILA_CMD_DEL, ILA_CMD_GET, + ILA_CMD_FLUSH, __ILA_CMD_MAX, }; #define ILA_CMD_MAX (__ILA_CMD_MAX - 1) diff --git a/libc/kernel/uapi/linux/inotify.h b/libc/kernel/uapi/linux/inotify.h index 653dc0774..eb9ac3c2b 100644 --- a/libc/kernel/uapi/linux/inotify.h +++ b/libc/kernel/uapi/linux/inotify.h @@ -47,6 +47,7 @@ struct inotify_event { #define IN_ONLYDIR 0x01000000 #define IN_DONT_FOLLOW 0x02000000 #define IN_EXCL_UNLINK 0x04000000 +#define IN_MASK_CREATE 0x10000000 #define IN_MASK_ADD 0x20000000 #define IN_ISDIR 0x40000000 #define IN_ONESHOT 0x80000000 diff --git a/libc/kernel/uapi/linux/input.h b/libc/kernel/uapi/linux/input.h index 298e2a3d1..0a4b5636c 100644 --- a/libc/kernel/uapi/linux/input.h +++ b/libc/kernel/uapi/linux/input.h @@ -120,10 +120,11 @@ struct input_mask { #define BUS_RMI 0x1D #define BUS_CEC 0x1E #define BUS_INTEL_ISHTP 0x1F -#define MT_TOOL_FINGER 0 -#define MT_TOOL_PEN 1 -#define MT_TOOL_PALM 2 -#define MT_TOOL_MAX 2 +#define MT_TOOL_FINGER 0x00 +#define MT_TOOL_PEN 0x01 +#define MT_TOOL_PALM 0x02 +#define MT_TOOL_DIAL 0x0a +#define MT_TOOL_MAX 0x0f #define FF_STATUS_STOPPED 0x00 #define FF_STATUS_PLAYING 0x01 #define FF_STATUS_MAX 0x01 diff --git a/libc/kernel/uapi/linux/ip.h b/libc/kernel/uapi/linux/ip.h index 8632d451a..564fd8d04 100644 --- a/libc/kernel/uapi/linux/ip.h +++ b/libc/kernel/uapi/linux/ip.h @@ -145,6 +145,7 @@ enum { IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN, IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, IPV4_DEVCONF_DROP_GRATUITOUS_ARP, + IPV4_DEVCONF_BC_FORWARDING, __IPV4_DEVCONF_MAX }; #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1) diff --git a/libc/kernel/uapi/linux/kernel-page-flags.h b/libc/kernel/uapi/linux/kernel-page-flags.h index a1212cc03..afa03936e 100644 --- a/libc/kernel/uapi/linux/kernel-page-flags.h +++ b/libc/kernel/uapi/linux/kernel-page-flags.h @@ -44,4 +44,5 @@ #define KPF_BALLOON 23 #define KPF_ZERO_PAGE 24 #define KPF_IDLE 25 +#define KPF_PGTABLE 26 #endif diff --git a/libc/kernel/uapi/linux/keyboard.h b/libc/kernel/uapi/linux/keyboard.h index 3694fb685..570cca9b3 100644 --- a/libc/kernel/uapi/linux/keyboard.h +++ b/libc/kernel/uapi/linux/keyboard.h @@ -357,7 +357,28 @@ #define K_DTILDE K(KT_DEAD, 3) #define K_DDIERE K(KT_DEAD, 4) #define K_DCEDIL K(KT_DEAD, 5) -#define NR_DEAD 6 +#define K_DMACRON K(KT_DEAD, 6) +#define K_DBREVE K(KT_DEAD, 7) +#define K_DABDOT K(KT_DEAD, 8) +#define K_DABRING K(KT_DEAD, 9) +#define K_DDBACUTE K(KT_DEAD, 10) +#define K_DCARON K(KT_DEAD, 11) +#define K_DOGONEK K(KT_DEAD, 12) +#define K_DIOTA K(KT_DEAD, 13) +#define K_DVOICED K(KT_DEAD, 14) +#define K_DSEMVOICED K(KT_DEAD, 15) +#define K_DBEDOT K(KT_DEAD, 16) +#define K_DHOOK K(KT_DEAD, 17) +#define K_DHORN K(KT_DEAD, 18) +#define K_DSTROKE K(KT_DEAD, 19) +#define K_DABCOMMA K(KT_DEAD, 20) +#define K_DABREVCOMMA K(KT_DEAD, 21) +#define K_DDBGRAVE K(KT_DEAD, 22) +#define K_DINVBREVE K(KT_DEAD, 23) +#define K_DBECOMMA K(KT_DEAD, 24) +#define K_DCURRENCY K(KT_DEAD, 25) +#define K_DGREEK K(KT_DEAD, 26) +#define NR_DEAD 27 #define K_DOWN K(KT_CUR, 0) #define K_LEFT K(KT_CUR, 1) #define K_RIGHT K(KT_CUR, 2) diff --git a/libc/kernel/uapi/linux/kfd_ioctl.h b/libc/kernel/uapi/linux/kfd_ioctl.h index 05db3fbbe..55aff047b 100644 --- a/libc/kernel/uapi/linux/kfd_ioctl.h +++ b/libc/kernel/uapi/linux/kfd_ioctl.h @@ -59,6 +59,11 @@ struct kfd_ioctl_update_queue_args { __u32 queue_percentage; __u32 queue_priority; }; +struct kfd_ioctl_set_cu_mask_args { + __u32 queue_id; + __u32 num_cu_mask; + __u64 cu_mask_ptr; +}; #define KFD_IOC_CACHE_POLICY_COHERENT 0 #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1 struct kfd_ioctl_set_memory_policy_args { @@ -132,6 +137,10 @@ struct kfd_ioctl_dbg_wave_control_args { #define KFD_IOC_WAIT_RESULT_TIMEOUT 1 #define KFD_IOC_WAIT_RESULT_FAIL 2 #define KFD_SIGNAL_EVENT_LIMIT 4096 +#define KFD_HW_EXCEPTION_WHOLE_GPU_RESET 0 +#define KFD_HW_EXCEPTION_PER_ENGINE_RESET 1 +#define KFD_HW_EXCEPTION_GPU_HANG 0 +#define KFD_HW_EXCEPTION_ECC 1 struct kfd_ioctl_create_event_args { __u64 event_page_offset; __u32 event_trigger_data; @@ -157,7 +166,7 @@ struct kfd_memory_exception_failure { __u32 NotPresent; __u32 ReadOnly; __u32 NoExecute; - __u32 pad; + __u32 imprecise; }; struct kfd_hsa_memory_exception_data { struct kfd_memory_exception_failure failure; @@ -165,9 +174,16 @@ struct kfd_hsa_memory_exception_data { __u32 gpu_id; __u32 pad; }; +struct kfd_hsa_hw_exception_data { + uint32_t reset_type; + uint32_t reset_cause; + uint32_t memory_lost; + uint32_t gpu_id; +}; struct kfd_event_data { union { struct kfd_hsa_memory_exception_data memory_exception_data; + struct kfd_hsa_hw_exception_data hw_exception_data; }; __u64 kfd_event_data_ext; __u32 event_id; @@ -268,6 +284,7 @@ struct kfd_ioctl_unmap_memory_from_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_IOC_SET_CU_MASK AMDKFD_IOW(0x1A, struct kfd_ioctl_set_cu_mask_args) #define AMDKFD_COMMAND_START 0x01 -#define AMDKFD_COMMAND_END 0x1A +#define AMDKFD_COMMAND_END 0x1B #endif diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h index 6c8ae6149..14e882be7 100644 --- a/libc/kernel/uapi/linux/kvm.h +++ b/libc/kernel/uapi/linux/kvm.h @@ -739,6 +739,11 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_S390_BPB 152 #define KVM_CAP_GET_MSR_FEATURES 153 #define KVM_CAP_HYPERV_EVENTFD 154 +#define KVM_CAP_HYPERV_TLBFLUSH 155 +#define KVM_CAP_S390_HPAGE_1M 156 +#define KVM_CAP_NESTED_STATE 157 +#define KVM_CAP_ARM_INJECT_SERROR_ESR 158 +#define KVM_CAP_MSR_PLATFORM_INFO 159 #ifdef KVM_CAP_IRQ_ROUTING struct kvm_irq_routing_irqchip { __u32 irqchip; @@ -1048,6 +1053,8 @@ struct kvm_enc_region { #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) +#define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state) +#define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state) enum sev_cmd_id { KVM_SEV_INIT = 0, KVM_SEV_ES_INIT, diff --git a/libc/kernel/uapi/linux/kvm_para.h b/libc/kernel/uapi/linux/kvm_para.h index 5035c2318..b08a605a7 100644 --- a/libc/kernel/uapi/linux/kvm_para.h +++ b/libc/kernel/uapi/linux/kvm_para.h @@ -20,6 +20,7 @@ #define _UAPI__LINUX_KVM_PARA_H #define KVM_ENOSYS 1000 #define KVM_EFAULT EFAULT +#define KVM_EINVAL EINVAL #define KVM_E2BIG E2BIG #define KVM_EPERM EPERM #define KVM_EOPNOTSUPP 95 @@ -32,5 +33,6 @@ #define KVM_HC_MIPS_EXIT_VM 7 #define KVM_HC_MIPS_CONSOLE_OUTPUT 8 #define KVM_HC_CLOCK_PAIRING 9 +#define KVM_HC_SEND_IPI 10 #include <asm/kvm_para.h> #endif diff --git a/libc/kernel/uapi/linux/lirc.h b/libc/kernel/uapi/linux/lirc.h index 3dfb6d066..4a8d0fff2 100644 --- a/libc/kernel/uapi/linux/lirc.h +++ b/libc/kernel/uapi/linux/lirc.h @@ -92,6 +92,7 @@ #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) +#define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32) struct lirc_scancode { __u64 timestamp; __u16 flags; diff --git a/libc/kernel/uapi/linux/media-bus-format.h b/libc/kernel/uapi/linux/media-bus-format.h index dd7fcc7dc..7c701b1ca 100644 --- a/libc/kernel/uapi/linux/media-bus-format.h +++ b/libc/kernel/uapi/linux/media-bus-format.h @@ -56,6 +56,7 @@ #define MEDIA_BUS_FMT_YUYV8_2X8 0x2008 #define MEDIA_BUS_FMT_YVYU8_2X8 0x2009 #define MEDIA_BUS_FMT_Y10_1X10 0x200a +#define MEDIA_BUS_FMT_Y10_2X8_PADHI_LE 0x202c #define MEDIA_BUS_FMT_UYVY10_2X10 0x2018 #define MEDIA_BUS_FMT_VYUY10_2X10 0x2019 #define MEDIA_BUS_FMT_YUYV10_2X10 0x200b diff --git a/libc/kernel/uapi/linux/media.h b/libc/kernel/uapi/linux/media.h index e6236f91a..eefc07a12 100644 --- a/libc/kernel/uapi/linux/media.h +++ b/libc/kernel/uapi/linux/media.h @@ -21,7 +21,6 @@ #include <stdint.h> #include <linux/ioctl.h> #include <linux/types.h> -#include <linux/version.h> struct media_device_info { char driver[16]; char model[32]; @@ -48,8 +47,6 @@ struct media_device_info { #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) @@ -62,8 +59,13 @@ struct media_device_info { #define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004) #define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005) #define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006) +#define MEDIA_ENT_F_PROC_VIDEO_ENCODER (MEDIA_ENT_F_BASE + 0x4007) +#define MEDIA_ENT_F_PROC_VIDEO_DECODER (MEDIA_ENT_F_BASE + 0x4008) #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_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4) +#define MEDIA_ENT_F_DV_DECODER (MEDIA_ENT_F_BASE + 0x6001) +#define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002) #define MEDIA_ENT_FL_DEFAULT (1 << 0) #define MEDIA_ENT_FL_CONNECTOR (1 << 1) #define MEDIA_ENT_ID_FLAG_NEXT (1 << 31) @@ -139,11 +141,13 @@ struct media_links_enum { #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_V2_ENTITY_HAS_FLAGS(media_version) ((media_version) >= ((4 << 16) | (19 << 8) | 0)) struct media_v2_entity { __u32 id; char name[64]; __u32 function; - __u32 reserved[6]; + __u32 flags; + __u32 reserved[5]; } __attribute__((packed)); struct media_v2_intf_devnode { __u32 major; @@ -159,11 +163,13 @@ struct media_v2_interface { __u32 raw[16]; }; } __attribute__((packed)); +#define MEDIA_V2_PAD_HAS_INDEX(media_version) ((media_version) >= ((4 << 16) | (19 << 8) | 0)) struct media_v2_pad { __u32 id; __u32 entity_id; __u32 flags; - __u32 reserved[5]; + __u32 index; + __u32 reserved[4]; } __attribute__((packed)); struct media_v2_link { __u32 id; @@ -209,6 +215,7 @@ struct media_v2_topology { #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_ENT_F_DTV_DECODER MEDIA_ENT_F_DV_DECODER #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) @@ -218,5 +225,5 @@ struct media_v2_topology { #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) +#define MEDIA_API_VERSION ((0 << 16) | (1 << 8) | 0) #endif diff --git a/libc/kernel/uapi/linux/memfd.h b/libc/kernel/uapi/linux/memfd.h index e3e5cd547..914c076ca 100644 --- a/libc/kernel/uapi/linux/memfd.h +++ b/libc/kernel/uapi/linux/memfd.h @@ -30,7 +30,9 @@ #define MFD_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB #define MFD_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB #define MFD_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB +#define MFD_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB #define MFD_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB +#define MFD_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB #define MFD_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB #define MFD_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB #define MFD_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB diff --git a/libc/kernel/uapi/linux/mii.h b/libc/kernel/uapi/linux/mii.h index aa4824dfb..5c8799012 100644 --- a/libc/kernel/uapi/linux/mii.h +++ b/libc/kernel/uapi/linux/mii.h @@ -122,6 +122,7 @@ #define ADVERTISE_1000HALF 0x0100 #define CTL1000_AS_MASTER 0x0800 #define CTL1000_ENABLE_MASTER 0x1000 +#define LPA_1000MSFAIL 0x8000 #define LPA_1000LOCALRXOK 0x2000 #define LPA_1000REMRXOK 0x1000 #define LPA_1000FULL 0x0800 diff --git a/libc/kernel/uapi/linux/mman.h b/libc/kernel/uapi/linux/mman.h index b0ce77e22..0c9c39799 100644 --- a/libc/kernel/uapi/linux/mman.h +++ b/libc/kernel/uapi/linux/mman.h @@ -33,7 +33,9 @@ #define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB #define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB #define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB +#define MAP_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB #define MAP_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB +#define MAP_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB #define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB #define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB #define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB diff --git a/libc/kernel/uapi/linux/mroute.h b/libc/kernel/uapi/linux/mroute.h index d962f8b0d..f0cb21b5a 100644 --- a/libc/kernel/uapi/linux/mroute.h +++ b/libc/kernel/uapi/linux/mroute.h @@ -103,6 +103,7 @@ enum { IPMRA_TABLE_MROUTE_DO_ASSERT, IPMRA_TABLE_MROUTE_DO_PIM, IPMRA_TABLE_VIFS, + IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE, __IPMRA_TABLE_MAX }; #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1) @@ -141,4 +142,5 @@ enum { #define IGMPMSG_NOCACHE 1 #define IGMPMSG_WRONGVIF 2 #define IGMPMSG_WHOLEPKT 3 +#define IGMPMSG_WRVIFWHOLE 4 #endif diff --git a/libc/kernel/uapi/linux/nbd.h b/libc/kernel/uapi/linux/nbd.h index 749c38aa5..3b7439308 100644 --- a/libc/kernel/uapi/linux/nbd.h +++ b/libc/kernel/uapi/linux/nbd.h @@ -45,6 +45,7 @@ enum { #define NBD_FLAG_CAN_MULTI_CONN (1 << 8) #define NBD_CMD_FLAG_FUA (1 << 16) #define NBD_CFLAG_DESTROY_ON_DISCONNECT (1 << 0) +#define NBD_CFLAG_DISCONNECT_ON_CLOSE (1 << 1) #define NBD_REQUEST_MAGIC 0x25609513 #define NBD_REPLY_MAGIC 0x67446698 struct nbd_request { diff --git a/libc/kernel/uapi/linux/ncp.h b/libc/kernel/uapi/linux/ncp.h deleted file mode 100644 index c3f318bd1..000000000 --- a/libc/kernel/uapi/linux/ncp.h +++ /dev/null @@ -1,178 +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_NCP_H -#define _LINUX_NCP_H -#include <linux/types.h> -#define NCP_PTYPE (0x11) -#define NCP_PORT (0x0451) -#define NCP_ALLOC_SLOT_REQUEST (0x1111) -#define NCP_REQUEST (0x2222) -#define NCP_DEALLOC_SLOT_REQUEST (0x5555) -struct ncp_request_header { - __u16 type; - __u8 sequence; - __u8 conn_low; - __u8 task; - __u8 conn_high; - __u8 function; - __u8 data[0]; -} __attribute__((packed)); -#define NCP_REPLY (0x3333) -#define NCP_WATCHDOG (0x3E3E) -#define NCP_POSITIVE_ACK (0x9999) -struct ncp_reply_header { - __u16 type; - __u8 sequence; - __u8 conn_low; - __u8 task; - __u8 conn_high; - __u8 completion_code; - __u8 connection_state; - __u8 data[0]; -} __attribute__((packed)); -#define NCP_VOLNAME_LEN (16) -#define NCP_NUMBER_OF_VOLUMES (256) -struct ncp_volume_info { - __u32 total_blocks; - __u32 free_blocks; - __u32 purgeable_blocks; - __u32 not_yet_purgeable_blocks; - __u32 total_dir_entries; - __u32 available_dir_entries; - __u8 sectors_per_block; - char volume_name[NCP_VOLNAME_LEN + 1]; -}; -#define AR_READ (cpu_to_le16(1)) -#define AR_WRITE (cpu_to_le16(2)) -#define AR_EXCLUSIVE (cpu_to_le16(0x20)) -#define NCP_FILE_ID_LEN 6 -#define NW_NS_DOS 0 -#define NW_NS_MAC 1 -#define NW_NS_NFS 2 -#define NW_NS_FTAM 3 -#define NW_NS_OS2 4 -#define RIM_NAME (cpu_to_le32(1)) -#define RIM_SPACE_ALLOCATED (cpu_to_le32(2)) -#define RIM_ATTRIBUTES (cpu_to_le32(4)) -#define RIM_DATA_SIZE (cpu_to_le32(8)) -#define RIM_TOTAL_SIZE (cpu_to_le32(0x10)) -#define RIM_EXT_ATTR_INFO (cpu_to_le32(0x20)) -#define RIM_ARCHIVE (cpu_to_le32(0x40)) -#define RIM_MODIFY (cpu_to_le32(0x80)) -#define RIM_CREATION (cpu_to_le32(0x100)) -#define RIM_OWNING_NAMESPACE (cpu_to_le32(0x200)) -#define RIM_DIRECTORY (cpu_to_le32(0x400)) -#define RIM_RIGHTS (cpu_to_le32(0x800)) -#define RIM_ALL (cpu_to_le32(0xFFF)) -#define RIM_COMPRESSED_INFO (cpu_to_le32(0x80000000)) -#define NSIBM_NFS_NAME 0x0001 -#define NSIBM_NFS_MODE 0x0002 -#define NSIBM_NFS_GID 0x0004 -#define NSIBM_NFS_NLINKS 0x0008 -#define NSIBM_NFS_RDEV 0x0010 -#define NSIBM_NFS_LINK 0x0020 -#define NSIBM_NFS_CREATED 0x0040 -#define NSIBM_NFS_UID 0x0080 -#define NSIBM_NFS_ACSFLAG 0x0100 -#define NSIBM_NFS_MYFLAG 0x0200 -#define OC_MODE_OPEN 0x01 -#define OC_MODE_TRUNCATE 0x02 -#define OC_MODE_REPLACE 0x02 -#define OC_MODE_CREATE 0x08 -#define OC_ACTION_NONE 0x00 -#define OC_ACTION_OPEN 0x01 -#define OC_ACTION_CREATE 0x02 -#define OC_ACTION_TRUNCATE 0x04 -#define OC_ACTION_REPLACE 0x04 -#ifndef AR_READ_ONLY -#define AR_READ_ONLY 0x0001 -#define AR_WRITE_ONLY 0x0002 -#define AR_DENY_READ 0x0004 -#define AR_DENY_WRITE 0x0008 -#define AR_COMPATIBILITY 0x0010 -#define AR_WRITE_THROUGH 0x0040 -#define AR_OPEN_COMPRESSED 0x0100 -#endif -struct nw_nfs_info { - __u32 mode; - __u32 rdev; -}; -struct nw_info_struct { - __u32 spaceAlloc; - __le32 attributes; - __u16 flags; - __le32 dataStreamSize; - __le32 totalStreamSize; - __u16 numberOfStreams; - __le16 creationTime; - __le16 creationDate; - __u32 creatorID; - __le16 modifyTime; - __le16 modifyDate; - __u32 modifierID; - __le16 lastAccessDate; - __u16 archiveTime; - __u16 archiveDate; - __u32 archiverID; - __u16 inheritedRightsMask; - __le32 dirEntNum; - __le32 DosDirNum; - __u32 volNumber; - __u32 EADataSize; - __u32 EAKeyCount; - __u32 EAKeySize; - __u32 NSCreator; - __u8 nameLen; - __u8 entryName[256]; -} __attribute__((packed)); -#define DM_ATTRIBUTES (cpu_to_le32(0x02)) -#define DM_CREATE_DATE (cpu_to_le32(0x04)) -#define DM_CREATE_TIME (cpu_to_le32(0x08)) -#define DM_CREATOR_ID (cpu_to_le32(0x10)) -#define DM_ARCHIVE_DATE (cpu_to_le32(0x20)) -#define DM_ARCHIVE_TIME (cpu_to_le32(0x40)) -#define DM_ARCHIVER_ID (cpu_to_le32(0x80)) -#define DM_MODIFY_DATE (cpu_to_le32(0x0100)) -#define DM_MODIFY_TIME (cpu_to_le32(0x0200)) -#define DM_MODIFIER_ID (cpu_to_le32(0x0400)) -#define DM_LAST_ACCESS_DATE (cpu_to_le32(0x0800)) -#define DM_INHERITED_RIGHTS_MASK (cpu_to_le32(0x1000)) -#define DM_MAXIMUM_SPACE (cpu_to_le32(0x2000)) -struct nw_modify_dos_info { - __le32 attributes; - __le16 creationDate; - __le16 creationTime; - __u32 creatorID; - __le16 modifyDate; - __le16 modifyTime; - __u32 modifierID; - __u16 archiveDate; - __u16 archiveTime; - __u32 archiverID; - __le16 lastAccessDate; - __u16 inheritanceGrantMask; - __u16 inheritanceRevokeMask; - __u32 maximumSpace; -} __attribute__((packed)); -struct nw_search_sequence { - __u8 volNumber; - __u32 dirBase; - __u32 sequence; -} __attribute__((packed)); -#endif diff --git a/libc/kernel/uapi/linux/ncp_fs.h b/libc/kernel/uapi/linux/ncp_fs.h deleted file mode 100644 index ddb974279..000000000 --- a/libc/kernel/uapi/linux/ncp_fs.h +++ /dev/null @@ -1,116 +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_NCP_FS_H -#define _LINUX_NCP_FS_H -#include <linux/fs.h> -#include <linux/in.h> -#include <linux/types.h> -#include <linux/magic.h> -#include <linux/ipx.h> -#include <linux/ncp_no.h> -struct ncp_ioctl_request { - unsigned int function; - unsigned int size; - char __user * data; -}; -struct ncp_fs_info { - int version; - struct sockaddr_ipx addr; - __kernel_uid_t mounted_uid; - int connection; - int buffer_size; - int volume_number; - __le32 directory_id; -}; -struct ncp_fs_info_v2 { - int version; - unsigned long mounted_uid; - unsigned int connection; - unsigned int buffer_size; - unsigned int volume_number; - __le32 directory_id; - __u32 dummy1; - __u32 dummy2; - __u32 dummy3; -}; -struct ncp_sign_init { - char sign_root[8]; - char sign_last[16]; -}; -struct ncp_lock_ioctl { -#define NCP_LOCK_LOG 0 -#define NCP_LOCK_SH 1 -#define NCP_LOCK_EX 2 -#define NCP_LOCK_CLEAR 256 - int cmd; - int origin; - unsigned int offset; - unsigned int length; -#define NCP_LOCK_DEFAULT_TIMEOUT 18 -#define NCP_LOCK_MAX_TIMEOUT 180 - int timeout; -}; -struct ncp_setroot_ioctl { - int volNumber; - int namespace; - __le32 dirEntNum; -}; -struct ncp_objectname_ioctl { -#define NCP_AUTH_NONE 0x00 -#define NCP_AUTH_BIND 0x31 -#define NCP_AUTH_NDS 0x32 - int auth_type; - size_t object_name_len; - void __user * object_name; -}; -struct ncp_privatedata_ioctl { - size_t len; - void __user * data; -}; -#define NCP_IOCSNAME_LEN 20 -struct ncp_nls_ioctl { - unsigned char codepage[NCP_IOCSNAME_LEN + 1]; - unsigned char iocharset[NCP_IOCSNAME_LEN + 1]; -}; -#define NCP_IOC_NCPREQUEST _IOR('n', 1, struct ncp_ioctl_request) -#define NCP_IOC_GETMOUNTUID _IOW('n', 2, __kernel_old_uid_t) -#define NCP_IOC_GETMOUNTUID2 _IOW('n', 2, unsigned long) -#define NCP_IOC_CONN_LOGGED_IN _IO('n', 3) -#define NCP_GET_FS_INFO_VERSION (1) -#define NCP_IOC_GET_FS_INFO _IOWR('n', 4, struct ncp_fs_info) -#define NCP_GET_FS_INFO_VERSION_V2 (2) -#define NCP_IOC_GET_FS_INFO_V2 _IOWR('n', 4, struct ncp_fs_info_v2) -#define NCP_IOC_SIGN_INIT _IOR('n', 5, struct ncp_sign_init) -#define NCP_IOC_SIGN_WANTED _IOR('n', 6, int) -#define NCP_IOC_SET_SIGN_WANTED _IOW('n', 6, int) -#define NCP_IOC_LOCKUNLOCK _IOR('n', 7, struct ncp_lock_ioctl) -#define NCP_IOC_GETROOT _IOW('n', 8, struct ncp_setroot_ioctl) -#define NCP_IOC_SETROOT _IOR('n', 8, struct ncp_setroot_ioctl) -#define NCP_IOC_GETOBJECTNAME _IOWR('n', 9, struct ncp_objectname_ioctl) -#define NCP_IOC_SETOBJECTNAME _IOR('n', 9, struct ncp_objectname_ioctl) -#define NCP_IOC_GETPRIVATEDATA _IOWR('n', 10, struct ncp_privatedata_ioctl) -#define NCP_IOC_SETPRIVATEDATA _IOR('n', 10, struct ncp_privatedata_ioctl) -#define NCP_IOC_GETCHARSETS _IOWR('n', 11, struct ncp_nls_ioctl) -#define NCP_IOC_SETCHARSETS _IOR('n', 11, struct ncp_nls_ioctl) -#define NCP_IOC_GETDENTRYTTL _IOW('n', 12, __u32) -#define NCP_IOC_SETDENTRYTTL _IOR('n', 12, __u32) -#define NCP_PACKET_SIZE 4070 -#define NCP_MAXPATHLEN 255 -#define NCP_MAXNAMELEN 14 -#endif diff --git a/libc/kernel/uapi/linux/ncp_mount.h b/libc/kernel/uapi/linux/ncp_mount.h deleted file mode 100644 index e29640d1e..000000000 --- a/libc/kernel/uapi/linux/ncp_mount.h +++ /dev/null @@ -1,61 +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_NCP_MOUNT_H -#define _LINUX_NCP_MOUNT_H -#include <linux/types.h> -#include <linux/ncp.h> -#define NCP_MOUNT_VERSION 3 -#define NCP_MOUNT_SOFT 0x0001 -#define NCP_MOUNT_INTR 0x0002 -#define NCP_MOUNT_STRONG 0x0004 -#define NCP_MOUNT_NO_OS2 0x0008 -#define NCP_MOUNT_NO_NFS 0x0010 -#define NCP_MOUNT_EXTRAS 0x0020 -#define NCP_MOUNT_SYMLINKS 0x0040 -#define NCP_MOUNT_NFS_EXTRAS 0x0080 -struct ncp_mount_data { - int version; - unsigned int ncp_fd; - __kernel_uid_t mounted_uid; - __kernel_pid_t wdog_pid; - unsigned char mounted_vol[NCP_VOLNAME_LEN + 1]; - unsigned int time_out; - unsigned int retry_count; - unsigned int flags; - __kernel_uid_t uid; - __kernel_gid_t gid; - __kernel_mode_t file_mode; - __kernel_mode_t dir_mode; -}; -#define NCP_MOUNT_VERSION_V4 (4) -struct ncp_mount_data_v4 { - int version; - unsigned long flags; - unsigned long mounted_uid; - long wdog_pid; - unsigned int ncp_fd; - unsigned int time_out; - unsigned int retry_count; - unsigned long uid; - unsigned long gid; - unsigned long file_mode; - unsigned long dir_mode; -}; -#define NCP_MOUNT_VERSION_V5 (5) -#endif diff --git a/libc/kernel/uapi/linux/net_tstamp.h b/libc/kernel/uapi/linux/net_tstamp.h index 49d4c2c13..2f022ea3a 100644 --- a/libc/kernel/uapi/linux/net_tstamp.h +++ b/libc/kernel/uapi/linux/net_tstamp.h @@ -73,4 +73,14 @@ struct scm_ts_pktinfo { __u32 pkt_length; __u32 reserved[2]; }; +enum txtime_flags { + SOF_TXTIME_DEADLINE_MODE = (1 << 0), + SOF_TXTIME_REPORT_ERRORS = (1 << 1), + SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS, + SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) | SOF_TXTIME_FLAGS_LAST +}; +struct sock_txtime { + clockid_t clockid; + __u32 flags; +}; #endif diff --git a/libc/kernel/uapi/linux/netconf.h b/libc/kernel/uapi/linux/netconf.h index 4f8675782..27d3854e2 100644 --- a/libc/kernel/uapi/linux/netconf.h +++ b/libc/kernel/uapi/linux/netconf.h @@ -32,6 +32,7 @@ enum { NETCONFA_PROXY_NEIGH, NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, NETCONFA_INPUT, + NETCONFA_BC_FORWARDING, __NETCONFA_MAX }; #define NETCONFA_MAX (__NETCONFA_MAX - 1) diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h index 2259e09f1..43d60ca26 100644 --- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h +++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h @@ -65,7 +65,7 @@ enum ip_conntrack_status { 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, + __IPS_MAX_BIT = 15, }; enum ip_conntrack_events { IPCT_NEW, diff --git a/libc/kernel/uapi/linux/netfilter/nf_nat.h b/libc/kernel/uapi/linux/netfilter/nf_nat.h index 80a55e688..f01669b57 100644 --- a/libc/kernel/uapi/linux/netfilter/nf_nat.h +++ b/libc/kernel/uapi/linux/netfilter/nf_nat.h @@ -25,8 +25,9 @@ #define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) #define NF_NAT_RANGE_PERSISTENT (1 << 3) #define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) +#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) #define NF_NAT_RANGE_PROTO_RANDOM_ALL (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -#define NF_NAT_RANGE_MASK (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | NF_NAT_RANGE_PROTO_RANDOM_FULLY) +#define NF_NAT_RANGE_MASK (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET) struct nf_nat_ipv4_range { unsigned int flags; __be32 min_ip; @@ -45,4 +46,12 @@ struct nf_nat_range { union nf_conntrack_man_proto min_proto; union nf_conntrack_man_proto max_proto; }; +struct nf_nat_range2 { + unsigned int flags; + union nf_inet_addr min_addr; + union nf_inet_addr max_addr; + union nf_conntrack_man_proto min_proto; + union nf_conntrack_man_proto max_proto; + union nf_conntrack_man_proto base_proto; +}; #endif diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables.h b/libc/kernel/uapi/linux/netfilter/nf_tables.h index 610594cde..63394e0ca 100644 --- a/libc/kernel/uapi/linux/netfilter/nf_tables.h +++ b/libc/kernel/uapi/linux/netfilter/nf_tables.h @@ -24,6 +24,7 @@ #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN #define NFT_USERDATA_MAXLEN 256 +#define NFT_OSF_MAXGENRELEN 16 enum nft_registers { NFT_REG_VERDICT, NFT_REG_1, @@ -418,7 +419,9 @@ enum nft_rt_keys { NFT_RT_NEXTHOP4, NFT_RT_NEXTHOP6, NFT_RT_TCPMSS, + __NFT_RT_MAX }; +#define NFT_RT_MAX (__NFT_RT_MAX - 1) enum nft_hash_types { NFT_HASH_JENKINS, NFT_HASH_SYM, @@ -432,6 +435,8 @@ enum nft_hash_attributes { NFTA_HASH_SEED, NFTA_HASH_OFFSET, NFTA_HASH_TYPE, + NFTA_HASH_SET_NAME, + NFTA_HASH_SET_ID, __NFTA_HASH_MAX, }; #define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1) @@ -450,6 +455,19 @@ enum nft_rt_attributes { __NFTA_RT_MAX }; #define NFTA_RT_MAX (__NFTA_RT_MAX - 1) +enum nft_socket_attributes { + NFTA_SOCKET_UNSPEC, + NFTA_SOCKET_KEY, + NFTA_SOCKET_DREG, + __NFTA_SOCKET_MAX +}; +#define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1) +enum nft_socket_keys { + NFT_SOCKET_TRANSPARENT, + NFT_SOCKET_MARK, + __NFT_SOCKET_MAX +}; +#define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1) enum nft_ct_keys { NFT_CT_STATE, NFT_CT_DIRECTION, @@ -474,7 +492,10 @@ enum nft_ct_keys { NFT_CT_DST_IP, NFT_CT_SRC_IP6, NFT_CT_DST_IP6, + NFT_CT_TIMEOUT, + __NFT_CT_MAX }; +#define NFT_CT_MAX (__NFT_CT_MAX - 1) enum nft_ct_attributes { NFTA_CT_UNSPEC, NFTA_CT_DREG, @@ -508,6 +529,16 @@ enum nft_limit_attributes { __NFTA_LIMIT_MAX }; #define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1) +enum nft_connlimit_flags { + NFT_CONNLIMIT_F_INV = (1 << 0), +}; +enum nft_connlimit_attributes { + NFTA_CONNLIMIT_UNSPEC, + NFTA_CONNLIMIT_COUNT, + NFTA_CONNLIMIT_FLAGS, + __NFTA_CONNLIMIT_MAX +}; +#define NFTA_CONNLIMIT_MAX (__NFTA_CONNLIMIT_MAX - 1) enum nft_counter_attributes { NFTA_COUNTER_UNSPEC, NFTA_COUNTER_BYTES, @@ -527,6 +558,19 @@ enum nft_log_attributes { __NFTA_LOG_MAX }; #define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1) +enum nft_log_level { + NFT_LOGLEVEL_EMERG, + NFT_LOGLEVEL_ALERT, + NFT_LOGLEVEL_CRIT, + NFT_LOGLEVEL_ERR, + NFT_LOGLEVEL_WARNING, + NFT_LOGLEVEL_NOTICE, + NFT_LOGLEVEL_INFO, + NFT_LOGLEVEL_DEBUG, + NFT_LOGLEVEL_AUDIT, + __NFT_LOGLEVEL_MAX +}; +#define NFT_LOGLEVEL_MAX (__NFT_LOGLEVEL_MAX + 1) enum nft_queue_attributes { NFTA_QUEUE_UNSPEC, NFTA_QUEUE_NUM, @@ -588,6 +632,14 @@ enum nft_nat_attributes { __NFTA_NAT_MAX }; #define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1) +enum nft_tproxy_attributes { + NFTA_TPROXY_UNSPEC, + NFTA_TPROXY_FAMILY, + NFTA_TPROXY_REG_ADDR, + NFTA_TPROXY_REG_PORT, + __NFTA_TPROXY_MAX +}; +#define NFTA_TPROXY_MAX (__NFTA_TPROXY_MAX - 1) enum nft_masq_attributes { NFTA_MASQ_UNSPEC, NFTA_MASQ_FLAGS, @@ -614,6 +666,8 @@ enum nft_dup_attributes { enum nft_fwd_attributes { NFTA_FWD_UNSPEC, NFTA_FWD_SREG_DEV, + NFTA_FWD_SREG_ADDR, + NFTA_FWD_NFPROTO, __NFTA_FWD_MAX }; #define NFTA_FWD_MAX (__NFTA_FWD_MAX - 1) @@ -667,12 +721,23 @@ enum nft_ct_helper_attributes { __NFTA_CT_HELPER_MAX, }; #define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1) +enum nft_ct_timeout_timeout_attributes { + NFTA_CT_TIMEOUT_UNSPEC, + NFTA_CT_TIMEOUT_L3PROTO, + NFTA_CT_TIMEOUT_L4PROTO, + NFTA_CT_TIMEOUT_DATA, + __NFTA_CT_TIMEOUT_MAX, +}; +#define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1) #define NFT_OBJECT_UNSPEC 0 #define NFT_OBJECT_COUNTER 1 #define NFT_OBJECT_QUOTA 2 #define NFT_OBJECT_CT_HELPER 3 #define NFT_OBJECT_LIMIT 4 -#define __NFT_OBJECT_MAX 5 +#define NFT_OBJECT_CONNLIMIT 5 +#define NFT_OBJECT_TUNNEL 6 +#define NFT_OBJECT_CT_TIMEOUT 7 +#define __NFT_OBJECT_MAX 8 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1) enum nft_object_attributes { NFTA_OBJ_UNSPEC, @@ -705,6 +770,12 @@ enum nft_flowtable_hook_attributes { __NFTA_FLOWTABLE_HOOK_MAX }; #define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1) +enum nft_osf_attributes { + NFTA_OSF_UNSPEC, + NFTA_OSF_DREG, + __NFTA_OSF_MAX, +}; +#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1) enum nft_devices_attributes { NFTA_DEVICE_UNSPEC, NFTA_DEVICE_NAME, @@ -747,6 +818,8 @@ enum nft_ng_attributes { NFTA_NG_MODULUS, NFTA_NG_TYPE, NFTA_NG_OFFSET, + NFTA_NG_SET_NAME, + NFTA_NG_SET_ID, __NFTA_NG_MAX }; #define NFTA_NG_MAX (__NFTA_NG_MAX - 1) @@ -756,4 +829,74 @@ enum nft_ng_types { __NFT_NG_MAX }; #define NFT_NG_MAX (__NFT_NG_MAX - 1) +enum nft_tunnel_key_ip_attributes { + NFTA_TUNNEL_KEY_IP_UNSPEC, + NFTA_TUNNEL_KEY_IP_SRC, + NFTA_TUNNEL_KEY_IP_DST, + __NFTA_TUNNEL_KEY_IP_MAX +}; +#define NFTA_TUNNEL_KEY_IP_MAX (__NFTA_TUNNEL_KEY_IP_MAX - 1) +enum nft_tunnel_ip6_attributes { + NFTA_TUNNEL_KEY_IP6_UNSPEC, + NFTA_TUNNEL_KEY_IP6_SRC, + NFTA_TUNNEL_KEY_IP6_DST, + NFTA_TUNNEL_KEY_IP6_FLOWLABEL, + __NFTA_TUNNEL_KEY_IP6_MAX +}; +#define NFTA_TUNNEL_KEY_IP6_MAX (__NFTA_TUNNEL_KEY_IP6_MAX - 1) +enum nft_tunnel_opts_attributes { + NFTA_TUNNEL_KEY_OPTS_UNSPEC, + NFTA_TUNNEL_KEY_OPTS_VXLAN, + NFTA_TUNNEL_KEY_OPTS_ERSPAN, + __NFTA_TUNNEL_KEY_OPTS_MAX +}; +#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1) +enum nft_tunnel_opts_vxlan_attributes { + NFTA_TUNNEL_KEY_VXLAN_UNSPEC, + NFTA_TUNNEL_KEY_VXLAN_GBP, + __NFTA_TUNNEL_KEY_VXLAN_MAX +}; +#define NFTA_TUNNEL_KEY_VXLAN_MAX (__NFTA_TUNNEL_KEY_VXLAN_MAX - 1) +enum nft_tunnel_opts_erspan_attributes { + NFTA_TUNNEL_KEY_ERSPAN_UNSPEC, + NFTA_TUNNEL_KEY_ERSPAN_VERSION, + NFTA_TUNNEL_KEY_ERSPAN_V1_INDEX, + NFTA_TUNNEL_KEY_ERSPAN_V2_HWID, + NFTA_TUNNEL_KEY_ERSPAN_V2_DIR, + __NFTA_TUNNEL_KEY_ERSPAN_MAX +}; +#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1) +enum nft_tunnel_flags { + NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0), + NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1), + NFT_TUNNEL_F_SEQ_NUMBER = (1 << 2), +}; +#define NFT_TUNNEL_F_MASK (NFT_TUNNEL_F_ZERO_CSUM_TX | NFT_TUNNEL_F_DONT_FRAGMENT | NFT_TUNNEL_F_SEQ_NUMBER) +enum nft_tunnel_key_attributes { + NFTA_TUNNEL_KEY_UNSPEC, + NFTA_TUNNEL_KEY_ID, + NFTA_TUNNEL_KEY_IP, + NFTA_TUNNEL_KEY_IP6, + NFTA_TUNNEL_KEY_FLAGS, + NFTA_TUNNEL_KEY_TOS, + NFTA_TUNNEL_KEY_TTL, + NFTA_TUNNEL_KEY_SPORT, + NFTA_TUNNEL_KEY_DPORT, + NFTA_TUNNEL_KEY_OPTS, + __NFTA_TUNNEL_KEY_MAX +}; +#define NFTA_TUNNEL_KEY_MAX (__NFTA_TUNNEL_KEY_MAX - 1) +enum nft_tunnel_keys { + NFT_TUNNEL_PATH, + NFT_TUNNEL_ID, + __NFT_TUNNEL_MAX +}; +#define NFT_TUNNEL_MAX (__NFT_TUNNEL_MAX - 1) +enum nft_tunnel_attributes { + NFTA_TUNNEL_UNSPEC, + NFTA_TUNNEL_KEY, + NFTA_TUNNEL_DREG, + __NFTA_TUNNEL_MAX +}; +#define NFTA_TUNNEL_MAX (__NFTA_TUNNEL_MAX - 1) #endif diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h index 13478204b..4981fc14c 100644 --- a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h +++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h @@ -253,6 +253,7 @@ enum ctattr_stats_cpu { enum ctattr_stats_global { CTA_STATS_GLOBAL_UNSPEC, CTA_STATS_GLOBAL_ENTRIES, + CTA_STATS_GLOBAL_MAX_ENTRIES, __CTA_STATS_GLOBAL_MAX, }; #define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1) diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h new file mode 100644 index 000000000..3f930da78 --- /dev/null +++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h @@ -0,0 +1,97 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 _NF_OSF_H +#define _NF_OSF_H +#include <linux/types.h> +#include <linux/ip.h> +#include <linux/tcp.h> +#define MAXGENRELEN 32 +#define NF_OSF_GENRE (1 << 0) +#define NF_OSF_TTL (1 << 1) +#define NF_OSF_LOG (1 << 2) +#define NF_OSF_INVERT (1 << 3) +#define NF_OSF_LOGLEVEL_ALL 0 +#define NF_OSF_LOGLEVEL_FIRST 1 +#define NF_OSF_LOGLEVEL_ALL_KNOWN 2 +#define NF_OSF_TTL_TRUE 0 +#define NF_OSF_TTL_LESS 1 +#define NF_OSF_TTL_NOCHECK 2 +#define NF_OSF_FLAGMASK (NF_OSF_GENRE | NF_OSF_TTL | NF_OSF_LOG | NF_OSF_INVERT) +struct nf_osf_wc { + __u32 wc; + __u32 val; +}; +struct nf_osf_opt { + __u16 kind, length; + struct nf_osf_wc wc; +}; +struct nf_osf_info { + char genre[MAXGENRELEN]; + __u32 len; + __u32 flags; + __u32 loglevel; + __u32 ttl; +}; +struct nf_osf_user_finger { + struct nf_osf_wc wss; + __u8 ttl, df; + __u16 ss, mss; + __u16 opt_num; + char genre[MAXGENRELEN]; + char version[MAXGENRELEN]; + char subtype[MAXGENRELEN]; + struct nf_osf_opt opt[MAX_IPOPTLEN]; +}; +struct nf_osf_nlmsg { + struct nf_osf_user_finger f; + struct iphdr ip; + struct tcphdr tcp; +}; +enum iana_options { + OSFOPT_EOL = 0, + OSFOPT_NOP, + OSFOPT_MSS, + OSFOPT_WSO, + OSFOPT_SACKP, + OSFOPT_SACK, + OSFOPT_ECHO, + OSFOPT_ECHOREPLY, + OSFOPT_TS, + OSFOPT_POCP, + OSFOPT_POSP, + OSFOPT_EMPTY = 255, +}; +enum nf_osf_window_size_options { + OSF_WSS_PLAIN = 0, + OSF_WSS_MSS, + OSF_WSS_MTU, + OSF_WSS_MODULO, + OSF_WSS_MAX, +}; +enum nf_osf_attr_type { + OSF_ATTR_UNSPEC, + OSF_ATTR_FINGER, + OSF_ATTR_MAX, +}; +enum nf_osf_msg_types { + OSF_MSG_ADD, + OSF_MSG_REMOVE, + OSF_MSG_MAX, +}; +#endif diff --git a/libc/kernel/uapi/linux/netfilter/xt_osf.h b/libc/kernel/uapi/linux/netfilter/xt_osf.h index 50156ef2a..892ad404b 100644 --- a/libc/kernel/uapi/linux/netfilter/xt_osf.h +++ b/libc/kernel/uapi/linux/netfilter/xt_osf.h @@ -19,78 +19,24 @@ #ifndef _XT_OSF_H #define _XT_OSF_H #include <linux/types.h> -#include <linux/ip.h> -#include <linux/tcp.h> -#define MAXGENRELEN 32 -#define XT_OSF_GENRE (1 << 0) -#define XT_OSF_TTL (1 << 1) -#define XT_OSF_LOG (1 << 2) -#define XT_OSF_INVERT (1 << 3) -#define XT_OSF_LOGLEVEL_ALL 0 -#define XT_OSF_LOGLEVEL_FIRST 1 -#define XT_OSF_LOGLEVEL_ALL_KNOWN 2 -#define XT_OSF_TTL_TRUE 0 -#define XT_OSF_TTL_LESS 1 -#define XT_OSF_TTL_NOCHECK 2 -struct xt_osf_info { - char genre[MAXGENRELEN]; - __u32 len; - __u32 flags; - __u32 loglevel; - __u32 ttl; -}; -struct xt_osf_wc { - __u32 wc; - __u32 val; -}; -struct xt_osf_opt { - __u16 kind, length; - struct xt_osf_wc wc; -}; -struct xt_osf_user_finger { - struct xt_osf_wc wss; - __u8 ttl, df; - __u16 ss, mss; - __u16 opt_num; - char genre[MAXGENRELEN]; - char version[MAXGENRELEN]; - char subtype[MAXGENRELEN]; - struct xt_osf_opt opt[MAX_IPOPTLEN]; -}; -struct xt_osf_nlmsg { - struct xt_osf_user_finger f; - struct iphdr ip; - struct tcphdr tcp; -}; -enum iana_options { - OSFOPT_EOL = 0, - OSFOPT_NOP, - OSFOPT_MSS, - OSFOPT_WSO, - OSFOPT_SACKP, - OSFOPT_SACK, - OSFOPT_ECHO, - OSFOPT_ECHOREPLY, - OSFOPT_TS, - OSFOPT_POCP, - OSFOPT_POSP, - OSFOPT_EMPTY = 255, -}; -enum xt_osf_window_size_options { - OSF_WSS_PLAIN = 0, - OSF_WSS_MSS, - OSF_WSS_MTU, - OSF_WSS_MODULO, - OSF_WSS_MAX, -}; -enum xt_osf_msg_types { - OSF_MSG_ADD, - OSF_MSG_REMOVE, - OSF_MSG_MAX, -}; -enum xt_osf_attr_type { - OSF_ATTR_UNSPEC, - OSF_ATTR_FINGER, - OSF_ATTR_MAX, -}; +#include <linux/netfilter/nfnetlink_osf.h> +#define XT_OSF_GENRE NF_OSF_GENRE +#define XT_OSF_INVERT NF_OSF_INVERT +#define XT_OSF_TTL NF_OSF_TTL +#define XT_OSF_LOG NF_OSF_LOG +#define XT_OSF_LOGLEVEL_ALL NF_OSF_LOGLEVEL_ALL +#define XT_OSF_LOGLEVEL_FIRST NF_OSF_LOGLEVEL_FIRST +#define XT_OSF_LOGLEVEL_ALL_KNOWN NF_OSF_LOGLEVEL_ALL_KNOWN +#define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE +#define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK +#define XT_OSF_TTL_LESS NF_OSF_TTL_LESS +#define xt_osf_wc nf_osf_wc +#define xt_osf_opt nf_osf_opt +#define xt_osf_info nf_osf_info +#define xt_osf_user_finger nf_osf_user_finger +#define xt_osf_finger nf_osf_finger +#define xt_osf_nlmsg nf_osf_nlmsg +#define xt_osf_window_size_options nf_osf_window_size_options +#define xt_osf_attr_type nf_osf_attr_type +#define xt_osf_msg_types nf_osf_msg_types #endif diff --git a/libc/kernel/uapi/linux/netfilter_bridge.h b/libc/kernel/uapi/linux/netfilter_bridge.h index 57de0e950..6da98f5b5 100644 --- a/libc/kernel/uapi/linux/netfilter_bridge.h +++ b/libc/kernel/uapi/linux/netfilter_bridge.h @@ -30,4 +30,14 @@ #define NF_BR_POST_ROUTING 4 #define NF_BR_BROUTING 5 #define NF_BR_NUMHOOKS 6 +enum nf_br_hook_priorities { + NF_BR_PRI_FIRST = INT_MIN, + NF_BR_PRI_NAT_DST_BRIDGED = - 300, + NF_BR_PRI_FILTER_BRIDGED = - 200, + NF_BR_PRI_BRNF = 0, + NF_BR_PRI_NAT_DST_OTHER = 100, + NF_BR_PRI_FILTER_OTHER = 200, + NF_BR_PRI_NAT_SRC = 300, + NF_BR_PRI_LAST = INT_MAX, +}; #endif diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h index 70fd3e4ea..a9474e727 100644 --- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h +++ b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h @@ -31,7 +31,10 @@ #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_PSID 0x0800 +#define IP6T_SRH_NSID 0x1000 +#define IP6T_SRH_LSID 0x2000 +#define IP6T_SRH_MASK 0x3FFF #define IP6T_SRH_INV_NEXTHDR 0x0001 #define IP6T_SRH_INV_LEN_EQ 0x0002 #define IP6T_SRH_INV_LEN_GT 0x0004 @@ -43,7 +46,10 @@ #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 +#define IP6T_SRH_INV_PSID 0x0800 +#define IP6T_SRH_INV_NSID 0x1000 +#define IP6T_SRH_INV_LSID 0x2000 +#define IP6T_SRH_INV_MASK 0x3FFF struct ip6t_srh { __u8 next_hdr; __u8 hdr_len; @@ -53,4 +59,19 @@ struct ip6t_srh { __u16 mt_flags; __u16 mt_invflags; }; +struct ip6t_srh1 { + __u8 next_hdr; + __u8 hdr_len; + __u8 segs_left; + __u8 last_entry; + __u16 tag; + struct in6_addr psid_addr; + struct in6_addr nsid_addr; + struct in6_addr lsid_addr; + struct in6_addr psid_msk; + struct in6_addr nsid_msk; + struct in6_addr lsid_msk; + __u16 mt_flags; + __u16 mt_invflags; +}; #endif diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h index 349b471a7..1f2f77ddd 100644 --- a/libc/kernel/uapi/linux/nl80211.h +++ b/libc/kernel/uapi/linux/nl80211.h @@ -444,6 +444,11 @@ enum nl80211_attrs { NL80211_ATTR_NSS, NL80211_ATTR_ACK_SIGNAL, NL80211_ATTR_CONTROL_PORT_OVER_NL80211, + NL80211_ATTR_TXQ_STATS, + NL80211_ATTR_TXQ_LIMIT, + NL80211_ATTR_TXQ_MEMORY_LIMIT, + NL80211_ATTR_TXQ_QUANTUM, + NL80211_ATTR_HE_CAPABILITY, __NL80211_ATTR_AFTER_LAST, NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST, NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 @@ -482,6 +487,8 @@ enum nl80211_attrs { #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 #define NL80211_HT_CAPABILITY_LEN 26 #define NL80211_VHT_CAPABILITY_LEN 12 +#define NL80211_HE_MIN_CAPABILITY_LEN 16 +#define NL80211_HE_MAX_CAPABILITY_LEN 51 #define NL80211_MAX_NR_CIPHER_SUITES 5 #define NL80211_MAX_NR_AKM_SUITES 2 #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10 @@ -526,6 +533,20 @@ struct nl80211_sta_flag_update { __u32 mask; __u32 set; } __attribute__((packed)); +enum nl80211_he_gi { + NL80211_RATE_INFO_HE_GI_0_8, + NL80211_RATE_INFO_HE_GI_1_6, + NL80211_RATE_INFO_HE_GI_3_2, +}; +enum nl80211_he_ru_alloc { + NL80211_RATE_INFO_HE_RU_ALLOC_26, + NL80211_RATE_INFO_HE_RU_ALLOC_52, + NL80211_RATE_INFO_HE_RU_ALLOC_106, + NL80211_RATE_INFO_HE_RU_ALLOC_242, + NL80211_RATE_INFO_HE_RU_ALLOC_484, + NL80211_RATE_INFO_HE_RU_ALLOC_996, + NL80211_RATE_INFO_HE_RU_ALLOC_2x996, +}; enum nl80211_rate_info { __NL80211_RATE_INFO_INVALID, NL80211_RATE_INFO_BITRATE, @@ -540,6 +561,11 @@ enum nl80211_rate_info { NL80211_RATE_INFO_160_MHZ_WIDTH, NL80211_RATE_INFO_10_MHZ_WIDTH, NL80211_RATE_INFO_5_MHZ_WIDTH, + NL80211_RATE_INFO_HE_MCS, + NL80211_RATE_INFO_HE_NSS, + NL80211_RATE_INFO_HE_GI, + NL80211_RATE_INFO_HE_DCM, + NL80211_RATE_INFO_HE_RU_ALLOC, __NL80211_RATE_INFO_AFTER_LAST, NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1 }; @@ -589,6 +615,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_RX_DURATION, NL80211_STA_INFO_PAD, NL80211_STA_INFO_ACK_SIGNAL, + NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG, __NL80211_STA_INFO_AFTER_LAST, NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 }; @@ -599,9 +626,26 @@ enum nl80211_tid_stats { NL80211_TID_STATS_TX_MSDU_RETRIES, NL80211_TID_STATS_TX_MSDU_FAILED, NL80211_TID_STATS_PAD, + NL80211_TID_STATS_TXQ_STATS, NUM_NL80211_TID_STATS, NL80211_TID_STATS_MAX = NUM_NL80211_TID_STATS - 1 }; +enum nl80211_txq_stats { + __NL80211_TXQ_STATS_INVALID, + NL80211_TXQ_STATS_BACKLOG_BYTES, + NL80211_TXQ_STATS_BACKLOG_PACKETS, + NL80211_TXQ_STATS_FLOWS, + NL80211_TXQ_STATS_DROPS, + NL80211_TXQ_STATS_ECN_MARKS, + NL80211_TXQ_STATS_OVERLIMIT, + NL80211_TXQ_STATS_OVERMEMORY, + NL80211_TXQ_STATS_COLLISIONS, + NL80211_TXQ_STATS_TX_BYTES, + NL80211_TXQ_STATS_TX_PACKETS, + NL80211_TXQ_STATS_MAX_FLOWS, + NUM_NL80211_TXQ_STATS, + NL80211_TXQ_STATS_MAX = NUM_NL80211_TXQ_STATS - 1 +}; enum nl80211_mpath_flags { NL80211_MPATH_FLAG_ACTIVE = 1 << 0, NL80211_MPATH_FLAG_RESOLVING = 1 << 1, @@ -621,6 +665,16 @@ enum nl80211_mpath_info { __NL80211_MPATH_INFO_AFTER_LAST, NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 }; +enum nl80211_band_iftype_attr { + __NL80211_BAND_IFTYPE_ATTR_INVALID, + NL80211_BAND_IFTYPE_ATTR_IFTYPES, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, + __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, + NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1 +}; enum nl80211_band_attr { __NL80211_BAND_ATTR_INVALID, NL80211_BAND_ATTR_FREQS, @@ -631,10 +685,20 @@ enum nl80211_band_attr { NL80211_BAND_ATTR_HT_AMPDU_DENSITY, NL80211_BAND_ATTR_VHT_MCS_SET, NL80211_BAND_ATTR_VHT_CAPA, + NL80211_BAND_ATTR_IFTYPE_DATA, __NL80211_BAND_ATTR_AFTER_LAST, NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 }; #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA +enum nl80211_wmm_rule { + __NL80211_WMMR_INVALID, + NL80211_WMMR_CW_MIN, + NL80211_WMMR_CW_MAX, + NL80211_WMMR_AIFSN, + NL80211_WMMR_TXOP, + __NL80211_WMMR_LAST, + NL80211_WMMR_MAX = __NL80211_WMMR_LAST - 1 +}; enum nl80211_frequency_attr { __NL80211_FREQUENCY_ATTR_INVALID, NL80211_FREQUENCY_ATTR_FREQ, @@ -654,6 +718,7 @@ enum nl80211_frequency_attr { NL80211_FREQUENCY_ATTR_IR_CONCURRENT, NL80211_FREQUENCY_ATTR_NO_20MHZ, NL80211_FREQUENCY_ATTR_NO_10MHZ, + NL80211_FREQUENCY_ATTR_WMM, __NL80211_FREQUENCY_ATTR_AFTER_LAST, NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1 }; @@ -1218,6 +1283,10 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN, NL80211_EXT_FEATURE_DFS_OFFLOAD, NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211, + NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT, + NL80211_EXT_FEATURE_TXQS, + NL80211_EXT_FEATURE_SCAN_RANDOM_SN, + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT, NUM_NL80211_EXT_FEATURES, MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1 }; @@ -1249,6 +1318,8 @@ enum nl80211_scan_flags { NL80211_SCAN_FLAG_LOW_SPAN = 1 << 8, NL80211_SCAN_FLAG_LOW_POWER = 1 << 9, NL80211_SCAN_FLAG_HIGH_ACCURACY = 1 << 10, + NL80211_SCAN_FLAG_RANDOM_SN = 1 << 11, + NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1 << 12, }; enum nl80211_acl_policy { NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, diff --git a/libc/kernel/uapi/linux/omap3isp.h b/libc/kernel/uapi/linux/omap3isp.h index 66942e7fc..d2eceb740 100644 --- a/libc/kernel/uapi/linux/omap3isp.h +++ b/libc/kernel/uapi/linux/omap3isp.h @@ -26,6 +26,7 @@ #define VIDIOC_OMAP3ISP_HIST_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct omap3isp_hist_config) #define VIDIOC_OMAP3ISP_AF_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct omap3isp_h3a_af_config) #define VIDIOC_OMAP3ISP_STAT_REQ _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct omap3isp_stat_data) +#define VIDIOC_OMAP3ISP_STAT_REQ_TIME32 _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct omap3isp_stat_data_time32) #define VIDIOC_OMAP3ISP_STAT_EN _IOWR('V', BASE_VIDIOC_PRIVATE + 7, unsigned long) #define V4L2_EVENT_OMAP3ISP_CLASS (V4L2_EVENT_PRIVATE_START | 0x100) #define V4L2_EVENT_OMAP3ISP_AEWB (V4L2_EVENT_OMAP3ISP_CLASS | 0x1) diff --git a/libc/kernel/uapi/linux/openvswitch.h b/libc/kernel/uapi/linux/openvswitch.h index 1dba16eac..7e75ac6f6 100644 --- a/libc/kernel/uapi/linux/openvswitch.h +++ b/libc/kernel/uapi/linux/openvswitch.h @@ -425,6 +425,7 @@ enum ovs_action_attr { OVS_ACTION_ATTR_PUSH_NSH, OVS_ACTION_ATTR_POP_NSH, OVS_ACTION_ATTR_METER, + OVS_ACTION_ATTR_CLONE, __OVS_ACTION_ATTR_MAX, }; #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) @@ -467,4 +468,25 @@ enum ovs_meter_band_type { __OVS_METER_BAND_TYPE_MAX }; #define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1) +#define OVS_CT_LIMIT_FAMILY "ovs_ct_limit" +#define OVS_CT_LIMIT_MCGROUP "ovs_ct_limit" +#define OVS_CT_LIMIT_VERSION 0x1 +enum ovs_ct_limit_cmd { + OVS_CT_LIMIT_CMD_UNSPEC, + OVS_CT_LIMIT_CMD_SET, + OVS_CT_LIMIT_CMD_DEL, + OVS_CT_LIMIT_CMD_GET +}; +enum ovs_ct_limit_attr { + OVS_CT_LIMIT_ATTR_UNSPEC, + OVS_CT_LIMIT_ATTR_ZONE_LIMIT, + __OVS_CT_LIMIT_ATTR_MAX +}; +#define OVS_CT_LIMIT_ATTR_MAX (__OVS_CT_LIMIT_ATTR_MAX - 1) +#define OVS_ZONE_LIMIT_DEFAULT_ZONE - 1 +struct ovs_zone_limit { + int zone_id; + __u32 limit; + __u32 count; +}; #endif diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h index 4ef3837d8..7b234f53a 100644 --- a/libc/kernel/uapi/linux/pci_regs.h +++ b/libc/kernel/uapi/linux/pci_regs.h @@ -416,6 +416,8 @@ #define PCI_EXP_DEVCTL_READRQ_256B 0x1000 #define PCI_EXP_DEVCTL_READRQ_512B 0x2000 #define PCI_EXP_DEVCTL_READRQ_1024B 0x3000 +#define PCI_EXP_DEVCTL_READRQ_2048B 0x4000 +#define PCI_EXP_DEVCTL_READRQ_4096B 0x5000 #define PCI_EXP_DEVCTL_BCR_FLR 0x8000 #define PCI_EXP_DEVSTA 10 #define PCI_EXP_DEVSTA_CED 0x0001 @@ -536,6 +538,7 @@ #define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 +#define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000 #define PCI_EXP_DEVCTL2 40 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 @@ -557,6 +560,11 @@ #define PCI_EXP_LNKCAP2_SLS_16_0GB 0x00000010 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 #define PCI_EXP_LNKCTL2 48 +#define PCI_EXP_LNKCTL2_TLS 0x000f +#define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001 +#define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002 +#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 +#define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 #define PCI_EXP_LNKSTA2 50 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 #define PCI_EXP_SLTCAP2 52 @@ -814,6 +822,7 @@ #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 #define PCI_REBAR_CTRL_NBAR_SHIFT 5 #define PCI_REBAR_CTRL_BAR_SIZE 0x00001F00 +#define PCI_REBAR_CTRL_BAR_SHIFT 8 #define PCI_DPA_CAP 4 #define PCI_DPA_CAP_SUBSTATE_MASK 0x1F #define PCI_DPA_BASE_SIZEOF 16 @@ -833,6 +842,7 @@ #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_FATAL 0x0001 #define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002 #define PCI_EXP_DPC_CTL_INT_EN 0x0008 #define PCI_EXP_DPC_STATUS 8 diff --git a/libc/kernel/uapi/linux/pcitest.h b/libc/kernel/uapi/linux/pcitest.h index e6c026492..c6112d086 100644 --- a/libc/kernel/uapi/linux/pcitest.h +++ b/libc/kernel/uapi/linux/pcitest.h @@ -24,4 +24,7 @@ #define PCITEST_WRITE _IOW('P', 0x4, unsigned long) #define PCITEST_READ _IOW('P', 0x5, unsigned long) #define PCITEST_COPY _IOW('P', 0x6, unsigned long) +#define PCITEST_MSIX _IOW('P', 0x7, int) +#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int) +#define PCITEST_GET_IRQTYPE _IO('P', 0x9) #endif diff --git a/libc/kernel/uapi/linux/perf_event.h b/libc/kernel/uapi/linux/perf_event.h index dc1e32c1d..c106b5b4a 100644 --- a/libc/kernel/uapi/linux/perf_event.h +++ b/libc/kernel/uapi/linux/perf_event.h @@ -100,6 +100,7 @@ enum perf_event_sample_format { PERF_SAMPLE_REGS_INTR = 1U << 18, PERF_SAMPLE_PHYS_ADDR = 1U << 19, PERF_SAMPLE_MAX = 1U << 20, + __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, }; enum perf_branch_sample_type_shift { PERF_SAMPLE_BRANCH_USER_SHIFT = 0, diff --git a/libc/kernel/uapi/linux/pkt_cls.h b/libc/kernel/uapi/linux/pkt_cls.h index 113469c7b..1ede89254 100644 --- a/libc/kernel/uapi/linux/pkt_cls.h +++ b/libc/kernel/uapi/linux/pkt_cls.h @@ -50,12 +50,15 @@ enum { #define TC_ACT_REPEAT 6 #define TC_ACT_REDIRECT 7 #define TC_ACT_TRAP 8 +#define TC_ACT_VALUE_MAX TC_ACT_TRAP #define __TC_ACT_EXT_SHIFT 28 #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1) -#define TC_ACT_EXT_CMP(combined,opcode) (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode) +#define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK)) +#define TC_ACT_EXT_CMP(combined,opcode) (TC_ACT_EXT_OPCODE(combined) == opcode) #define TC_ACT_JUMP __TC_ACT_EXT(1) #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) +#define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN enum { TCA_ID_UNSPEC = 0, TCA_ID_POLICE = 1, @@ -107,6 +110,7 @@ enum { #define TCA_CLS_FLAGS_SKIP_SW (1 << 1) #define TCA_CLS_FLAGS_IN_HW (1 << 2) #define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) +#define TCA_CLS_FLAGS_VERBOSE (1 << 4) #define TC_U32_HTID(h) ((h) & 0xFFF00000) #define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20) #define TC_U32_HASH(h) (((h) >> 12) & 0xFF) @@ -375,10 +379,33 @@ enum { TCA_FLOWER_KEY_IP_TOS_MASK, TCA_FLOWER_KEY_IP_TTL, TCA_FLOWER_KEY_IP_TTL_MASK, + TCA_FLOWER_KEY_CVLAN_ID, + TCA_FLOWER_KEY_CVLAN_PRIO, + TCA_FLOWER_KEY_CVLAN_ETH_TYPE, + TCA_FLOWER_KEY_ENC_IP_TOS, + TCA_FLOWER_KEY_ENC_IP_TOS_MASK, + TCA_FLOWER_KEY_ENC_IP_TTL, + TCA_FLOWER_KEY_ENC_IP_TTL_MASK, + TCA_FLOWER_KEY_ENC_OPTS, + TCA_FLOWER_KEY_ENC_OPTS_MASK, __TCA_FLOWER_MAX, }; #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) enum { + TCA_FLOWER_KEY_ENC_OPTS_UNSPEC, + TCA_FLOWER_KEY_ENC_OPTS_GENEVE, + __TCA_FLOWER_KEY_ENC_OPTS_MAX, +}; +#define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1) +enum { + TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC, + TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS, + TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE, + TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA, + __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX, +}; +#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1) +enum { TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), }; diff --git a/libc/kernel/uapi/linux/pkt_sched.h b/libc/kernel/uapi/linux/pkt_sched.h index a3f2adf1f..4efbc1c37 100644 --- a/libc/kernel/uapi/linux/pkt_sched.h +++ b/libc/kernel/uapi/linux/pkt_sched.h @@ -87,6 +87,10 @@ enum { struct tc_fifo_qopt { __u32 limit; }; +#define SKBPRIO_MAX_PRIORITY 64 +struct tc_skbprio_qopt { + __u32 limit; +}; #define TCQ_PRIO_BANDS 16 #define TCQ_MIN_PRIO_BANDS 2 struct tc_prio_qopt { @@ -407,6 +411,7 @@ enum { TCA_NETEM_LATENCY64, TCA_NETEM_JITTER64, TCA_NETEM_SLOT, + TCA_NETEM_SLOT_DIST, __TCA_NETEM_MAX, }; #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) @@ -442,6 +447,8 @@ struct tc_netem_slot { __s64 max_delay; __s32 max_packets; __s32 max_bytes; + __s64 dist_delay; + __s64 dist_jitter; }; enum { NETEM_LOSS_UNSPEC, @@ -703,4 +710,122 @@ enum { __TCA_CBS_MAX, }; #define TCA_CBS_MAX (__TCA_CBS_MAX - 1) +struct tc_etf_qopt { + __s32 delta; + __s32 clockid; + __u32 flags; +#define TC_ETF_DEADLINE_MODE_ON BIT(0) +#define TC_ETF_OFFLOAD_ON BIT(1) +}; +enum { + TCA_ETF_UNSPEC, + TCA_ETF_PARMS, + __TCA_ETF_MAX, +}; +#define TCA_ETF_MAX (__TCA_ETF_MAX - 1) +enum { + TCA_CAKE_UNSPEC, + TCA_CAKE_PAD, + TCA_CAKE_BASE_RATE64, + TCA_CAKE_DIFFSERV_MODE, + TCA_CAKE_ATM, + TCA_CAKE_FLOW_MODE, + TCA_CAKE_OVERHEAD, + TCA_CAKE_RTT, + TCA_CAKE_TARGET, + TCA_CAKE_AUTORATE, + TCA_CAKE_MEMORY, + TCA_CAKE_NAT, + TCA_CAKE_RAW, + TCA_CAKE_WASH, + TCA_CAKE_MPU, + TCA_CAKE_INGRESS, + TCA_CAKE_ACK_FILTER, + TCA_CAKE_SPLIT_GSO, + __TCA_CAKE_MAX +}; +#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1) +enum { + __TCA_CAKE_STATS_INVALID, + TCA_CAKE_STATS_PAD, + TCA_CAKE_STATS_CAPACITY_ESTIMATE64, + TCA_CAKE_STATS_MEMORY_LIMIT, + TCA_CAKE_STATS_MEMORY_USED, + TCA_CAKE_STATS_AVG_NETOFF, + TCA_CAKE_STATS_MIN_NETLEN, + TCA_CAKE_STATS_MAX_NETLEN, + TCA_CAKE_STATS_MIN_ADJLEN, + TCA_CAKE_STATS_MAX_ADJLEN, + TCA_CAKE_STATS_TIN_STATS, + TCA_CAKE_STATS_DEFICIT, + TCA_CAKE_STATS_COBALT_COUNT, + TCA_CAKE_STATS_DROPPING, + TCA_CAKE_STATS_DROP_NEXT_US, + TCA_CAKE_STATS_P_DROP, + TCA_CAKE_STATS_BLUE_TIMER_US, + __TCA_CAKE_STATS_MAX +}; +#define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1) +enum { + __TCA_CAKE_TIN_STATS_INVALID, + TCA_CAKE_TIN_STATS_PAD, + TCA_CAKE_TIN_STATS_SENT_PACKETS, + TCA_CAKE_TIN_STATS_SENT_BYTES64, + TCA_CAKE_TIN_STATS_DROPPED_PACKETS, + TCA_CAKE_TIN_STATS_DROPPED_BYTES64, + TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS, + TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64, + TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS, + TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64, + TCA_CAKE_TIN_STATS_BACKLOG_PACKETS, + TCA_CAKE_TIN_STATS_BACKLOG_BYTES, + TCA_CAKE_TIN_STATS_THRESHOLD_RATE64, + TCA_CAKE_TIN_STATS_TARGET_US, + TCA_CAKE_TIN_STATS_INTERVAL_US, + TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS, + TCA_CAKE_TIN_STATS_WAY_MISSES, + TCA_CAKE_TIN_STATS_WAY_COLLISIONS, + TCA_CAKE_TIN_STATS_PEAK_DELAY_US, + TCA_CAKE_TIN_STATS_AVG_DELAY_US, + TCA_CAKE_TIN_STATS_BASE_DELAY_US, + TCA_CAKE_TIN_STATS_SPARSE_FLOWS, + TCA_CAKE_TIN_STATS_BULK_FLOWS, + TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS, + TCA_CAKE_TIN_STATS_MAX_SKBLEN, + TCA_CAKE_TIN_STATS_FLOW_QUANTUM, + __TCA_CAKE_TIN_STATS_MAX +}; +#define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1) +#define TC_CAKE_MAX_TINS (8) +enum { + CAKE_FLOW_NONE = 0, + CAKE_FLOW_SRC_IP, + CAKE_FLOW_DST_IP, + CAKE_FLOW_HOSTS, + CAKE_FLOW_FLOWS, + CAKE_FLOW_DUAL_SRC, + CAKE_FLOW_DUAL_DST, + CAKE_FLOW_TRIPLE, + CAKE_FLOW_MAX, +}; +enum { + CAKE_DIFFSERV_DIFFSERV3 = 0, + CAKE_DIFFSERV_DIFFSERV4, + CAKE_DIFFSERV_DIFFSERV8, + CAKE_DIFFSERV_BESTEFFORT, + CAKE_DIFFSERV_PRECEDENCE, + CAKE_DIFFSERV_MAX +}; +enum { + CAKE_ACK_NONE = 0, + CAKE_ACK_FILTER, + CAKE_ACK_AGGRESSIVE, + CAKE_ACK_MAX +}; +enum { + CAKE_ATM_NONE = 0, + CAKE_ATM_ATM, + CAKE_ATM_PTM, + CAKE_ATM_MAX +}; #endif diff --git a/libc/kernel/uapi/linux/psp-sev.h b/libc/kernel/uapi/linux/psp-sev.h index 5f593301a..10582d48a 100644 --- a/libc/kernel/uapi/linux/psp-sev.h +++ b/libc/kernel/uapi/linux/psp-sev.h @@ -27,6 +27,7 @@ enum { SEV_PDH_GEN, SEV_PDH_CERT_EXPORT, SEV_PEK_CERT_IMPORT, + SEV_GET_ID, SEV_MAX, }; typedef enum { @@ -78,6 +79,10 @@ struct sev_user_data_pdh_cert_export { __u64 cert_chain_address; __u32 cert_chain_len; } __packed; +struct sev_user_data_get_id { + __u8 socket1[64]; + __u8 socket2[64]; +} __packed; struct sev_issue_cmd { __u32 cmd; __u64 data; diff --git a/libc/kernel/uapi/linux/rds.h b/libc/kernel/uapi/linux/rds.h index c726f54ca..05da0cd24 100644 --- a/libc/kernel/uapi/linux/rds.h +++ b/libc/kernel/uapi/linux/rds.h @@ -20,6 +20,7 @@ #define _LINUX_RDS_H #include <linux/types.h> #include <linux/socket.h> +#include <linux/in6.h> #define RDS_IB_ABI_VERSION 0x301 #define SOL_RDS 276 #define RDS_CANCEL_SENT_TO 1 @@ -58,7 +59,14 @@ #define RDS_INFO_IB_CONNECTIONS 10008 #define RDS_INFO_CONNECTION_STATS 10009 #define RDS_INFO_IWARP_CONNECTIONS 10010 -#define RDS_INFO_LAST 10010 +#define RDS6_INFO_CONNECTIONS 10011 +#define RDS6_INFO_SEND_MESSAGES 10012 +#define RDS6_INFO_RETRANS_MESSAGES 10013 +#define RDS6_INFO_RECV_MESSAGES 10014 +#define RDS6_INFO_SOCKETS 10015 +#define RDS6_INFO_TCP_SOCKETS 10016 +#define RDS6_INFO_IB_CONNECTIONS 10017 +#define RDS_INFO_LAST 10017 struct rds_info_counter { __u8 name[32]; __u64 value; @@ -75,6 +83,14 @@ struct rds_info_connection { __u8 transport[TRANSNAMSIZ]; __u8 flags; } __attribute__((packed)); +struct rds6_info_connection { + __u64 next_tx_seq; + __u64 next_rx_seq; + struct in6_addr laddr; + struct in6_addr faddr; + __u8 transport[TRANSNAMSIZ]; + __u8 flags; +} __attribute__((packed)); #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 struct rds_info_message { @@ -86,6 +102,16 @@ struct rds_info_message { __be16 fport; __u8 flags; } __attribute__((packed)); +struct rds6_info_message { + __u64 seq; + __u32 len; + struct in6_addr laddr; + struct in6_addr faddr; + __be16 lport; + __be16 fport; + __u8 flags; + __u8 tos; +} __attribute__((packed)); struct rds_info_socket { __u32 sndbuf; __be32 bound_addr; @@ -95,6 +121,15 @@ struct rds_info_socket { __u32 rcvbuf; __u64 inum; } __attribute__((packed)); +struct rds6_info_socket { + __u32 sndbuf; + struct in6_addr bound_addr; + struct in6_addr connected_addr; + __be16 bound_port; + __be16 connected_port; + __u32 rcvbuf; + __u64 inum; +} __attribute__((packed)); struct rds_info_tcp_socket { __be32 local_addr; __be16 local_port; @@ -106,6 +141,17 @@ struct rds_info_tcp_socket { __u32 last_expected_una; __u32 last_seen_una; } __attribute__((packed)); +struct rds6_info_tcp_socket { + struct in6_addr local_addr; + __be16 local_port; + struct in6_addr peer_addr; + __be16 peer_port; + __u64 hdr_rem; + __u64 data_rem; + __u32 last_sent_nxt; + __u32 last_expected_una; + __u32 last_seen_una; +} __attribute__((packed)); #define RDS_IB_GID_LEN 16 struct rds_info_rdma_connection { __be32 src_addr; @@ -118,6 +164,17 @@ struct rds_info_rdma_connection { __u32 rdma_mr_max; __u32 rdma_mr_size; }; +struct rds6_info_rdma_connection { + struct in6_addr src_addr; + struct in6_addr dst_addr; + __u8 src_gid[RDS_IB_GID_LEN]; + __u8 dst_gid[RDS_IB_GID_LEN]; + __u32 max_send_wr; + __u32 max_recv_wr; + __u32 max_send_sge; + __u32 rdma_mr_max; + __u32 rdma_mr_size; +}; enum rds_message_rxpath_latency { RDS_MSG_RX_HDR_TO_DGRAM_START = 0, RDS_MSG_RX_DGRAM_REASSEMBLE, diff --git a/libc/kernel/uapi/linux/rseq.h b/libc/kernel/uapi/linux/rseq.h new file mode 100644 index 000000000..ba0ceb187 --- /dev/null +++ b/libc/kernel/uapi/linux/rseq.h @@ -0,0 +1,68 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_RSEQ_H +#define _UAPI_LINUX_RSEQ_H +#include <linux/types.h> +#include <asm/byteorder.h> +enum rseq_cpu_id_state { + RSEQ_CPU_ID_UNINITIALIZED = - 1, + RSEQ_CPU_ID_REGISTRATION_FAILED = - 2, +}; +enum rseq_flags { + RSEQ_FLAG_UNREGISTER = (1 << 0), +}; +enum rseq_cs_flags_bit { + RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT = 0, + RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT = 1, + RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT = 2, +}; +enum rseq_cs_flags { + RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = (1U << RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT), + RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = (1U << RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT), + RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = (1U << RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT), +}; +struct rseq_cs { + __u32 version; + __u32 flags; + __u64 start_ip; + __u64 post_commit_offset; + __u64 abort_ip; +} __attribute__((aligned(4 * sizeof(__u64)))); +struct rseq { + __u32 cpu_id_start; + __u32 cpu_id; + union { + __u64 ptr64; +#ifdef __LP64__ + __u64 ptr; +#else + struct { +#if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || defined(__BIG_ENDIAN) + __u32 padding; + __u32 ptr32; +#else + __u32 ptr32; + __u32 padding; +#endif + } ptr; +#endif + } rseq_cs; + __u32 flags; +} __attribute__((aligned(4 * sizeof(__u64)))); +#endif diff --git a/libc/kernel/uapi/linux/rtnetlink.h b/libc/kernel/uapi/linux/rtnetlink.h index 6fffcd31c..33af1b330 100644 --- a/libc/kernel/uapi/linux/rtnetlink.h +++ b/libc/kernel/uapi/linux/rtnetlink.h @@ -133,6 +133,12 @@ enum { #define RTM_GETSTATS RTM_GETSTATS RTM_NEWCACHEREPORT = 96, #define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT + RTM_NEWCHAIN = 100, +#define RTM_NEWCHAIN RTM_NEWCHAIN + RTM_DELCHAIN, +#define RTM_DELCHAIN RTM_DELCHAIN + RTM_GETCHAIN, +#define RTM_GETCHAIN RTM_GETCHAIN __RTM_MAX, #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) }; @@ -194,6 +200,11 @@ enum { #define RTPROT_DHCP 16 #define RTPROT_MROUTED 17 #define RTPROT_BABEL 42 +#define RTPROT_BGP 186 +#define RTPROT_ISIS 187 +#define RTPROT_OSPF 188 +#define RTPROT_RIP 189 +#define RTPROT_EIGRP 192 enum rt_scope_t { RT_SCOPE_UNIVERSE = 0, RT_SCOPE_SITE = 200, @@ -243,6 +254,9 @@ enum rtattr_type_t { RTA_PAD, RTA_UID, RTA_TTL_PROPAGATE, + RTA_IP_PROTO, + RTA_SPORT, + RTA_DPORT, __RTA_MAX }; #define RTA_MAX (__RTA_MAX - 1) diff --git a/libc/kernel/uapi/linux/sctp.h b/libc/kernel/uapi/linux/sctp.h index 1f7fed1da..6ba738e0f 100644 --- a/libc/kernel/uapi/linux/sctp.h +++ b/libc/kernel/uapi/linux/sctp.h @@ -59,6 +59,7 @@ typedef __s32 sctp_assoc_t; #define SCTP_RECVNXTINFO 33 #define SCTP_DEFAULT_SNDINFO 34 #define SCTP_AUTH_DEACTIVATE_KEY 35 +#define SCTP_REUSE_PORT 36 #define SCTP_SOCKOPT_BINDX_ADD 100 #define SCTP_SOCKOPT_BINDX_REM 101 #define SCTP_SOCKOPT_PEELOFF 102 @@ -159,6 +160,7 @@ enum sctp_sinfo_flags { SCTP_ABORT = (1 << 2), SCTP_SACK_IMMEDIATELY = (1 << 3), SCTP_SENDALL = (1 << 6), + SCTP_PR_SCTP_ALL = (1 << 7), SCTP_NOTIFICATION = MSG_NOTIFICATION, SCTP_EOF = MSG_FIN, }; @@ -428,6 +430,8 @@ enum sctp_spp_flags { SPP_SACKDELAY_DISABLE = 1 << 6, SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE, SPP_HB_TIME_IS_ZERO = 1 << 7, + SPP_IPV6_FLOWLABEL = 1 << 8, + SPP_DSCP = 1 << 9, }; struct sctp_paddrparams { sctp_assoc_t spp_assoc_id; @@ -437,6 +441,8 @@ struct sctp_paddrparams { __u32 spp_pathmtu; __u32 spp_sackdelay; __u32 spp_flags; + __u32 spp_ipv6_flowlabel; + __u8 spp_dscp; } __attribute__((packed, aligned(4))); struct sctp_authchunk { __u8 sauth_chunk; diff --git a/libc/kernel/uapi/linux/seg6_local.h b/libc/kernel/uapi/linux/seg6_local.h index 7a1070129..73873a809 100644 --- a/libc/kernel/uapi/linux/seg6_local.h +++ b/libc/kernel/uapi/linux/seg6_local.h @@ -28,6 +28,7 @@ enum { SEG6_LOCAL_NH6, SEG6_LOCAL_IIF, SEG6_LOCAL_OIF, + SEG6_LOCAL_BPF, __SEG6_LOCAL_MAX, }; #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) @@ -47,7 +48,15 @@ enum { SEG6_LOCAL_ACTION_END_S = 12, SEG6_LOCAL_ACTION_END_AS = 13, SEG6_LOCAL_ACTION_END_AM = 14, + SEG6_LOCAL_ACTION_END_BPF = 15, __SEG6_LOCAL_ACTION_MAX, }; #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1) +enum { + SEG6_LOCAL_BPF_PROG_UNSPEC, + SEG6_LOCAL_BPF_PROG, + SEG6_LOCAL_BPF_PROG_NAME, + __SEG6_LOCAL_BPF_PROG_MAX, +}; +#define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1) #endif diff --git a/libc/kernel/uapi/linux/shm.h b/libc/kernel/uapi/linux/shm.h index a30a089e0..57394cb6c 100644 --- a/libc/kernel/uapi/linux/shm.h +++ b/libc/kernel/uapi/linux/shm.h @@ -53,7 +53,9 @@ struct __kernel_legacy_shmid_ds { #define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB #define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB #define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB +#define SHM_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB #define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB +#define SHM_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB #define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB #define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB #define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB diff --git a/libc/kernel/uapi/linux/signalfd.h b/libc/kernel/uapi/linux/signalfd.h index a1fe2decc..5108ef04a 100644 --- a/libc/kernel/uapi/linux/signalfd.h +++ b/libc/kernel/uapi/linux/signalfd.h @@ -40,6 +40,10 @@ struct signalfd_siginfo { __u64 ssi_stime; __u64 ssi_addr; __u16 ssi_addr_lsb; - __u8 __pad[46]; + __u16 __pad2; + __s32 ssi_syscall; + __u64 ssi_call_addr; + __u32 ssi_arch; + __u8 __pad[28]; }; #endif diff --git a/libc/kernel/uapi/linux/smc_diag.h b/libc/kernel/uapi/linux/smc_diag.h index 66f93f0c2..30e0fa259 100644 --- a/libc/kernel/uapi/linux/smc_diag.h +++ b/libc/kernel/uapi/linux/smc_diag.h @@ -30,17 +30,27 @@ struct smc_diag_req { struct smc_diag_msg { __u8 diag_family; __u8 diag_state; - __u8 diag_fallback; + union { + __u8 diag_mode; + __u8 diag_fallback; + }; __u8 diag_shutdown; struct inet_diag_sockid id; __u32 diag_uid; - __u64 diag_inode; + __aligned_u64 diag_inode; +}; +enum { + SMC_DIAG_MODE_SMCR, + SMC_DIAG_MODE_FALLBACK_TCP, + SMC_DIAG_MODE_SMCD, }; enum { SMC_DIAG_NONE, SMC_DIAG_CONNINFO, SMC_DIAG_LGRINFO, SMC_DIAG_SHUTDOWN, + SMC_DIAG_DMBINFO, + SMC_DIAG_FALLBACK, __SMC_DIAG_MAX, }; #define SMC_DIAG_MAX (__SMC_DIAG_MAX - 1) @@ -77,4 +87,15 @@ struct smc_diag_lgrinfo { struct smc_diag_linkinfo lnk[1]; __u8 role; }; +struct smc_diag_fallback { + __u32 reason; + __u32 peer_diagnosis; +}; +struct smcd_diag_dmbinfo { + __u32 linkid; + __aligned_u64 peer_gid; + __aligned_u64 my_gid; + __aligned_u64 token; + __aligned_u64 peer_token; +}; #endif diff --git a/libc/kernel/uapi/linux/snmp.h b/libc/kernel/uapi/linux/snmp.h index b9f0c3e9c..ae24f0f5f 100644 --- a/libc/kernel/uapi/linux/snmp.h +++ b/libc/kernel/uapi/linux/snmp.h @@ -55,6 +55,7 @@ enum { IPSTATS_MIB_ECT1PKTS, IPSTATS_MIB_ECT0PKTS, IPSTATS_MIB_CEPKTS, + IPSTATS_MIB_REASM_OVERLAPS, __IPSTATS_MIB_MAX }; enum { @@ -243,6 +244,11 @@ enum { LINUX_MIB_TCPKEEPALIVE, LINUX_MIB_TCPMTUPFAIL, LINUX_MIB_TCPMTUPSUCCESS, + LINUX_MIB_TCPDELIVERED, + LINUX_MIB_TCPDELIVEREDCE, + LINUX_MIB_TCPACKCOMPRESSED, + LINUX_MIB_TCPZEROWINDOWDROP, + LINUX_MIB_TCPRCVQDROP, __LINUX_MIB_MAX }; enum { diff --git a/libc/kernel/uapi/linux/sysctl.h b/libc/kernel/uapi/linux/sysctl.h index eb6e61f32..24d836237 100644 --- a/libc/kernel/uapi/linux/sysctl.h +++ b/libc/kernel/uapi/linux/sysctl.h @@ -491,7 +491,8 @@ enum { __NET_IPV6_MAX }; enum { - NET_IPV6_ICMP_RATELIMIT = 1 + NET_IPV6_ICMP_RATELIMIT = 1, + NET_IPV6_ICMP_ECHO_IGNORE_ALL = 2 }; enum { NET_NEIGH_MCAST_SOLICIT = 1, diff --git a/libc/kernel/uapi/linux/target_core_user.h b/libc/kernel/uapi/linux/target_core_user.h index 264b46fe1..7c997d102 100644 --- a/libc/kernel/uapi/linux/target_core_user.h +++ b/libc/kernel/uapi/linux/target_core_user.h @@ -24,6 +24,7 @@ #define TCMU_MAILBOX_VERSION 2 #define ALIGN_SIZE 64 #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) +#define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) struct tcmu_mailbox { __u16 version; __u16 flags; @@ -41,6 +42,7 @@ struct tcmu_cmd_entry_hdr { __u16 cmd_id; __u8 kflags; #define TCMU_UFLAG_UNKNOWN_OP 0x1 +#define TCMU_UFLAG_READ_LEN 0x2 __u8 uflags; } __packed; #define TCMU_OP_MASK 0x7 @@ -61,7 +63,7 @@ struct tcmu_cmd_entry { __u8 scsi_status; __u8 __pad1; __u16 __pad2; - __u32 __pad3; + __u32 read_len; char sense_buffer[TCMU_SENSE_BUFFERSIZE]; } rsp; }; diff --git a/libc/kernel/uapi/linux/tc_act/tc_skbedit.h b/libc/kernel/uapi/linux/tc_act/tc_skbedit.h index cb5c2e199..30d529a05 100644 --- a/libc/kernel/uapi/linux/tc_act/tc_skbedit.h +++ b/libc/kernel/uapi/linux/tc_act/tc_skbedit.h @@ -25,6 +25,7 @@ #define SKBEDIT_F_MARK 0x4 #define SKBEDIT_F_PTYPE 0x8 #define SKBEDIT_F_MASK 0x10 +#define SKBEDIT_F_INHERITDSFIELD 0x20 struct tc_skbedit { tc_gen; }; @@ -38,6 +39,7 @@ enum { TCA_SKBEDIT_PAD, TCA_SKBEDIT_PTYPE, TCA_SKBEDIT_MASK, + TCA_SKBEDIT_FLAGS, __TCA_SKBEDIT_MAX }; #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1) diff --git a/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h b/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h index 24e740351..bd5fb2469 100644 --- a/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h +++ b/libc/kernel/uapi/linux/tc_act/tc_tunnel_key.h @@ -38,7 +38,24 @@ enum { TCA_TUNNEL_KEY_PAD, TCA_TUNNEL_KEY_ENC_DST_PORT, TCA_TUNNEL_KEY_NO_CSUM, + TCA_TUNNEL_KEY_ENC_OPTS, + TCA_TUNNEL_KEY_ENC_TOS, + TCA_TUNNEL_KEY_ENC_TTL, __TCA_TUNNEL_KEY_MAX, }; #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1) +enum { + TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC, + TCA_TUNNEL_KEY_ENC_OPTS_GENEVE, + __TCA_TUNNEL_KEY_ENC_OPTS_MAX, +}; +#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1) +enum { + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC, + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS, + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE, + TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA, + __TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX, +}; +#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1) #endif diff --git a/libc/kernel/uapi/linux/tcp.h b/libc/kernel/uapi/linux/tcp.h index 8b73119fe..d940f0f8d 100644 --- a/libc/kernel/uapi/linux/tcp.h +++ b/libc/kernel/uapi/linux/tcp.h @@ -89,6 +89,12 @@ enum { #define TCP_MD5SIG_EXT 32 #define TCP_FASTOPEN_KEY 33 #define TCP_FASTOPEN_NO_COOKIE 34 +#define TCP_ZEROCOPY_RECEIVE 35 +#define TCP_INQ 36 +#define TCP_CM_INQ TCP_INQ +#define TCP_REPAIR_ON 1 +#define TCP_REPAIR_OFF 0 +#define TCP_REPAIR_OFF_NO_WP - 1 struct tcp_repair_opt { __u32 opt_code; __u32 opt_val; @@ -171,6 +177,12 @@ struct tcp_info { __u64 tcpi_busy_time; __u64 tcpi_rwnd_limited; __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; }; enum { TCP_NLA_PAD, @@ -189,6 +201,12 @@ enum { TCP_NLA_SNDQ_SIZE, TCP_NLA_CA_STATE, TCP_NLA_SND_SSTHRESH, + TCP_NLA_DELIVERED, + TCP_NLA_DELIVERED_CE, + TCP_NLA_BYTES_SENT, + TCP_NLA_BYTES_RETRANS, + TCP_NLA_DSACK_DUPS, + TCP_NLA_REORD_SEEN, }; #define TCP_MD5SIG_MAXKEYLEN 80 #define TCP_MD5SIG_FLAG_PREFIX 1 @@ -207,4 +225,9 @@ struct tcp_diag_md5sig { __be32 tcpm_addr[4]; __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; }; +struct tcp_zerocopy_receive { + __u64 address; + __u32 length; + __u32 recv_skip_hint; +}; #endif diff --git a/libc/kernel/uapi/linux/time.h b/libc/kernel/uapi/linux/time.h index b75d2dce3..96a7042c0 100644 --- a/libc/kernel/uapi/linux/time.h +++ b/libc/kernel/uapi/linux/time.h @@ -45,6 +45,18 @@ struct itimerval { struct timeval it_interval; struct timeval it_value; }; +#ifndef __kernel_timespec +struct __kernel_timespec { + __kernel_time64_t tv_sec; + long long tv_nsec; +}; +#endif +#ifndef __kernel_itimerspec +struct __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; +}; +#endif struct __kernel_old_timeval { __kernel_long_t tv_sec; __kernel_long_t tv_usec; diff --git a/libc/kernel/uapi/linux/tipc.h b/libc/kernel/uapi/linux/tipc.h index 603c58f77..72bcad97d 100644 --- a/libc/kernel/uapi/linux/tipc.h +++ b/libc/kernel/uapi/linux/tipc.h @@ -119,16 +119,22 @@ struct tipc_group_req { __u32 scope; __u32 flags; }; +#define TIPC_NODEID_LEN 16 #define TIPC_MAX_MEDIA_NAME 16 #define TIPC_MAX_IF_NAME 16 #define TIPC_MAX_BEARER_NAME 32 #define TIPC_MAX_LINK_NAME 68 #define SIOCGETLINKNAME SIOCPROTOPRIVATE +#define SIOCGETNODEID (SIOCPROTOPRIVATE + 1) struct tipc_sioc_ln_req { __u32 peer; __u32 bearer_id; char linkname[TIPC_MAX_LINK_NAME]; }; +struct tipc_sioc_nodeid_req { + __u32 peer; + char node_id[TIPC_NODEID_LEN]; +}; #define TIPC_CFG_SRV 0 #define TIPC_ZONE_SCOPE 1 #define TIPC_ADDR_NAMESEQ 1 diff --git a/libc/kernel/uapi/linux/tipc_config.h b/libc/kernel/uapi/linux/tipc_config.h index c52f5ffa5..a371e37ef 100644 --- a/libc/kernel/uapi/linux/tipc_config.h +++ b/libc/kernel/uapi/linux/tipc_config.h @@ -90,6 +90,7 @@ #define TIPC_MIN_LINK_WIN 16 #define TIPC_DEF_LINK_WIN 50 #define TIPC_MAX_LINK_WIN 8191 +#define TIPC_DEF_LINK_UDP_MTU 14000 struct tipc_node_info { __be32 addr; __be32 up; diff --git a/libc/kernel/uapi/linux/tipc_netlink.h b/libc/kernel/uapi/linux/tipc_netlink.h index ce77441ca..911bbdea1 100644 --- a/libc/kernel/uapi/linux/tipc_netlink.h +++ b/libc/kernel/uapi/linux/tipc_netlink.h @@ -92,6 +92,7 @@ enum { TIPC_NLA_SOCK_TIPC_STATE, TIPC_NLA_SOCK_COOKIE, TIPC_NLA_SOCK_PAD, + TIPC_NLA_SOCK_GROUP, __TIPC_NLA_SOCK_MAX, TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1 }; @@ -177,6 +178,16 @@ enum { TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1 }; enum { + TIPC_NLA_SOCK_GROUP_ID, + TIPC_NLA_SOCK_GROUP_OPEN, + TIPC_NLA_SOCK_GROUP_NODE_SCOPE, + TIPC_NLA_SOCK_GROUP_CLUSTER_SCOPE, + TIPC_NLA_SOCK_GROUP_INSTANCE, + TIPC_NLA_SOCK_GROUP_BC_SEND_NEXT, + __TIPC_NLA_SOCK_GROUP_MAX, + TIPC_NLA_SOCK_GROUP_MAX = __TIPC_NLA_SOCK_GROUP_MAX - 1 +}; +enum { TIPC_NLA_CON_UNSPEC, TIPC_NLA_CON_FLAG, TIPC_NLA_CON_NODE, @@ -200,6 +211,7 @@ enum { TIPC_NLA_PROP_PRIO, TIPC_NLA_PROP_TOL, TIPC_NLA_PROP_WIN, + TIPC_NLA_PROP_MTU, __TIPC_NLA_PROP_MAX, TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1 }; diff --git a/libc/kernel/uapi/linux/types.h b/libc/kernel/uapi/linux/types.h index e111573d8..9145e669c 100644 --- a/libc/kernel/uapi/linux/types.h +++ b/libc/kernel/uapi/linux/types.h @@ -34,10 +34,6 @@ typedef __u32 __bitwise __wsum; #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/udp.h b/libc/kernel/uapi/linux/udp.h index 02e13733a..3cd286b67 100644 --- a/libc/kernel/uapi/linux/udp.h +++ b/libc/kernel/uapi/linux/udp.h @@ -29,9 +29,11 @@ struct __kernel_udphdr { #define UDP_ENCAP 100 #define UDP_NO_CHECK6_TX 101 #define UDP_NO_CHECK6_RX 102 +#define UDP_SEGMENT 103 #define UDP_ENCAP_ESPINUDP_NON_IKE 1 #define UDP_ENCAP_ESPINUDP 2 #define UDP_ENCAP_L2TPINUDP 3 #define UDP_ENCAP_GTP0 4 #define UDP_ENCAP_GTP1U 5 +#define UDP_ENCAP_RXRPC 6 #endif diff --git a/libc/kernel/uapi/linux/usb/audio.h b/libc/kernel/uapi/linux/usb/audio.h index 87b8bd5fa..7d36157ea 100644 --- a/libc/kernel/uapi/linux/usb/audio.h +++ b/libc/kernel/uapi/linux/usb/audio.h @@ -154,6 +154,12 @@ struct uac1_output_terminal_descriptor { #define UAC_OUTPUT_TERMINAL_ROOM_SPEAKER 0x305 #define UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER 0x306 #define UAC_OUTPUT_TERMINAL_LOW_FREQ_EFFECTS_SPEAKER 0x307 +#define UAC_BIDIR_TERMINAL_UNDEFINED 0x400 +#define UAC_BIDIR_TERMINAL_HANDSET 0x401 +#define UAC_BIDIR_TERMINAL_HEADSET 0x402 +#define UAC_BIDIR_TERMINAL_SPEAKER_PHONE 0x403 +#define UAC_BIDIR_TERMINAL_ECHO_SUPPRESSING 0x404 +#define UAC_BIDIR_TERMINAL_ECHO_CANCELING 0x405 #define UAC_DT_FEATURE_UNIT_SIZE(ch) (7 + ((ch) + 1) * 2) #define DECLARE_UAC_FEATURE_UNIT_DESCRIPTOR(ch) struct uac_feature_unit_descriptor_ ##ch { __u8 bLength; __u8 bDescriptorType; __u8 bDescriptorSubtype; __u8 bUnitID; __u8 bSourceID; __u8 bControlSize; __le16 bmaControls[ch + 1]; __u8 iFeature; \ } __attribute__((packed)) diff --git a/libc/kernel/uapi/linux/usb/ch11.h b/libc/kernel/uapi/linux/usb/ch11.h index e31c37b37..55387fe43 100644 --- a/libc/kernel/uapi/linux/usb/ch11.h +++ b/libc/kernel/uapi/linux/usb/ch11.h @@ -109,6 +109,8 @@ struct usb_port_status { #define USB_EXT_PORT_STAT_TX_SPEED_ID 0x000000f0 #define USB_EXT_PORT_STAT_RX_LANES 0x00000f00 #define USB_EXT_PORT_STAT_TX_LANES 0x0000f000 +#define USB_EXT_PORT_RX_LANES(p) (((p) & USB_EXT_PORT_STAT_RX_LANES) >> 8) +#define USB_EXT_PORT_TX_LANES(p) (((p) & USB_EXT_PORT_STAT_TX_LANES) >> 12) #define HUB_CHAR_LPSM 0x0003 #define HUB_CHAR_COMMON_LPSM 0x0000 #define HUB_CHAR_INDV_PORT_LPSM 0x0001 diff --git a/libc/kernel/uapi/linux/usb/g_uvc.h b/libc/kernel/uapi/linux/usb/g_uvc.h new file mode 100644 index 000000000..0aeba3d37 --- /dev/null +++ b/libc/kernel/uapi/linux/usb/g_uvc.h @@ -0,0 +1,44 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_USB_G_UVC_H +#define __LINUX_USB_G_UVC_H +#include <linux/ioctl.h> +#include <linux/types.h> +#include <linux/usb/ch9.h> +#define UVC_EVENT_FIRST (V4L2_EVENT_PRIVATE_START + 0) +#define UVC_EVENT_CONNECT (V4L2_EVENT_PRIVATE_START + 0) +#define UVC_EVENT_DISCONNECT (V4L2_EVENT_PRIVATE_START + 1) +#define UVC_EVENT_STREAMON (V4L2_EVENT_PRIVATE_START + 2) +#define UVC_EVENT_STREAMOFF (V4L2_EVENT_PRIVATE_START + 3) +#define UVC_EVENT_SETUP (V4L2_EVENT_PRIVATE_START + 4) +#define UVC_EVENT_DATA (V4L2_EVENT_PRIVATE_START + 5) +#define UVC_EVENT_LAST (V4L2_EVENT_PRIVATE_START + 5) +struct uvc_request_data { + __s32 length; + __u8 data[60]; +}; +struct uvc_event { + union { + enum usb_device_speed speed; + struct usb_ctrlrequest req; + struct uvc_request_data data; + }; +}; +#define UVCIOC_SEND_RESPONSE _IOW('U', 1, struct uvc_request_data) +#endif diff --git a/libc/kernel/uapi/linux/usb/tmc.h b/libc/kernel/uapi/linux/usb/tmc.h index c93096e3c..6e276de34 100644 --- a/libc/kernel/uapi/linux/usb/tmc.h +++ b/libc/kernel/uapi/linux/usb/tmc.h @@ -18,6 +18,7 @@ ****************************************************************************/ #ifndef __LINUX_USB_TMC_H #define __LINUX_USB_TMC_H +#include <linux/types.h> #define USBTMC_STATUS_SUCCESS 0x01 #define USBTMC_STATUS_PENDING 0x02 #define USBTMC_STATUS_FAILED 0x80 @@ -36,6 +37,10 @@ #define USBTMC488_REQUEST_REN_CONTROL 160 #define USBTMC488_REQUEST_GOTO_LOCAL 161 #define USBTMC488_REQUEST_LOCAL_LOCKOUT 162 +struct usbtmc_termchar { + __u8 term_char; + __u8 term_char_enabled; +} __attribute__((packed)); #define USBTMC_IOC_NR 91 #define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1) #define USBTMC_IOCTL_CLEAR _IO(USBTMC_IOC_NR, 2) @@ -43,11 +48,16 @@ #define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4) #define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6) #define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7) +#define USBTMC_IOCTL_GET_TIMEOUT _IOR(USBTMC_IOC_NR, 9, __u32) +#define USBTMC_IOCTL_SET_TIMEOUT _IOW(USBTMC_IOC_NR, 10, __u32) +#define USBTMC_IOCTL_EOM_ENABLE _IOW(USBTMC_IOC_NR, 11, __u8) +#define USBTMC_IOCTL_CONFIG_TERMCHAR _IOW(USBTMC_IOC_NR, 12, struct usbtmc_termchar) #define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char) #define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char) #define USBTMC488_IOCTL_REN_CONTROL _IOW(USBTMC_IOC_NR, 19, unsigned char) #define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20) #define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21) +#define USBTMC488_IOCTL_TRIGGER _IO(USBTMC_IOC_NR, 22) #define USBTMC488_CAPABILITY_TRIGGER 1 #define USBTMC488_CAPABILITY_SIMPLE 2 #define USBTMC488_CAPABILITY_REN_CONTROL 2 diff --git a/libc/kernel/uapi/linux/uvcvideo.h b/libc/kernel/uapi/linux/uvcvideo.h index 7ae7aade5..719147aec 100644 --- a/libc/kernel/uapi/linux/uvcvideo.h +++ b/libc/kernel/uapi/linux/uvcvideo.h @@ -34,6 +34,7 @@ #define UVC_CTRL_FLAG_GET_DEF (1 << 5) #define UVC_CTRL_FLAG_RESTORE (1 << 6) #define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7) +#define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8) #define UVC_CTRL_FLAG_GET_RANGE (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | UVC_CTRL_FLAG_GET_DEF) struct uvc_menu_info { __u32 value; diff --git a/libc/kernel/uapi/linux/v4l2-controls.h b/libc/kernel/uapi/linux/v4l2-controls.h index 37e447e3c..45590a2b7 100644 --- a/libc/kernel/uapi/linux/v4l2-controls.h +++ b/libc/kernel/uapi/linux/v4l2-controls.h @@ -108,7 +108,7 @@ enum v4l2_colorfx { #define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070) #define V4L2_CID_USER_TC358743_BASE (V4L2_CID_USER_BASE + 0x1080) #define V4L2_CID_USER_MAX217X_BASE (V4L2_CID_USER_BASE + 0x1090) -#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x1090) +#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0) #define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) #define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE + 0) @@ -489,7 +489,21 @@ enum v4l2_vp8_golden_frame_sel { #define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE + 508) #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_VP8_PROFILE (V4L2_CID_MPEG_BASE + 511) +enum v4l2_mpeg_video_vp8_profile { + V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0, + V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1, + V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2, + V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3, +}; +#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE +#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE + 512) +enum v4l2_mpeg_video_vp9_profile { + V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0, + V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1, + V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2, + V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3, +}; #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) diff --git a/libc/kernel/uapi/linux/v4l2-subdev.h b/libc/kernel/uapi/linux/v4l2-subdev.h index fd1764b5d..303d167c3 100644 --- a/libc/kernel/uapi/linux/v4l2-subdev.h +++ b/libc/kernel/uapi/linux/v4l2-subdev.h @@ -91,8 +91,12 @@ struct v4l2_subdev_selection { #define VIDIOC_SUBDEV_S_CROP _IOWR('V', 60, struct v4l2_subdev_crop) #define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection) #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection) +#define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id) +#define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id) +#define VIDIOC_SUBDEV_ENUMSTD _IOWR('V', 25, struct v4l2_standard) #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid) #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid) +#define VIDIOC_SUBDEV_QUERYSTD _IOR('V', 63, v4l2_std_id) #define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) #define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) #define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h index 61f0c3d20..a2347449b 100644 --- a/libc/kernel/uapi/linux/version.h +++ b/libc/kernel/uapi/linux/version.h @@ -16,5 +16,5 @@ *** **************************************************************************** ****************************************************************************/ -#define LINUX_VERSION_CODE 266499 +#define LINUX_VERSION_CODE 267008 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) diff --git a/libc/kernel/uapi/linux/vhost.h b/libc/kernel/uapi/linux/vhost.h index b6c1f9dce..e802e02bb 100644 --- a/libc/kernel/uapi/linux/vhost.h +++ b/libc/kernel/uapi/linux/vhost.h @@ -55,6 +55,7 @@ struct vhost_iotlb_msg { __u8 type; }; #define VHOST_IOTLB_MSG 0x1 +#define VHOST_IOTLB_MSG_V2 0x2 struct vhost_msg { int type; union { @@ -62,6 +63,14 @@ struct vhost_msg { __u8 padding[64]; }; }; +struct vhost_msg_v2 { + __u32 type; + __u32 reserved; + union { + struct vhost_iotlb_msg iotlb; + __u8 padding[64]; + }; +}; struct vhost_memory_region { __u64 guest_phys_addr; __u64 memory_size; @@ -95,6 +104,9 @@ struct vhost_memory { #define VHOST_SET_VRING_ERR _IOW(VHOST_VIRTIO, 0x22, struct vhost_vring_file) #define VHOST_SET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x23, struct vhost_vring_state) #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, struct vhost_vring_state) +#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1 +#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64) +#define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64) #define VHOST_NET_SET_BACKEND _IOW(VHOST_VIRTIO, 0x30, struct vhost_vring_file) #define VHOST_F_LOG_ALL 26 #define VHOST_NET_F_VIRTIO_NET_HDR 27 diff --git a/libc/kernel/uapi/linux/videodev2.h b/libc/kernel/uapi/linux/videodev2.h index 0569ba7f1..51faa1e07 100644 --- a/libc/kernel/uapi/linux/videodev2.h +++ b/libc/kernel/uapi/linux/videodev2.h @@ -225,6 +225,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') #define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') +#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') #define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') @@ -292,6 +293,10 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') #define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C') +#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E') +#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E') +#define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E') +#define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E') #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') #define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') #define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') @@ -315,6 +320,7 @@ struct v4l2_pix_format { #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_FWHT v4l2_fourcc('F', 'W', 'H', 'T') #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') @@ -1271,7 +1277,6 @@ struct v4l2_create_buffers { __u32 reserved[8]; }; #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability) -#define VIDIOC_RESERVED _IO('V', 1) #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) #define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format) #define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format) diff --git a/libc/kernel/uapi/linux/virtio_config.h b/libc/kernel/uapi/linux/virtio_config.h index 80a0b1b10..ddf5e4e83 100644 --- a/libc/kernel/uapi/linux/virtio_config.h +++ b/libc/kernel/uapi/linux/virtio_config.h @@ -26,11 +26,12 @@ #define VIRTIO_CONFIG_S_NEEDS_RESET 0x40 #define VIRTIO_CONFIG_S_FAILED 0x80 #define VIRTIO_TRANSPORT_F_START 28 -#define VIRTIO_TRANSPORT_F_END 34 +#define VIRTIO_TRANSPORT_F_END 38 #ifndef VIRTIO_CONFIG_NO_LEGACY #define VIRTIO_F_NOTIFY_ON_EMPTY 24 #define VIRTIO_F_ANY_LAYOUT 27 #endif #define VIRTIO_F_VERSION_1 32 #define VIRTIO_F_IOMMU_PLATFORM 33 +#define VIRTIO_F_SR_IOV 37 #endif diff --git a/libc/kernel/uapi/linux/virtio_gpu.h b/libc/kernel/uapi/linux/virtio_gpu.h index b43671f42..60dbf719d 100644 --- a/libc/kernel/uapi/linux/virtio_gpu.h +++ b/libc/kernel/uapi/linux/virtio_gpu.h @@ -185,6 +185,7 @@ struct virtio_gpu_cmd_submit { __le32 padding; }; #define VIRTIO_GPU_CAPSET_VIRGL 1 +#define VIRTIO_GPU_CAPSET_VIRGL2 2 struct virtio_gpu_get_capset_info { struct virtio_gpu_ctrl_hdr hdr; __le32 capset_index; diff --git a/libc/kernel/uapi/linux/virtio_net.h b/libc/kernel/uapi/linux/virtio_net.h index 329d736bb..07afd06cc 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_STANDBY 62 #define VIRTIO_NET_F_SPEED_DUPLEX 63 #ifndef VIRTIO_NET_NO_LEGACY #define VIRTIO_NET_F_GSO 6 diff --git a/libc/kernel/uapi/linux/vmcore.h b/libc/kernel/uapi/linux/vmcore.h new file mode 100644 index 000000000..3fa7feefc --- /dev/null +++ b/libc/kernel/uapi/linux/vmcore.h @@ -0,0 +1,31 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_VMCORE_H +#define _UAPI_VMCORE_H +#include <linux/types.h> +#define VMCOREDD_NOTE_NAME "LINUX" +#define VMCOREDD_MAX_NAME_BYTES 44 +struct vmcoredd_header { + __u32 n_namesz; + __u32 n_descsz; + __u32 n_type; + __u8 name[8]; + __u8 dump_name[VMCOREDD_MAX_NAME_BYTES]; +}; +#endif diff --git a/libc/kernel/uapi/linux/vsoc_shm.h b/libc/kernel/uapi/linux/vsoc_shm.h new file mode 100644 index 000000000..467b89bba --- /dev/null +++ b/libc/kernel/uapi/linux/vsoc_shm.h @@ -0,0 +1,84 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_VSOC_SHM_H +#define _UAPI_LINUX_VSOC_SHM_H +#include <linux/types.h> +struct fd_scoped_permission { + __u32 begin_offset; + __u32 end_offset; + __u32 owner_offset; + __u32 owned_value; +}; +#define VSOC_REGION_FREE ((__u32) 0) +struct fd_scoped_permission_arg { + struct fd_scoped_permission perm; + __s32 managed_region_fd; +}; +#define VSOC_NODE_FREE ((__u32) 0) +struct vsoc_signal_table_layout { + __u32 num_nodes_lg2; + __u32 futex_uaddr_table_offset; + __u32 interrupt_signalled_offset; +}; +#define VSOC_REGION_WHOLE ((__s32) 0) +#define VSOC_DEVICE_NAME_SZ 16 +struct vsoc_device_region { + __u16 current_version; + __u16 min_compatible_version; + __u32 region_begin_offset; + __u32 region_end_offset; + __u32 offset_of_region_data; + struct vsoc_signal_table_layout guest_to_host_signal_table; + struct vsoc_signal_table_layout host_to_guest_signal_table; + char device_name[VSOC_DEVICE_NAME_SZ]; + __u32 managed_by; +}; +struct vsoc_shm_layout_descriptor { + __u16 major_version; + __u16 minor_version; + __u32 size; + __u32 region_count; + __u32 vsoc_region_desc_offset; +}; +#define CURRENT_VSOC_LAYOUT_MAJOR_VERSION 2 +#define CURRENT_VSOC_LAYOUT_MINOR_VERSION 0 +#define VSOC_CREATE_FD_SCOPED_PERMISSION _IOW(0xF5, 0, struct fd_scoped_permission) +#define VSOC_GET_FD_SCOPED_PERMISSION _IOR(0xF5, 1, struct fd_scoped_permission) +#define VSOC_MAYBE_SEND_INTERRUPT_TO_HOST _IO(0xF5, 2) +#define VSOC_WAIT_FOR_INCOMING_INTERRUPT _IO(0xF5, 3) +#define VSOC_DESCRIBE_REGION _IOR(0xF5, 4, struct vsoc_device_region) +#define VSOC_SELF_INTERRUPT _IO(0xF5, 5) +#define VSOC_SEND_INTERRUPT_TO_HOST _IO(0xF5, 6) +enum wait_types { + VSOC_WAIT_UNDEFINED = 0, + VSOC_WAIT_IF_EQUAL = 1, + VSOC_WAIT_IF_EQUAL_TIMEOUT = 2 +}; +struct vsoc_cond_wait { + __u32 offset; + __u32 value; + __u64 wake_time_sec; + __u32 wake_time_nsec; + __u32 wait_type; + __u32 wakes; + __u32 reserved_1; +}; +#define VSOC_COND_WAIT _IOWR(0xF5, 7, struct vsoc_cond_wait) +#define VSOC_COND_WAKE _IO(0xF5, 8) +#endif diff --git a/libc/kernel/uapi/linux/xfrm.h b/libc/kernel/uapi/linux/xfrm.h index 5ec719372..ea0ef5ee6 100644 --- a/libc/kernel/uapi/linux/xfrm.h +++ b/libc/kernel/uapi/linux/xfrm.h @@ -258,8 +258,11 @@ enum xfrm_attr_type_t { XFRMA_ADDRESS_FILTER, XFRMA_PAD, XFRMA_OFFLOAD_DEV, - XFRMA_OUTPUT_MARK, + XFRMA_SET_MARK, + XFRMA_SET_MARK_MASK, + XFRMA_IF_ID, __XFRMA_MAX +#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK #define XFRMA_MAX (__XFRMA_MAX - 1) }; struct xfrm_mark { diff --git a/libc/kernel/uapi/misc/ocxl.h b/libc/kernel/uapi/misc/ocxl.h index 98d3eacaa..676aaf833 100644 --- a/libc/kernel/uapi/misc/ocxl.h +++ b/libc/kernel/uapi/misc/ocxl.h @@ -50,6 +50,16 @@ struct ocxl_ioctl_metadata { __u64 global_mmio_size; __u64 reserved[13]; }; +struct ocxl_ioctl_p9_wait { + __u16 thread_id; + __u16 reserved1; + __u32 reserved2; + __u64 reserved3[3]; +}; +#define OCXL_IOCTL_FEATURES_FLAGS0_P9_WAIT 0x01 +struct ocxl_ioctl_features { + __u64 flags[4]; +}; struct ocxl_ioctl_irq_fd { __u64 irq_offset; __s32 eventfd; @@ -61,4 +71,6 @@ struct ocxl_ioctl_irq_fd { #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) +#define OCXL_IOCTL_ENABLE_P9_WAIT _IOR(OCXL_MAGIC, 0x15, struct ocxl_ioctl_p9_wait) +#define OCXL_IOCTL_GET_FEATURES _IOR(OCXL_MAGIC, 0x16, struct ocxl_ioctl_features) #endif diff --git a/libc/kernel/uapi/mtd/ubi-user.h b/libc/kernel/uapi/mtd/ubi-user.h index 8f888fec4..84055363c 100644 --- a/libc/kernel/uapi/mtd/ubi-user.h +++ b/libc/kernel/uapi/mtd/ubi-user.h @@ -56,12 +56,16 @@ struct ubi_attach_req { __s16 max_beb_per1024; __s8 padding[10]; }; +enum { + UBI_VOL_SKIP_CRC_CHECK_FLG = 0x1, +}; +#define UBI_VOL_VALID_FLGS (UBI_VOL_SKIP_CRC_CHECK_FLG) struct ubi_mkvol_req { __s32 vol_id; __s32 alignment; __s64 bytes; __s8 vol_type; - __s8 padding1; + __u8 flags; __s16 name_len; __s8 padding2[4]; char name[UBI_MAX_VOLUME_NAME + 1]; diff --git a/libc/kernel/uapi/rdma/cxgb4-abi.h b/libc/kernel/uapi/rdma/cxgb4-abi.h index 188d90108..5433ce697 100644 --- a/libc/kernel/uapi/rdma/cxgb4-abi.h +++ b/libc/kernel/uapi/rdma/cxgb4-abi.h @@ -20,6 +20,13 @@ #define CXGB4_ABI_USER_H #include <linux/types.h> #define C4IW_UVERBS_ABI_VERSION 3 +enum { + C4IW_64B_CQE = (1 << 0) +}; +struct c4iw_create_cq { + __u32 flags; + __u32 reserved; +}; struct c4iw_create_cq_resp { __aligned_u64 key; __aligned_u64 gts_key; @@ -27,10 +34,11 @@ struct c4iw_create_cq_resp { __u32 cqid; __u32 size; __u32 qid_mask; - __u32 reserved; + __u32 flags; }; enum { - C4IW_QPF_ONCHIP = (1 << 0) + C4IW_QPF_ONCHIP = (1 << 0), + C4IW_QPF_WRITE_W_IMM = (1 << 1) }; struct c4iw_create_qp_resp { __aligned_u64 ma_sync_key; @@ -47,6 +55,20 @@ struct c4iw_create_qp_resp { __u32 qid_mask; __u32 flags; }; +struct c4iw_create_srq_resp { + __aligned_u64 srq_key; + __aligned_u64 srq_db_gts_key; + __aligned_u64 srq_memsize; + __u32 srqid; + __u32 srq_size; + __u32 rqt_abs_idx; + __u32 qid_mask; + __u32 flags; + __u32 reserved; +}; +enum { + T4_SRQ_LIMIT_SUPPORT = 1 << 0, +}; struct c4iw_alloc_ucontext_resp { __aligned_u64 status_page_key; __u32 status_page_size; diff --git a/libc/kernel/uapi/rdma/hns-abi.h b/libc/kernel/uapi/rdma/hns-abi.h index 8c66f27e7..23bedf9c9 100644 --- a/libc/kernel/uapi/rdma/hns-abi.h +++ b/libc/kernel/uapi/rdma/hns-abi.h @@ -34,6 +34,7 @@ struct hns_roce_ib_create_qp { __u8 log_sq_stride; __u8 sq_no_prefetch; __u8 reserved[5]; + __aligned_u64 sdb_addr; }; struct hns_roce_ib_create_qp_resp { __aligned_u64 cap_flags; diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h index 4bc9786d7..69ded8e91 100644 --- a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h +++ b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h @@ -38,6 +38,7 @@ enum uverbs_default_objects { UVERBS_OBJECT_WQ, UVERBS_OBJECT_FLOW_ACTION, UVERBS_OBJECT_DM, + UVERBS_OBJECT_COUNTERS, }; enum { UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG, @@ -57,13 +58,16 @@ enum uverbs_attrs_destroy_cq_cmd_attr_ids { UVERBS_ATTR_DESTROY_CQ_RESP, }; enum uverbs_attrs_create_flow_action_esp { - UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE, + UVERBS_ATTR_CREATE_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_modify_flow_action_esp { + UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE = UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE, +}; enum uverbs_attrs_destroy_flow_action_esp { UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE, }; @@ -101,4 +105,20 @@ enum uverbs_attrs_reg_dm_mr_cmd_attr_ids { enum uverbs_methods_mr { UVERBS_METHOD_DM_MR_REG, }; +enum uverbs_attrs_create_counters_cmd_attr_ids { + UVERBS_ATTR_CREATE_COUNTERS_HANDLE, +}; +enum uverbs_attrs_destroy_counters_cmd_attr_ids { + UVERBS_ATTR_DESTROY_COUNTERS_HANDLE, +}; +enum uverbs_attrs_read_counters_cmd_attr_ids { + UVERBS_ATTR_READ_COUNTERS_HANDLE, + UVERBS_ATTR_READ_COUNTERS_BUFF, + UVERBS_ATTR_READ_COUNTERS_FLAGS, +}; +enum uverbs_methods_actions_counters_ops { + UVERBS_METHOD_COUNTERS_CREATE, + UVERBS_METHOD_COUNTERS_DESTROY, + UVERBS_METHOD_COUNTERS_READ, +}; #endif diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h index 261734edb..8bea1cb53 100644 --- a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h +++ b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h @@ -22,6 +22,50 @@ #ifndef RDMA_UAPI_PTR #define RDMA_UAPI_PTR(_type,_name) __aligned_u64 _name #endif +enum ib_uverbs_access_flags { + IB_UVERBS_ACCESS_LOCAL_WRITE = 1 << 0, + IB_UVERBS_ACCESS_REMOTE_WRITE = 1 << 1, + IB_UVERBS_ACCESS_REMOTE_READ = 1 << 2, + IB_UVERBS_ACCESS_REMOTE_ATOMIC = 1 << 3, + IB_UVERBS_ACCESS_MW_BIND = 1 << 4, + IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5, + IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6, + IB_UVERBS_ACCESS_HUGETLB = 1 << 7, +}; +enum ib_uverbs_query_port_cap_flags { + IB_UVERBS_PCF_SM = 1 << 1, + IB_UVERBS_PCF_NOTICE_SUP = 1 << 2, + IB_UVERBS_PCF_TRAP_SUP = 1 << 3, + IB_UVERBS_PCF_OPT_IPD_SUP = 1 << 4, + IB_UVERBS_PCF_AUTO_MIGR_SUP = 1 << 5, + IB_UVERBS_PCF_SL_MAP_SUP = 1 << 6, + IB_UVERBS_PCF_MKEY_NVRAM = 1 << 7, + IB_UVERBS_PCF_PKEY_NVRAM = 1 << 8, + IB_UVERBS_PCF_LED_INFO_SUP = 1 << 9, + IB_UVERBS_PCF_SM_DISABLED = 1 << 10, + IB_UVERBS_PCF_SYS_IMAGE_GUID_SUP = 1 << 11, + IB_UVERBS_PCF_PKEY_SW_EXT_PORT_TRAP_SUP = 1 << 12, + IB_UVERBS_PCF_EXTENDED_SPEEDS_SUP = 1 << 14, + IB_UVERBS_PCF_CM_SUP = 1 << 16, + IB_UVERBS_PCF_SNMP_TUNNEL_SUP = 1 << 17, + IB_UVERBS_PCF_REINIT_SUP = 1 << 18, + IB_UVERBS_PCF_DEVICE_MGMT_SUP = 1 << 19, + IB_UVERBS_PCF_VENDOR_CLASS_SUP = 1 << 20, + IB_UVERBS_PCF_DR_NOTICE_SUP = 1 << 21, + IB_UVERBS_PCF_CAP_MASK_NOTICE_SUP = 1 << 22, + IB_UVERBS_PCF_BOOT_MGMT_SUP = 1 << 23, + IB_UVERBS_PCF_LINK_LATENCY_SUP = 1 << 24, + IB_UVERBS_PCF_CLIENT_REG_SUP = 1 << 25, + IB_UVERBS_PCF_LINK_SPEED_WIDTH_TABLE_SUP = 1 << 27, + IB_UVERBS_PCF_VENDOR_SPECIFIC_MADS_TABLE_SUP = 1 << 28, + IB_UVERBS_PCF_MCAST_PKEY_TRAP_SUPPRESSION_SUP = 1 << 29, + IB_UVERBS_PCF_MCAST_FDB_TOP_SUP = 1 << 30, + IB_UVERBS_PCF_HIERARCHY_INFO_SUP = 1ULL << 31, + IB_UVERBS_PCF_IP_BASED_GIDS = 1 << 26, +}; +enum ib_uverbs_query_port_flags { + IB_UVERBS_QPF_GRH_REQUIRED = 1 << 0, +}; enum ib_uverbs_flow_action_esp_keymat { IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM, }; @@ -65,4 +109,7 @@ struct ib_uverbs_flow_action_esp { __u32 flags; __aligned_u64 hard_limit_pkts; }; +enum ib_uverbs_read_counters_flags { + IB_UVERBS_READ_COUNTERS_PREFER_CACHED = 1 << 0, +}; #endif diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h index 53e47256b..3baf4ed5c 100644 --- a/libc/kernel/uapi/rdma/ib_user_verbs.h +++ b/libc/kernel/uapi/rdma/ib_user_verbs.h @@ -228,7 +228,8 @@ struct ib_uverbs_query_port_resp { __u8 active_speed; __u8 phys_state; __u8 link_layer; - __u8 reserved[2]; + __u8 flags; + __u8 reserved; }; struct ib_uverbs_alloc_pd { __aligned_u64 response; @@ -828,6 +829,18 @@ struct ib_uverbs_flow_spec_action_handle { __u32 handle; __u32 reserved1; }; +struct ib_uverbs_flow_spec_action_count { + 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; }; @@ -859,6 +872,38 @@ struct ib_uverbs_flow_spec_esp { struct ib_uverbs_flow_spec_esp_filter val; struct ib_uverbs_flow_spec_esp_filter mask; }; +struct ib_uverbs_flow_gre_filter { + __be16 c_ks_res0_ver; + __be16 protocol; + __be32 key; +}; +struct ib_uverbs_flow_spec_gre { + union { + struct ib_uverbs_flow_spec_hdr hdr; + struct { + __u32 type; + __u16 size; + __u16 reserved; + }; + }; + struct ib_uverbs_flow_gre_filter val; + struct ib_uverbs_flow_gre_filter mask; +}; +struct ib_uverbs_flow_mpls_filter { + __be32 label; +}; +struct ib_uverbs_flow_spec_mpls { + union { + struct ib_uverbs_flow_spec_hdr hdr; + struct { + __u32 type; + __u16 size; + __u16 reserved; + }; + }; + struct ib_uverbs_flow_mpls_filter val; + struct ib_uverbs_flow_mpls_filter mask; +}; struct ib_uverbs_flow_attr { __u32 type; __u16 size; diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h index 170c0a6ff..50ecd2fed 100644 --- a/libc/kernel/uapi/rdma/mlx5-abi.h +++ b/libc/kernel/uapi/rdma/mlx5-abi.h @@ -20,6 +20,7 @@ #define MLX5_ABI_USER_H #include <linux/types.h> #include <linux/if_ether.h> +#include <rdma/ib_user_ioctl_verbs.h> enum { MLX5_QP_FLAG_SIGNATURE = 1 << 0, MLX5_QP_FLAG_SCATTER_CQE = 1 << 1, @@ -42,6 +43,9 @@ struct mlx5_ib_alloc_ucontext_req { enum mlx5_lib_caps { MLX5_LIB_CAP_4K_UAR = (__u64) 1 << 0, }; +enum mlx5_ib_alloc_uctx_v2_flags { + MLX5_IB_ALLOC_UCTX_DEVX = 1 << 0, +}; struct mlx5_ib_alloc_ucontext_req_v2 { __u32 total_num_bfregs; __u32 num_low_latency_bfregs; @@ -55,6 +59,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 { }; enum mlx5_ib_alloc_ucontext_resp_mask { MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, + MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1, }; enum mlx5_user_cmds_supp_uhw { MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0, @@ -96,7 +101,7 @@ struct mlx5_ib_alloc_ucontext_resp { __u32 log_uar_size; __u32 num_uars_per_page; __u32 num_dyn_bfregs; - __u32 reserved3; + __u32 dump_fill_mkey; }; struct mlx5_ib_alloc_pd_resp { __u32 pdn; @@ -113,7 +118,7 @@ struct mlx5_ib_rss_caps { enum mlx5_ib_cqe_comp_res_format { MLX5_IB_CQE_RES_FORMAT_HASH = 1 << 0, MLX5_IB_CQE_RES_FORMAT_CSUM = 1 << 1, - MLX5_IB_CQE_RES_RESERVED = 1 << 2, + MLX5_IB_CQE_RES_FORMAT_CSUM_STRIDX = 1 << 2, }; struct mlx5_ib_cqe_comp_caps { __u32 max_num; @@ -158,7 +163,9 @@ enum mlx5_ib_query_dev_resp_flags { enum mlx5_ib_tunnel_offloads { MLX5_IB_TUNNELED_OFFLOADS_VXLAN = 1 << 0, MLX5_IB_TUNNELED_OFFLOADS_GRE = 1 << 1, - MLX5_IB_TUNNELED_OFFLOADS_GENEVE = 1 << 2 + MLX5_IB_TUNNELED_OFFLOADS_GENEVE = 1 << 2, + MLX5_IB_TUNNELED_OFFLOADS_MPLS_GRE = 1 << 3, + MLX5_IB_TUNNELED_OFFLOADS_MPLS_UDP = 1 << 4, }; struct mlx5_ib_query_device_resp { __u32 comp_mask; @@ -328,4 +335,18 @@ enum { enum { MLX5_IB_CLOCK_INFO_V1 = 0, }; +struct mlx5_ib_flow_counters_desc { + __u32 description; + __u32 index; +}; +struct mlx5_ib_flow_counters_data { + RDMA_UAPI_PTR(struct mlx5_ib_flow_counters_desc *, counters_data); + __u32 ncounters; + __u32 reserved; +}; +struct mlx5_ib_create_flow { + __u32 ncounters_data; + __u32 reserved; + struct mlx5_ib_flow_counters_data data[]; +}; #endif diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h index 37aebafdf..11ff5760c 100644 --- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h +++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h @@ -18,6 +18,7 @@ ****************************************************************************/ #ifndef MLX5_USER_IOCTL_CMDS_H #define MLX5_USER_IOCTL_CMDS_H +#include <linux/types.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), @@ -26,4 +27,102 @@ 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, }; +enum mlx5_ib_devx_methods { + MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_METHOD_DEVX_QUERY_UAR, + MLX5_IB_METHOD_DEVX_QUERY_EQN, +}; +enum mlx5_ib_devx_other_attrs { + MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT, +}; +enum mlx5_ib_devx_obj_create_attrs { + MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN, + MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, +}; +enum mlx5_ib_devx_query_uar_attrs { + MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX, +}; +enum mlx5_ib_devx_obj_destroy_attrs { + MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), +}; +enum mlx5_ib_devx_obj_modify_attrs { + MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, + MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT, +}; +enum mlx5_ib_devx_obj_query_attrs { + MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN, + MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT, +}; +enum mlx5_ib_devx_query_eqn_attrs { + MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN, +}; +enum mlx5_ib_devx_obj_methods { + MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_METHOD_DEVX_OBJ_DESTROY, + MLX5_IB_METHOD_DEVX_OBJ_MODIFY, + MLX5_IB_METHOD_DEVX_OBJ_QUERY, +}; +enum mlx5_ib_devx_umem_reg_attrs { + MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR, + MLX5_IB_ATTR_DEVX_UMEM_REG_LEN, + MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS, + MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID, +}; +enum mlx5_ib_devx_umem_dereg_attrs { + MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), +}; +enum mlx5_ib_devx_umem_methods { + MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_METHOD_DEVX_UMEM_DEREG, +}; +enum mlx5_ib_objects { + MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_OBJECT_DEVX_OBJ, + MLX5_IB_OBJECT_DEVX_UMEM, + MLX5_IB_OBJECT_FLOW_MATCHER, +}; +enum mlx5_ib_flow_matcher_create_attrs { + MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK, + MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, + MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, +}; +enum mlx5_ib_flow_matcher_destroy_attrs { + MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), +}; +enum mlx5_ib_flow_matcher_methods { + MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, +}; +#define MLX5_IB_DW_MATCH_PARAM 0x80 +struct mlx5_ib_match_params { + __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; +}; +enum mlx5_ib_flow_type { + MLX5_IB_FLOW_TYPE_NORMAL, + MLX5_IB_FLOW_TYPE_SNIFFER, + MLX5_IB_FLOW_TYPE_ALL_DEFAULT, + MLX5_IB_FLOW_TYPE_MC_DEFAULT, +}; +enum mlx5_ib_create_flow_attrs { + MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, + MLX5_IB_ATTR_CREATE_FLOW_DEST_QP, + MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX, + MLX5_IB_ATTR_CREATE_FLOW_MATCHER, +}; +enum mlx5_ib_destoy_flow_attrs { + MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), +}; +enum mlx5_ib_flow_methods { + MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT), + MLX5_IB_METHOD_DESTROY_FLOW, +}; #endif diff --git a/libc/kernel/uapi/rdma/qedr-abi.h b/libc/kernel/uapi/rdma/qedr-abi.h index 8626f8cf4..57ad82790 100644 --- a/libc/kernel/uapi/rdma/qedr-abi.h +++ b/libc/kernel/uapi/rdma/qedr-abi.h @@ -69,4 +69,14 @@ struct qedr_create_qp_uresp { __u32 rq_db2_offset; __u32 reserved; }; +struct qedr_create_srq_ureq { + __aligned_u64 prod_pair_addr; + __aligned_u64 srq_addr; + __aligned_u64 srq_len; +}; +struct qedr_create_srq_uresp { + __u16 srq_id; + __u16 reserved0; + __u32 reserved1; +}; #endif diff --git a/libc/kernel/uapi/rdma/rdma_netlink.h b/libc/kernel/uapi/rdma/rdma_netlink.h index 36c891117..48cbc3d3e 100644 --- a/libc/kernel/uapi/rdma/rdma_netlink.h +++ b/libc/kernel/uapi/rdma/rdma_netlink.h @@ -182,8 +182,16 @@ enum rdma_nldev_command { RDMA_NLDEV_CMD_RES_PD_GET, RDMA_NLDEV_NUM_OPS }; +enum { + RDMA_NLDEV_ATTR_ENTRY_STRLEN = 16, +}; +enum rdma_nldev_print_type { + RDMA_NLDEV_PRINT_TYPE_UNSPEC, + RDMA_NLDEV_PRINT_TYPE_HEX, +}; enum rdma_nldev_attr { RDMA_NLDEV_ATTR_UNSPEC, + RDMA_NLDEV_ATTR_PAD = RDMA_NLDEV_ATTR_UNSPEC, RDMA_NLDEV_ATTR_DEV_INDEX, RDMA_NLDEV_ATTR_DEV_NAME, RDMA_NLDEV_ATTR_PORT_INDEX, @@ -235,6 +243,14 @@ enum rdma_nldev_attr { RDMA_NLDEV_ATTR_RES_UNSAFE_GLOBAL_RKEY, RDMA_NLDEV_ATTR_NDEV_INDEX, RDMA_NLDEV_ATTR_NDEV_NAME, + RDMA_NLDEV_ATTR_DRIVER, + RDMA_NLDEV_ATTR_DRIVER_ENTRY, + RDMA_NLDEV_ATTR_DRIVER_STRING, + RDMA_NLDEV_ATTR_DRIVER_PRINT_TYPE, + RDMA_NLDEV_ATTR_DRIVER_S32, + RDMA_NLDEV_ATTR_DRIVER_U32, + RDMA_NLDEV_ATTR_DRIVER_S64, + RDMA_NLDEV_ATTR_DRIVER_U64, RDMA_NLDEV_ATTR_MAX }; #endif diff --git a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h index 5da791712..7cd6cd0c1 100644 --- a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h +++ b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h @@ -37,7 +37,10 @@ struct ib_uverbs_attr { } enum_data; __u16 reserved; } attr_data; - __aligned_u64 data; + union { + __aligned_u64 data; + __s64 data_s64; + }; }; struct ib_uverbs_ioctl_hdr { __u16 length; diff --git a/libc/kernel/uapi/sound/asoc.h b/libc/kernel/uapi/sound/asoc.h index d0bab8bd4..e46c4b5ec 100644 --- a/libc/kernel/uapi/sound/asoc.h +++ b/libc/kernel/uapi/sound/asoc.h @@ -95,6 +95,11 @@ #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES (1 << 0) #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1) #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2) +#define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED 0 +#define SND_SOC_TPLG_DAI_CLK_GATE_GATED 1 +#define SND_SOC_TPLG_DAI_CLK_GATE_CONT 2 +#define SND_SOC_TPLG_MCLK_CO 0 +#define SND_SOC_TPLG_MCLK_CI 1 #define SND_SOC_DAI_FORMAT_I2S 1 #define SND_SOC_DAI_FORMAT_RIGHT_J 2 #define SND_SOC_DAI_FORMAT_LEFT_J 3 @@ -108,6 +113,10 @@ #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS (1 << 1) #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2) #define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3) +#define SND_SOC_TPLG_BCLK_CM 0 +#define SND_SOC_TPLG_BCLK_CS 1 +#define SND_SOC_TPLG_FSYNC_CM 0 +#define SND_SOC_TPLG_FSYNC_CS 1 struct snd_soc_tplg_hdr { __le32 magic; __le32 abi; @@ -335,4 +344,48 @@ struct snd_soc_tplg_dai { __le32 flags; struct snd_soc_tplg_private priv; } __attribute__((packed)); +struct snd_soc_tplg_manifest_v4 { + __le32 size; + __le32 control_elems; + __le32 widget_elems; + __le32 graph_elems; + __le32 pcm_elems; + __le32 dai_link_elems; + struct snd_soc_tplg_private priv; +} __packed; +struct snd_soc_tplg_stream_caps_v4 { + __le32 size; + char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; + __le64 formats; + __le32 rates; + __le32 rate_min; + __le32 rate_max; + __le32 channels_min; + __le32 channels_max; + __le32 periods_min; + __le32 periods_max; + __le32 period_size_min; + __le32 period_size_max; + __le32 buffer_size_min; + __le32 buffer_size_max; +} __packed; +struct snd_soc_tplg_pcm_v4 { + __le32 size; + char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; + char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; + __le32 pcm_id; + __le32 dai_id; + __le32 playback; + __le32 capture; + __le32 compress; + struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; + __le32 num_streams; + struct snd_soc_tplg_stream_caps_v4 caps[2]; +} __packed; +struct snd_soc_tplg_link_config_v4 { + __le32 size; + __le32 id; + struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; + __le32 num_streams; +} __packed; #endif diff --git a/libc/kernel/uapi/sound/skl-tplg-interface.h b/libc/kernel/uapi/sound/skl-tplg-interface.h new file mode 100644 index 000000000..58e0afa59 --- /dev/null +++ b/libc/kernel/uapi/sound/skl-tplg-interface.h @@ -0,0 +1,183 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 __HDA_TPLG_INTERFACE_H__ +#define __HDA_TPLG_INTERFACE_H__ +#include <linux/types.h> +#define SKL_CONTROL_TYPE_BYTE_TLV 0x100 +#define SKL_CONTROL_TYPE_MIC_SELECT 0x102 +#define HDA_SST_CFG_MAX 900 +#define MAX_IN_QUEUE 8 +#define MAX_OUT_QUEUE 8 +#define SKL_UUID_STR_SZ 40 +enum skl_event_types { + SKL_EVENT_NONE = 0, + SKL_MIXER_EVENT, + SKL_MUX_EVENT, + SKL_VMIXER_EVENT, + SKL_PGA_EVENT +}; +enum skl_ch_cfg { + SKL_CH_CFG_MONO = 0, + SKL_CH_CFG_STEREO = 1, + SKL_CH_CFG_2_1 = 2, + SKL_CH_CFG_3_0 = 3, + SKL_CH_CFG_3_1 = 4, + SKL_CH_CFG_QUATRO = 5, + SKL_CH_CFG_4_0 = 6, + SKL_CH_CFG_5_0 = 7, + SKL_CH_CFG_5_1 = 8, + SKL_CH_CFG_DUAL_MONO = 9, + SKL_CH_CFG_I2S_DUAL_STEREO_0 = 10, + SKL_CH_CFG_I2S_DUAL_STEREO_1 = 11, + SKL_CH_CFG_4_CHANNEL = 12, + SKL_CH_CFG_INVALID +}; +enum skl_module_type { + SKL_MODULE_TYPE_MIXER = 0, + SKL_MODULE_TYPE_COPIER, + SKL_MODULE_TYPE_UPDWMIX, + SKL_MODULE_TYPE_SRCINT, + SKL_MODULE_TYPE_ALGO, + SKL_MODULE_TYPE_BASE_OUTFMT, + SKL_MODULE_TYPE_KPB, + SKL_MODULE_TYPE_MIC_SELECT, +}; +enum skl_core_affinity { + SKL_AFFINITY_CORE_0 = 0, + SKL_AFFINITY_CORE_1, + SKL_AFFINITY_CORE_MAX +}; +enum skl_pipe_conn_type { + SKL_PIPE_CONN_TYPE_NONE = 0, + SKL_PIPE_CONN_TYPE_FE, + SKL_PIPE_CONN_TYPE_BE +}; +enum skl_hw_conn_type { + SKL_CONN_NONE = 0, + SKL_CONN_SOURCE = 1, + SKL_CONN_SINK = 2 +}; +enum skl_dev_type { + SKL_DEVICE_BT = 0x0, + SKL_DEVICE_DMIC = 0x1, + SKL_DEVICE_I2S = 0x2, + SKL_DEVICE_SLIMBUS = 0x3, + SKL_DEVICE_HDALINK = 0x4, + SKL_DEVICE_HDAHOST = 0x5, + SKL_DEVICE_NONE +}; +enum skl_interleaving { + SKL_INTERLEAVING_PER_CHANNEL = 0, + SKL_INTERLEAVING_PER_SAMPLE = 1, +}; +enum skl_sample_type { + SKL_SAMPLE_TYPE_INT_MSB = 0, + SKL_SAMPLE_TYPE_INT_LSB = 1, + SKL_SAMPLE_TYPE_INT_SIGNED = 2, + SKL_SAMPLE_TYPE_INT_UNSIGNED = 3, + SKL_SAMPLE_TYPE_FLOAT = 4 +}; +enum module_pin_type { + SKL_PIN_TYPE_HOMOGENEOUS, + SKL_PIN_TYPE_HETEROGENEOUS, +}; +enum skl_module_param_type { + SKL_PARAM_DEFAULT = 0, + SKL_PARAM_INIT, + SKL_PARAM_SET, + SKL_PARAM_BIND +}; +struct skl_dfw_algo_data { + __u32 set_params : 2; + __u32 rsvd : 30; + __u32 param_id; + __u32 max; + char params[0]; +} __packed; +enum skl_tkn_dir { + SKL_DIR_IN, + SKL_DIR_OUT +}; +enum skl_tuple_type { + SKL_TYPE_TUPLE, + SKL_TYPE_DATA +}; +struct skl_dfw_v4_module_pin { + __u16 module_id; + __u16 instance_id; +} __packed; +struct skl_dfw_v4_module_fmt { + __u32 channels; + __u32 freq; + __u32 bit_depth; + __u32 valid_bit_depth; + __u32 ch_cfg; + __u32 interleaving_style; + __u32 sample_type; + __u32 ch_map; +} __packed; +struct skl_dfw_v4_module_caps { + __u32 set_params : 2; + __u32 rsvd : 30; + __u32 param_id; + __u32 caps_size; + __u32 caps[HDA_SST_CFG_MAX]; +} __packed; +struct skl_dfw_v4_pipe { + __u8 pipe_id; + __u8 pipe_priority; + __u16 conn_type : 4; + __u16 rsvd : 4; + __u16 memory_pages : 8; +} __packed; +struct skl_dfw_v4_module { + char uuid[SKL_UUID_STR_SZ]; + __u16 module_id; + __u16 instance_id; + __u32 max_mcps; + __u32 mem_pages; + __u32 obs; + __u32 ibs; + __u32 vbus_id; + __u32 max_in_queue : 8; + __u32 max_out_queue : 8; + __u32 time_slot : 8; + __u32 core_id : 4; + __u32 rsvd1 : 4; + __u32 module_type : 8; + __u32 conn_type : 4; + __u32 dev_type : 4; + __u32 hw_conn_type : 4; + __u32 rsvd2 : 12; + __u32 params_fixup : 8; + __u32 converter : 8; + __u32 input_pin_type : 1; + __u32 output_pin_type : 1; + __u32 is_dynamic_in_pin : 1; + __u32 is_dynamic_out_pin : 1; + __u32 is_loadable : 1; + __u32 rsvd3 : 11; + struct skl_dfw_v4_pipe pipe; + struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE]; + struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE]; + struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE]; + struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE]; + struct skl_dfw_v4_module_caps caps; +} __packed; +#endif diff --git a/libc/kernel/uapi/sound/tlv.h b/libc/kernel/uapi/sound/tlv.h index 9a5c52156..0822429ec 100644 --- a/libc/kernel/uapi/sound/tlv.h +++ b/libc/kernel/uapi/sound/tlv.h @@ -29,18 +29,26 @@ #define SNDRV_CTL_TLVT_CHMAP_PAIRED 0x103 #define SNDRV_CTL_TLVD_ITEM(type,...) (type), SNDRV_CTL_TLVD_LENGTH(__VA_ARGS__), __VA_ARGS__ #define SNDRV_CTL_TLVD_LENGTH(...) ((unsigned int) sizeof((const unsigned int[]) { __VA_ARGS__ })) +#define SNDRV_CTL_TLVO_TYPE 0 +#define SNDRV_CTL_TLVO_LEN 1 #define SNDRV_CTL_TLVD_CONTAINER_ITEM(...) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__) #define SNDRV_CTL_TLVD_DECLARE_CONTAINER(name,...) unsigned int name[] = { SNDRV_CTL_TLVD_CONTAINER_ITEM(__VA_ARGS__) } #define SNDRV_CTL_TLVD_DB_SCALE_MASK 0xffff #define SNDRV_CTL_TLVD_DB_SCALE_MUTE 0x10000 #define SNDRV_CTL_TLVD_DB_SCALE_ITEM(min,step,mute) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_SCALE, (min), ((step) & SNDRV_CTL_TLVD_DB_SCALE_MASK) | ((mute) ? SNDRV_CTL_TLVD_DB_SCALE_MUTE : 0)) #define SNDRV_CTL_TLVD_DECLARE_DB_SCALE(name,min,step,mute) unsigned int name[] = { SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) } +#define SNDRV_CTL_TLVO_DB_SCALE_MIN 2 +#define SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP 3 #define SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB,max_dB) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB)) #define SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB,max_dB) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB)) #define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(name,min_dB,max_dB) unsigned int name[] = { SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) } #define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX_MUTE(name,min_dB,max_dB) unsigned int name[] = { SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) } +#define SNDRV_CTL_TLVO_DB_MINMAX_MIN 2 +#define SNDRV_CTL_TLVO_DB_MINMAX_MAX 3 #define SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB,max_dB) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB)) #define SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(name,min_dB,max_dB) unsigned int name[] = { SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) } +#define SNDRV_CTL_TLVO_DB_LINEAR_MIN 2 +#define SNDRV_CTL_TLVO_DB_LINEAR_MAX 3 #define SNDRV_CTL_TLVD_DB_RANGE_ITEM(...) SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__) #define SNDRV_CTL_TLVD_DECLARE_DB_RANGE(name,...) unsigned int name[] = { SNDRV_CTL_TLVD_DB_RANGE_ITEM(__VA_ARGS__) } #define SNDRV_CTL_TLVD_DB_GAIN_MUTE - 9999999 diff --git a/libc/kernel/uapi/xen/gntdev.h b/libc/kernel/uapi/xen/gntdev.h index 44b5e8c26..1e78ac376 100644 --- a/libc/kernel/uapi/xen/gntdev.h +++ b/libc/kernel/uapi/xen/gntdev.h @@ -73,4 +73,32 @@ struct ioctl_gntdev_grant_copy { }; #define UNMAP_NOTIFY_CLEAR_BYTE 0x1 #define UNMAP_NOTIFY_SEND_EVENT 0x2 +#define GNTDEV_DMA_FLAG_WC (1 << 0) +#define GNTDEV_DMA_FLAG_COHERENT (1 << 1) +#define IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS _IOC(_IOC_NONE, 'G', 9, sizeof(struct ioctl_gntdev_dmabuf_exp_from_refs)) +struct ioctl_gntdev_dmabuf_exp_from_refs { + __u32 flags; + __u32 count; + __u32 fd; + __u32 domid; + __u32 refs[1]; +}; +#define IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED _IOC(_IOC_NONE, 'G', 10, sizeof(struct ioctl_gntdev_dmabuf_exp_wait_released)) +struct ioctl_gntdev_dmabuf_exp_wait_released { + __u32 fd; + __u32 wait_to_ms; +}; +#define IOCTL_GNTDEV_DMABUF_IMP_TO_REFS _IOC(_IOC_NONE, 'G', 11, sizeof(struct ioctl_gntdev_dmabuf_imp_to_refs)) +struct ioctl_gntdev_dmabuf_imp_to_refs { + __u32 fd; + __u32 count; + __u32 domid; + __u32 reserved; + __u32 refs[1]; +}; +#define IOCTL_GNTDEV_DMABUF_IMP_RELEASE _IOC(_IOC_NONE, 'G', 12, sizeof(struct ioctl_gntdev_dmabuf_imp_release)) +struct ioctl_gntdev_dmabuf_imp_release { + __u32 fd; + __u32 reserved; +}; #endif diff --git a/libc/kernel/uapi/xen/privcmd.h b/libc/kernel/uapi/xen/privcmd.h index 210a75ea4..145446b4a 100644 --- a/libc/kernel/uapi/xen/privcmd.h +++ b/libc/kernel/uapi/xen/privcmd.h @@ -59,10 +59,19 @@ struct privcmd_dm_op { __u16 num; const struct privcmd_dm_op_buf __user * ubufs; }; +struct privcmd_mmap_resource { + domid_t dom; + __u32 type; + __u32 id; + __u32 idx; + __u64 num; + __u64 addr; +}; #define IOCTL_PRIVCMD_HYPERCALL _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall)) #define IOCTL_PRIVCMD_MMAP _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap)) #define IOCTL_PRIVCMD_MMAPBATCH _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch)) #define IOCTL_PRIVCMD_MMAPBATCH_V2 _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2)) #define IOCTL_PRIVCMD_DM_OP _IOC(_IOC_NONE, 'P', 5, sizeof(struct privcmd_dm_op)) #define IOCTL_PRIVCMD_RESTRICT _IOC(_IOC_NONE, 'P', 6, sizeof(domid_t)) +#define IOCTL_PRIVCMD_MMAP_RESOURCE _IOC(_IOC_NONE, 'P', 7, sizeof(struct privcmd_mmap_resource)) #endif |