diff options
author | Christopher Ferris <cferris@google.com> | 2018-02-02 16:56:25 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-02-02 16:56:25 +0000 |
commit | f20bd47532c66bc89f1fa44d201e580b090c238c (patch) | |
tree | 052eccdd8608f052f744f4e39872ce90455fb24b | |
parent | 78d8109f9db8c3006488a656e923d1bc9d65aa26 (diff) | |
parent | 86a7806c9ede898e7f3920bf096b8b8e6cbd6f10 (diff) |
Merge "Update to v4.15 kernel headers."
am: 86a7806c9e
Change-Id: Ib854e86dbc09a5572ae437fc70976650b239f657
79 files changed, 1047 insertions, 153 deletions
diff --git a/libc/kernel/android/scsi/scsi/scsi_proto.h b/libc/kernel/android/scsi/scsi/scsi_proto.h index 7f3abd92e..1b56ecb70 100644 --- a/libc/kernel/android/scsi/scsi/scsi_proto.h +++ b/libc/kernel/android/scsi/scsi/scsi_proto.h @@ -176,17 +176,32 @@ #define SCSI_ACCESS_STATE_MASK 0x0f #define SCSI_ACCESS_STATE_PREFERRED 0x80 enum zbc_zone_reporting_options { - ZBC_ZONE_REPORTING_OPTION_ALL = 0, - ZBC_ZONE_REPORTING_OPTION_EMPTY, - ZBC_ZONE_REPORTING_OPTION_IMPLICIT_OPEN, - ZBC_ZONE_REPORTING_OPTION_EXPLICIT_OPEN, - ZBC_ZONE_REPORTING_OPTION_CLOSED, - ZBC_ZONE_REPORTING_OPTION_FULL, - ZBC_ZONE_REPORTING_OPTION_READONLY, - ZBC_ZONE_REPORTING_OPTION_OFFLINE, + ZBC_ZONE_REPORTING_OPTION_ALL = 0x00, + ZBC_ZONE_REPORTING_OPTION_EMPTY = 0x01, + ZBC_ZONE_REPORTING_OPTION_IMPLICIT_OPEN = 0x02, + ZBC_ZONE_REPORTING_OPTION_EXPLICIT_OPEN = 0x03, + ZBC_ZONE_REPORTING_OPTION_CLOSED = 0x04, + ZBC_ZONE_REPORTING_OPTION_FULL = 0x05, + ZBC_ZONE_REPORTING_OPTION_READONLY = 0x06, + ZBC_ZONE_REPORTING_OPTION_OFFLINE = 0x07, ZBC_ZONE_REPORTING_OPTION_NEED_RESET_WP = 0x10, - ZBC_ZONE_REPORTING_OPTION_NON_SEQWRITE, + ZBC_ZONE_REPORTING_OPTION_NON_SEQWRITE = 0x11, ZBC_ZONE_REPORTING_OPTION_NON_WP = 0x3f, }; #define ZBC_REPORT_ZONE_PARTIAL 0x80 +enum zbc_zone_type { + ZBC_ZONE_TYPE_CONV = 0x1, + ZBC_ZONE_TYPE_SEQWRITE_REQ = 0x2, + ZBC_ZONE_TYPE_SEQWRITE_PREF = 0x3, +}; +enum zbc_zone_cond { + ZBC_ZONE_COND_NO_WP = 0x0, + ZBC_ZONE_COND_EMPTY = 0x1, + ZBC_ZONE_COND_IMP_OPEN = 0x2, + ZBC_ZONE_COND_EXP_OPEN = 0x3, + ZBC_ZONE_COND_CLOSED = 0x4, + ZBC_ZONE_COND_READONLY = 0xd, + ZBC_ZONE_COND_FULL = 0xe, + ZBC_ZONE_COND_OFFLINE = 0xf, +}; #endif diff --git a/libc/kernel/android/uapi/linux/compiler_types.h b/libc/kernel/android/uapi/linux/compiler_types.h new file mode 100644 index 000000000..94f4fbe55 --- /dev/null +++ b/libc/kernel/android/uapi/linux/compiler_types.h @@ -0,0 +1,5 @@ +/* + * The compiler.h file has been split into compiler.h and compiler_types.h. + * However, to compile bionic we only need the compiler.h. + */ +#include <linux/compiler.h> diff --git a/libc/kernel/uapi/asm-arm/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-arm/asm/bpf_perf_event.h new file mode 100644 index 000000000..fa7bc4855 --- /dev/null +++ b/libc/kernel/uapi/asm-arm/asm/bpf_perf_event.h @@ -0,0 +1,19 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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! + *** + **************************************************************************** + ****************************************************************************/ +#include <asm-generic/bpf_perf_event.h> diff --git a/libc/kernel/uapi/asm-arm/asm/kvm.h b/libc/kernel/uapi/asm-arm/asm/kvm.h index 2332ae2ea..448a773c7 100644 --- a/libc/kernel/uapi/asm-arm/asm/kvm.h +++ b/libc/kernel/uapi/asm-arm/asm/kvm.h @@ -106,6 +106,9 @@ struct kvm_arch_memory_slot { #define ARM_CP15_REG32(...) (__ARM_CP15_REG(__VA_ARGS__) | KVM_REG_SIZE_U32) #define __ARM_CP15_REG64(op1,crm) (__ARM_CP15_REG(op1, 0, crm, 0) | KVM_REG_SIZE_U64) #define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__) +#define KVM_REG_ARM_PTIMER_CTL ARM_CP15_REG32(0, 14, 2, 1) +#define KVM_REG_ARM_PTIMER_CNT ARM_CP15_REG64(0, 14) +#define KVM_REG_ARM_PTIMER_CVAL ARM_CP15_REG64(2, 14) #define KVM_REG_ARM_TIMER_CTL ARM_CP15_REG32(0, 14, 3, 1) #define KVM_REG_ARM_TIMER_CNT ARM_CP15_REG64(1, 14) #define KVM_REG_ARM_TIMER_CVAL ARM_CP15_REG64(3, 14) @@ -157,6 +160,7 @@ struct kvm_arch_memory_slot { #define KVM_DEV_ARM_ITS_SAVE_TABLES 1 #define KVM_DEV_ARM_ITS_RESTORE_TABLES 2 #define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3 +#define KVM_DEV_ARM_ITS_CTRL_RESET 4 #define KVM_ARM_IRQ_TYPE_SHIFT 24 #define KVM_ARM_IRQ_TYPE_MASK 0xff #define KVM_ARM_IRQ_VCPU_SHIFT 16 diff --git a/libc/kernel/uapi/asm-arm/asm/ptrace.h b/libc/kernel/uapi/asm-arm/asm/ptrace.h index dcc382646..b0291dcaf 100644 --- a/libc/kernel/uapi/asm-arm/asm/ptrace.h +++ b/libc/kernel/uapi/asm-arm/asm/ptrace.h @@ -34,6 +34,9 @@ #define PTRACE_SETVFPREGS 28 #define PTRACE_GETHBPREGS 29 #define PTRACE_SETHBPREGS 30 +#define PTRACE_GETFDPIC 31 +#define PTRACE_GETFDPIC_EXEC 0 +#define PTRACE_GETFDPIC_INTERP 1 #define USR26_MODE 0x00000000 #define FIQ26_MODE 0x00000001 #define IRQ26_MODE 0x00000002 @@ -42,6 +45,7 @@ #define SVC_MODE 0x00000013 #define FIQ_MODE 0x00000011 #define IRQ_MODE 0x00000012 +#define MON_MODE 0x00000016 #define ABT_MODE 0x00000017 #define HYP_MODE 0x0000001a #define UND_MODE 0x0000001b diff --git a/libc/kernel/uapi/asm-arm/asm/unistd.h b/libc/kernel/uapi/asm-arm/asm/unistd.h index d14fd7384..f4b1f3a4a 100644 --- a/libc/kernel/uapi/asm-arm/asm/unistd.h +++ b/libc/kernel/uapi/asm-arm/asm/unistd.h @@ -29,4 +29,5 @@ #define __ARM_NR_usr26 (__ARM_NR_BASE + 3) #define __ARM_NR_usr32 (__ARM_NR_BASE + 4) #define __ARM_NR_set_tls (__ARM_NR_BASE + 5) +#define __ARM_NR_get_tls (__ARM_NR_BASE + 6) #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-arm64/asm/bpf_perf_event.h new file mode 100644 index 000000000..cad04bf3c --- /dev/null +++ b/libc/kernel/uapi/asm-arm64/asm/bpf_perf_event.h @@ -0,0 +1,23 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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__ASM_BPF_PERF_EVENT_H__ +#define _UAPI__ASM_BPF_PERF_EVENT_H__ +#include <asm/ptrace.h> +typedef struct user_pt_regs bpf_user_pt_regs_t; +#endif diff --git a/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/libc/kernel/uapi/asm-arm64/asm/hwcap.h index 60b83057e..4e95b95d0 100644 --- a/libc/kernel/uapi/asm-arm64/asm/hwcap.h +++ b/libc/kernel/uapi/asm-arm64/asm/hwcap.h @@ -35,4 +35,10 @@ #define HWCAP_FCMA (1 << 14) #define HWCAP_LRCPC (1 << 15) #define HWCAP_DCPOP (1 << 16) +#define HWCAP_SHA3 (1 << 17) +#define HWCAP_SM3 (1 << 18) +#define HWCAP_SM4 (1 << 19) +#define HWCAP_ASIMDDP (1 << 20) +#define HWCAP_SHA512 (1 << 21) +#define HWCAP_SVE (1 << 22) #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/kvm.h b/libc/kernel/uapi/asm-arm64/asm/kvm.h index a68a8a2d7..c4178a110 100644 --- a/libc/kernel/uapi/asm-arm64/asm/kvm.h +++ b/libc/kernel/uapi/asm-arm64/asm/kvm.h @@ -117,6 +117,9 @@ struct kvm_arch_memory_slot { #define ARM64_SYS_REG_SHIFT_MASK(x,n) (((x) << KVM_REG_ARM64_SYSREG_ ##n ##_SHIFT) & KVM_REG_ARM64_SYSREG_ ##n ##_MASK) #define __ARM64_SYS_REG(op0,op1,crn,crm,op2) (KVM_REG_ARM64 | KVM_REG_ARM64_SYSREG | ARM64_SYS_REG_SHIFT_MASK(op0, OP0) | ARM64_SYS_REG_SHIFT_MASK(op1, OP1) | ARM64_SYS_REG_SHIFT_MASK(crn, CRN) | ARM64_SYS_REG_SHIFT_MASK(crm, CRM) | ARM64_SYS_REG_SHIFT_MASK(op2, OP2)) #define ARM64_SYS_REG(...) (__ARM64_SYS_REG(__VA_ARGS__) | KVM_REG_SIZE_U64) +#define KVM_REG_ARM_PTIMER_CTL ARM64_SYS_REG(3, 3, 14, 2, 1) +#define KVM_REG_ARM_PTIMER_CVAL ARM64_SYS_REG(3, 3, 14, 2, 2) +#define KVM_REG_ARM_PTIMER_CNT ARM64_SYS_REG(3, 3, 14, 0, 1) #define KVM_REG_ARM_TIMER_CTL ARM64_SYS_REG(3, 3, 14, 3, 1) #define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2) #define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2) @@ -144,6 +147,7 @@ struct kvm_arch_memory_slot { #define KVM_DEV_ARM_ITS_SAVE_TABLES 1 #define KVM_DEV_ARM_ITS_RESTORE_TABLES 2 #define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3 +#define KVM_DEV_ARM_ITS_CTRL_RESET 4 #define KVM_ARM_VCPU_PMU_V3_CTRL 0 #define KVM_ARM_VCPU_PMU_V3_IRQ 0 #define KVM_ARM_VCPU_PMU_V3_INIT 1 diff --git a/libc/kernel/uapi/asm-arm64/asm/ptrace.h b/libc/kernel/uapi/asm-arm64/asm/ptrace.h index 0eccf79c5..4e6c7558b 100644 --- a/libc/kernel/uapi/asm-arm64/asm/ptrace.h +++ b/libc/kernel/uapi/asm-arm64/asm/ptrace.h @@ -20,6 +20,7 @@ #define _UAPI__ASM_PTRACE_H #include <linux/types.h> #include <asm/hwcap.h> +#include <asm/sigcontext.h> #define PSR_MODE_EL0t 0x00000000 #define PSR_MODE_EL1t 0x00000004 #define PSR_MODE_EL1h 0x00000005 @@ -35,7 +36,6 @@ #define PSR_D_BIT 0x00000200 #define PSR_PAN_BIT 0x00400000 #define PSR_UAO_BIT 0x00800000 -#define PSR_Q_BIT 0x08000000 #define PSR_V_BIT 0x10000000 #define PSR_C_BIT 0x20000000 #define PSR_Z_BIT 0x40000000 @@ -45,6 +45,7 @@ #define PSR_x 0x0000ff00 #define PSR_c 0x000000ff #ifndef __ASSEMBLY__ +#include <linux/prctl.h> struct user_pt_regs { __u64 regs[31]; __u64 sp; @@ -66,5 +67,39 @@ struct user_hwdebug_state { __u32 pad; } dbg_regs[16]; }; +struct user_sve_header { + __u32 size; + __u32 max_size; + __u16 vl; + __u16 max_vl; + __u16 flags; + __u16 __reserved; +}; +#define SVE_PT_REGS_MASK (1 << 0) +#define SVE_PT_REGS_FPSIMD 0 +#define SVE_PT_REGS_SVE SVE_PT_REGS_MASK +#define SVE_PT_VL_INHERIT (PR_SVE_VL_INHERIT >> 16) +#define SVE_PT_VL_ONEXEC (PR_SVE_SET_VL_ONEXEC >> 16) +#define SVE_PT_REGS_OFFSET ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1)) / SVE_VQ_BYTES * SVE_VQ_BYTES) +#define SVE_PT_FPSIMD_OFFSET SVE_PT_REGS_OFFSET +#define SVE_PT_FPSIMD_SIZE(vq,flags) (sizeof(struct user_fpsimd_state)) +#define SVE_PT_SVE_ZREG_SIZE(vq) SVE_SIG_ZREG_SIZE(vq) +#define SVE_PT_SVE_PREG_SIZE(vq) SVE_SIG_PREG_SIZE(vq) +#define SVE_PT_SVE_FFR_SIZE(vq) SVE_SIG_FFR_SIZE(vq) +#define SVE_PT_SVE_FPSR_SIZE sizeof(__u32) +#define SVE_PT_SVE_FPCR_SIZE sizeof(__u32) +#define __SVE_SIG_TO_PT(offset) ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET) +#define SVE_PT_SVE_OFFSET SVE_PT_REGS_OFFSET +#define SVE_PT_SVE_ZREGS_OFFSET __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET) +#define SVE_PT_SVE_ZREG_OFFSET(vq,n) __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n)) +#define SVE_PT_SVE_ZREGS_SIZE(vq) (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET) +#define SVE_PT_SVE_PREGS_OFFSET(vq) __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq)) +#define SVE_PT_SVE_PREG_OFFSET(vq,n) __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n)) +#define SVE_PT_SVE_PREGS_SIZE(vq) (SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_PT_SVE_PREGS_OFFSET(vq)) +#define SVE_PT_SVE_FFR_OFFSET(vq) __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq)) +#define SVE_PT_SVE_FPSR_OFFSET(vq) ((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) + (SVE_VQ_BYTES - 1)) / SVE_VQ_BYTES * SVE_VQ_BYTES) +#define SVE_PT_SVE_FPCR_OFFSET(vq) (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE) +#define SVE_PT_SVE_SIZE(vq,flags) ((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE - SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1)) / SVE_VQ_BYTES * SVE_VQ_BYTES) +#define SVE_PT_SIZE(vq,flags) (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ? SVE_PT_SVE_OFFSET + SVE_PT_SVE_SIZE(vq, flags) : SVE_PT_FPSIMD_OFFSET + SVE_PT_FPSIMD_SIZE(vq, flags)) #endif #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/sigcontext.h b/libc/kernel/uapi/asm-arm64/asm/sigcontext.h index be2464eae..b0617de2b 100644 --- a/libc/kernel/uapi/asm-arm64/asm/sigcontext.h +++ b/libc/kernel/uapi/asm-arm64/asm/sigcontext.h @@ -18,6 +18,7 @@ ****************************************************************************/ #ifndef _UAPI__ASM_SIGCONTEXT_H #define _UAPI__ASM_SIGCONTEXT_H +#ifndef __ASSEMBLY__ #include <linux/types.h> struct sigcontext { __u64 fault_address; @@ -50,4 +51,34 @@ struct extra_context { __u32 size; __u32 __reserved[3]; }; +#define SVE_MAGIC 0x53564501 +struct sve_context { + struct _aarch64_ctx head; + __u16 vl; + __u16 __reserved[3]; +}; +#endif +#define SVE_VQ_BYTES 16 +#define SVE_VQ_MIN 1 +#define SVE_VQ_MAX 512 +#define SVE_VL_MIN (SVE_VQ_MIN * SVE_VQ_BYTES) +#define SVE_VL_MAX (SVE_VQ_MAX * SVE_VQ_BYTES) +#define SVE_NUM_ZREGS 32 +#define SVE_NUM_PREGS 16 +#define sve_vl_valid(vl) ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX) +#define sve_vq_from_vl(vl) ((vl) / SVE_VQ_BYTES) +#define sve_vl_from_vq(vq) ((vq) * SVE_VQ_BYTES) +#define SVE_SIG_ZREG_SIZE(vq) ((__u32) (vq) * SVE_VQ_BYTES) +#define SVE_SIG_PREG_SIZE(vq) ((__u32) (vq) * (SVE_VQ_BYTES / 8)) +#define SVE_SIG_FFR_SIZE(vq) SVE_SIG_PREG_SIZE(vq) +#define SVE_SIG_REGS_OFFSET ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1)) / SVE_VQ_BYTES * SVE_VQ_BYTES) +#define SVE_SIG_ZREGS_OFFSET SVE_SIG_REGS_OFFSET +#define SVE_SIG_ZREG_OFFSET(vq,n) (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n)) +#define SVE_SIG_ZREGS_SIZE(vq) (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET) +#define SVE_SIG_PREGS_OFFSET(vq) (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq)) +#define SVE_SIG_PREG_OFFSET(vq,n) (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n)) +#define SVE_SIG_PREGS_SIZE(vq) (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq)) +#define SVE_SIG_FFR_OFFSET(vq) (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq)) +#define SVE_SIG_REGS_SIZE(vq) (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET) +#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq)) #endif diff --git a/libc/kernel/uapi/asm-generic/bpf_perf_event.h b/libc/kernel/uapi/asm-generic/bpf_perf_event.h new file mode 100644 index 000000000..794927be1 --- /dev/null +++ b/libc/kernel/uapi/asm-generic/bpf_perf_event.h @@ -0,0 +1,23 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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__ASM_GENERIC_BPF_PERF_EVENT_H__ +#define _UAPI__ASM_GENERIC_BPF_PERF_EVENT_H__ +#include <linux/ptrace.h> +typedef struct pt_regs bpf_user_pt_regs_t; +#endif diff --git a/libc/kernel/uapi/asm-generic/mman-common.h b/libc/kernel/uapi/asm-generic/mman-common.h index a15624a3a..e752bb650 100644 --- a/libc/kernel/uapi/asm-generic/mman-common.h +++ b/libc/kernel/uapi/asm-generic/mman-common.h @@ -27,6 +27,7 @@ #define PROT_GROWSUP 0x02000000 #define MAP_SHARED 0x01 #define MAP_PRIVATE 0x02 +#define MAP_SHARED_VALIDATE 0x03 #define MAP_TYPE 0x0f #define MAP_FIXED 0x10 #define MAP_ANONYMOUS 0x20 diff --git a/libc/kernel/uapi/asm-generic/mman.h b/libc/kernel/uapi/asm-generic/mman.h index 045223734..84caab734 100644 --- a/libc/kernel/uapi/asm-generic/mman.h +++ b/libc/kernel/uapi/asm-generic/mman.h @@ -28,6 +28,7 @@ #define MAP_NONBLOCK 0x10000 #define MAP_STACK 0x20000 #define MAP_HUGETLB 0x40000 +#define MAP_SYNC 0x80000 #define MCL_CURRENT 1 #define MCL_FUTURE 2 #define MCL_ONFAULT 4 diff --git a/libc/kernel/uapi/asm-mips/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-mips/asm/bpf_perf_event.h new file mode 100644 index 000000000..fa7bc4855 --- /dev/null +++ b/libc/kernel/uapi/asm-mips/asm/bpf_perf_event.h @@ -0,0 +1,19 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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! + *** + **************************************************************************** + ****************************************************************************/ +#include <asm-generic/bpf_perf_event.h> diff --git a/libc/kernel/uapi/asm-mips/asm/mman.h b/libc/kernel/uapi/asm-mips/asm/mman.h index b9768855d..5e8e28a2c 100644 --- a/libc/kernel/uapi/asm-mips/asm/mman.h +++ b/libc/kernel/uapi/asm-mips/asm/mman.h @@ -27,6 +27,7 @@ #define PROT_GROWSUP 0x02000000 #define MAP_SHARED 0x001 #define MAP_PRIVATE 0x002 +#define MAP_SHARED_VALIDATE 0x003 #define MAP_TYPE 0x00f #define MAP_FIXED 0x010 #define MAP_RENAME 0x020 diff --git a/libc/kernel/uapi/asm-x86/asm/bpf_perf_event.h b/libc/kernel/uapi/asm-x86/asm/bpf_perf_event.h new file mode 100644 index 000000000..fa7bc4855 --- /dev/null +++ b/libc/kernel/uapi/asm-x86/asm/bpf_perf_event.h @@ -0,0 +1,19 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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! + *** + **************************************************************************** + ****************************************************************************/ +#include <asm-generic/bpf_perf_event.h> diff --git a/libc/kernel/uapi/asm-x86/asm/processor-flags.h b/libc/kernel/uapi/asm-x86/asm/processor-flags.h index f0f8dd22c..85f9d7e21 100644 --- a/libc/kernel/uapi/asm-x86/asm/processor-flags.h +++ b/libc/kernel/uapi/asm-x86/asm/processor-flags.h @@ -81,7 +81,10 @@ #define X86_CR3_PWT _BITUL(X86_CR3_PWT_BIT) #define X86_CR3_PCD_BIT 4 #define X86_CR3_PCD _BITUL(X86_CR3_PCD_BIT) -#define X86_CR3_PCID_MASK _AC(0x00000fff, UL) +#define X86_CR3_PCID_BITS 12 +#define X86_CR3_PCID_MASK (_AC((1UL << X86_CR3_PCID_BITS) - 1, UL)) +#define X86_CR3_PCID_NOFLUSH_BIT 63 +#define X86_CR3_PCID_NOFLUSH _BITULL(X86_CR3_PCID_NOFLUSH_BIT) #define X86_CR4_VME_BIT 0 #define X86_CR4_VME _BITUL(X86_CR4_VME_BIT) #define X86_CR4_PVI_BIT 1 @@ -104,6 +107,8 @@ #define X86_CR4_OSFXSR _BITUL(X86_CR4_OSFXSR_BIT) #define X86_CR4_OSXMMEXCPT_BIT 10 #define X86_CR4_OSXMMEXCPT _BITUL(X86_CR4_OSXMMEXCPT_BIT) +#define X86_CR4_UMIP_BIT 11 +#define X86_CR4_UMIP _BITUL(X86_CR4_UMIP_BIT) #define X86_CR4_LA57_BIT 12 #define X86_CR4_LA57 _BITUL(X86_CR4_LA57_BIT) #define X86_CR4_VMXE_BIT 13 @@ -138,4 +143,5 @@ #define CX86_DIR1 0xff #define CX86_ARR_BASE 0xc4 #define CX86_RCR_BASE 0xdc +#define CR0_STATE (X86_CR0_PE | X86_CR0_MP | X86_CR0_ET | X86_CR0_NE | X86_CR0_WP | X86_CR0_AM | X86_CR0_PG) #endif diff --git a/libc/kernel/uapi/drm/amdgpu_drm.h b/libc/kernel/uapi/drm/amdgpu_drm.h index 6ae9c9ccb..1cdae1617 100644 --- a/libc/kernel/uapi/drm/amdgpu_drm.h +++ b/libc/kernel/uapi/drm/amdgpu_drm.h @@ -35,6 +35,8 @@ #define DRM_AMDGPU_GEM_USERPTR 0x11 #define DRM_AMDGPU_WAIT_FENCES 0x12 #define DRM_AMDGPU_VM 0x13 +#define DRM_AMDGPU_FENCE_TO_HANDLE 0x14 +#define DRM_AMDGPU_SCHED 0x15 #define DRM_IOCTL_AMDGPU_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_CREATE, union drm_amdgpu_gem_create) #define DRM_IOCTL_AMDGPU_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_MMAP, union drm_amdgpu_gem_mmap) #define DRM_IOCTL_AMDGPU_CTX DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_CTX, union drm_amdgpu_ctx) @@ -49,6 +51,8 @@ #define DRM_IOCTL_AMDGPU_GEM_USERPTR DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_USERPTR, struct drm_amdgpu_gem_userptr) #define DRM_IOCTL_AMDGPU_WAIT_FENCES DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_FENCES, union drm_amdgpu_wait_fences) #define DRM_IOCTL_AMDGPU_VM DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_VM, union drm_amdgpu_vm) +#define DRM_IOCTL_AMDGPU_FENCE_TO_HANDLE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_FENCE_TO_HANDLE, union drm_amdgpu_fence_to_handle) +#define DRM_IOCTL_AMDGPU_SCHED DRM_IOW(DRM_COMMAND_BASE + DRM_AMDGPU_SCHED, union drm_amdgpu_sched) #define AMDGPU_GEM_DOMAIN_CPU 0x1 #define AMDGPU_GEM_DOMAIN_GTT 0x2 #define AMDGPU_GEM_DOMAIN_VRAM 0x4 @@ -61,6 +65,8 @@ #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3) #define AMDGPU_GEM_CREATE_SHADOW (1 << 4) #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) struct drm_amdgpu_gem_create_in { __u64 bo_size; __u64 alignment; @@ -104,11 +110,17 @@ union drm_amdgpu_bo_list { #define AMDGPU_CTX_GUILTY_RESET 1 #define AMDGPU_CTX_INNOCENT_RESET 2 #define AMDGPU_CTX_UNKNOWN_RESET 3 +#define AMDGPU_CTX_PRIORITY_UNSET - 2048 +#define AMDGPU_CTX_PRIORITY_VERY_LOW - 1023 +#define AMDGPU_CTX_PRIORITY_LOW - 512 +#define AMDGPU_CTX_PRIORITY_NORMAL 0 +#define AMDGPU_CTX_PRIORITY_HIGH 512 +#define AMDGPU_CTX_PRIORITY_VERY_HIGH 1023 struct drm_amdgpu_ctx_in { __u32 op; __u32 flags; __u32 ctx_id; - __u32 _pad; + __s32 priority; }; union drm_amdgpu_ctx_out { struct { @@ -138,6 +150,16 @@ union drm_amdgpu_vm { struct drm_amdgpu_vm_in in; struct drm_amdgpu_vm_out out; }; +#define AMDGPU_SCHED_OP_PROCESS_PRIORITY_OVERRIDE 1 +struct drm_amdgpu_sched_in { + __u32 op; + __u32 fd; + __s32 priority; + __u32 flags; +}; +union drm_amdgpu_sched { + struct drm_amdgpu_sched_in in; +}; #define AMDGPU_GEM_USERPTR_READONLY (1 << 0) #define AMDGPU_GEM_USERPTR_ANONONLY (1 << 1) #define AMDGPU_GEM_USERPTR_VALIDATE (1 << 2) @@ -331,6 +353,19 @@ struct drm_amdgpu_cs_chunk_fence { struct drm_amdgpu_cs_chunk_sem { __u32 handle; }; +#define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ 0 +#define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ_FD 1 +#define AMDGPU_FENCE_TO_HANDLE_GET_SYNC_FILE_FD 2 +union drm_amdgpu_fence_to_handle { + struct { + struct drm_amdgpu_fence fence; + __u32 what; + __u32 pad; + } in; + struct { + __u32 handle; + } out; +}; struct drm_amdgpu_cs_chunk_data { union { struct drm_amdgpu_cs_chunk_ib ib_data; @@ -381,6 +416,7 @@ struct drm_amdgpu_cs_chunk_data { #define AMDGPU_INFO_SENSOR_VDDNB 0x6 #define AMDGPU_INFO_SENSOR_VDDGFX 0x7 #define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS 0x1E +#define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8 diff --git a/libc/kernel/uapi/drm/drm.h b/libc/kernel/uapi/drm/drm.h index 6863dc10b..ec0c1fad3 100644 --- a/libc/kernel/uapi/drm/drm.h +++ b/libc/kernel/uapi/drm/drm.h @@ -412,6 +412,20 @@ struct drm_syncobj_array { __u32 count_handles; __u32 pad; }; +struct drm_crtc_get_sequence { + __u32 crtc_id; + __u32 active; + __u64 sequence; + __s64 sequence_ns; +}; +#define DRM_CRTC_SEQUENCE_RELATIVE 0x00000001 +#define DRM_CRTC_SEQUENCE_NEXT_ON_MISS 0x00000002 +struct drm_crtc_queue_sequence { + __u32 crtc_id; + __u32 flags; + __u64 sequence; + __u64 user_data; +}; #ifdef __cplusplus #endif #include "drm_mode.h" @@ -478,6 +492,8 @@ struct drm_syncobj_array { #define DRM_IOCTL_SG_ALLOC DRM_IOWR(0x38, struct drm_scatter_gather) #define DRM_IOCTL_SG_FREE DRM_IOW(0x39, struct drm_scatter_gather) #define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank) +#define DRM_IOCTL_CRTC_GET_SEQUENCE DRM_IOWR(0x3b, struct drm_crtc_get_sequence) +#define DRM_IOCTL_CRTC_QUEUE_SEQUENCE DRM_IOWR(0x3c, struct drm_crtc_queue_sequence) #define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, struct drm_update_draw) #define DRM_IOCTL_MODE_GETRESOURCES DRM_IOWR(0xA0, struct drm_mode_card_res) #define DRM_IOCTL_MODE_GETCRTC DRM_IOWR(0xA1, struct drm_mode_crtc) @@ -517,6 +533,10 @@ struct drm_syncobj_array { #define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait) #define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array) #define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array) +#define DRM_IOCTL_MODE_CREATE_LEASE DRM_IOWR(0xC6, struct drm_mode_create_lease) +#define DRM_IOCTL_MODE_LIST_LESSEES DRM_IOWR(0xC7, struct drm_mode_list_lessees) +#define DRM_IOCTL_MODE_GET_LEASE DRM_IOWR(0xC8, struct drm_mode_get_lease) +#define DRM_IOCTL_MODE_REVOKE_LEASE DRM_IOWR(0xC9, struct drm_mode_revoke_lease) #define DRM_COMMAND_BASE 0x40 #define DRM_COMMAND_END 0xA0 struct drm_event { @@ -525,6 +545,7 @@ struct drm_event { }; #define DRM_EVENT_VBLANK 0x01 #define DRM_EVENT_FLIP_COMPLETE 0x02 +#define DRM_EVENT_CRTC_SEQUENCE 0x03 struct drm_event_vblank { struct drm_event base; __u64 user_data; @@ -533,6 +554,12 @@ struct drm_event_vblank { __u32 sequence; __u32 crtc_id; }; +struct drm_event_crtc_sequence { + struct drm_event base; + __u64 user_data; + __s64 time_ns; + __u64 sequence; +}; typedef struct drm_clip_rect drm_clip_rect_t; typedef struct drm_drawable_info drm_drawable_info_t; typedef struct drm_tex_region drm_tex_region_t; diff --git a/libc/kernel/uapi/drm/drm_mode.h b/libc/kernel/uapi/drm/drm_mode.h index 5e97a72c5..2c9defbfa 100644 --- a/libc/kernel/uapi/drm/drm_mode.h +++ b/libc/kernel/uapi/drm/drm_mode.h @@ -427,6 +427,26 @@ struct drm_mode_create_blob { struct drm_mode_destroy_blob { __u32 blob_id; }; +struct drm_mode_create_lease { + __u64 object_ids; + __u32 object_count; + __u32 flags; + __u32 lessee_id; + __u32 fd; +}; +struct drm_mode_list_lessees { + __u32 count_lessees; + __u32 pad; + __u64 lessees_ptr; +}; +struct drm_mode_get_lease { + __u32 count_objects; + __u32 pad; + __u64 objects_ptr; +}; +struct drm_mode_revoke_lease { + __u32 lessee_id; +}; #ifdef __cplusplus #endif #endif diff --git a/libc/kernel/uapi/drm/etnaviv_drm.h b/libc/kernel/uapi/drm/etnaviv_drm.h index 6376e2555..58bd53664 100644 --- a/libc/kernel/uapi/drm/etnaviv_drm.h +++ b/libc/kernel/uapi/drm/etnaviv_drm.h @@ -91,6 +91,17 @@ struct drm_etnaviv_gem_submit_bo { __u32 handle; __u64 presumed; }; +#define ETNA_PM_PROCESS_PRE 0x0001 +#define ETNA_PM_PROCESS_POST 0x0002 +struct drm_etnaviv_gem_submit_pmr { + __u32 flags; + __u8 domain; + __u8 pad; + __u16 signal; + __u32 sequence; + __u32 read_offset; + __u32 read_idx; +}; #define ETNA_SUBMIT_NO_IMPLICIT 0x0001 #define ETNA_SUBMIT_FENCE_FD_IN 0x0002 #define ETNA_SUBMIT_FENCE_FD_OUT 0x0004 @@ -110,6 +121,9 @@ struct drm_etnaviv_gem_submit { __u64 stream; __u32 flags; __s32 fence_fd; + __u64 pmrs; + __u32 nr_pmrs; + __u32 pad; }; #define ETNA_WAIT_NONBLOCK 0x01 struct drm_etnaviv_wait_fence { @@ -134,6 +148,21 @@ struct drm_etnaviv_gem_wait { __u32 pad; struct drm_etnaviv_timespec timeout; }; +struct drm_etnaviv_pm_domain { + __u32 pipe; + __u8 iter; + __u8 id; + __u16 nr_signals; + char name[64]; +}; +struct drm_etnaviv_pm_signal { + __u32 pipe; + __u8 domain; + __u8 pad; + __u16 iter; + __u16 id; + char name[64]; +}; #define DRM_ETNAVIV_GET_PARAM 0x00 #define DRM_ETNAVIV_GEM_NEW 0x02 #define DRM_ETNAVIV_GEM_INFO 0x03 @@ -143,7 +172,9 @@ struct drm_etnaviv_gem_wait { #define DRM_ETNAVIV_WAIT_FENCE 0x07 #define DRM_ETNAVIV_GEM_USERPTR 0x08 #define DRM_ETNAVIV_GEM_WAIT 0x09 -#define DRM_ETNAVIV_NUM_IOCTLS 0x0a +#define DRM_ETNAVIV_PM_QUERY_DOM 0x0a +#define DRM_ETNAVIV_PM_QUERY_SIG 0x0b +#define DRM_ETNAVIV_NUM_IOCTLS 0x0c #define DRM_IOCTL_ETNAVIV_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GET_PARAM, struct drm_etnaviv_param) #define DRM_IOCTL_ETNAVIV_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_NEW, struct drm_etnaviv_gem_new) #define DRM_IOCTL_ETNAVIV_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_INFO, struct drm_etnaviv_gem_info) @@ -153,6 +184,8 @@ struct drm_etnaviv_gem_wait { #define DRM_IOCTL_ETNAVIV_WAIT_FENCE DRM_IOW(DRM_COMMAND_BASE + DRM_ETNAVIV_WAIT_FENCE, struct drm_etnaviv_wait_fence) #define DRM_IOCTL_ETNAVIV_GEM_USERPTR DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_USERPTR, struct drm_etnaviv_gem_userptr) #define DRM_IOCTL_ETNAVIV_GEM_WAIT DRM_IOW(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_WAIT, struct drm_etnaviv_gem_wait) +#define DRM_IOCTL_ETNAVIV_PM_QUERY_DOM DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_PM_QUERY_DOM, struct drm_etnaviv_pm_domain) +#define DRM_IOCTL_ETNAVIV_PM_QUERY_SIG DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_PM_QUERY_SIG, struct drm_etnaviv_pm_signal) #ifdef __cplusplus #endif #endif diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h index 50ea43a13..34342bf4c 100644 --- a/libc/kernel/uapi/drm/i915_drm.h +++ b/libc/kernel/uapi/drm/i915_drm.h @@ -293,6 +293,9 @@ typedef struct drm_i915_irq_wait { #define I915_PARAM_MIN_EU_IN_POOL 39 #define I915_PARAM_MMAP_GTT_VERSION 40 #define I915_PARAM_HAS_SCHEDULER 41 +#define I915_SCHEDULER_CAP_ENABLED (1ul << 0) +#define I915_SCHEDULER_CAP_PRIORITY (1ul << 1) +#define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2) #define I915_PARAM_HUC_STATUS 42 #define I915_PARAM_HAS_EXEC_ASYNC 43 #define I915_PARAM_HAS_EXEC_FENCE 44 @@ -633,6 +636,7 @@ struct drm_i915_gem_context_destroy { }; struct drm_i915_reg_read { __u64 offset; +#define I915_REG_READ_8B_WA (1ul << 0) __u64 val; }; struct drm_i915_reset_stats { @@ -660,6 +664,10 @@ struct drm_i915_gem_context_param { #define I915_CONTEXT_PARAM_GTT_SIZE 0x3 #define I915_CONTEXT_PARAM_NO_ERROR_CAPTURE 0x4 #define I915_CONTEXT_PARAM_BANNABLE 0x5 +#define I915_CONTEXT_PARAM_PRIORITY 0x6 +#define I915_CONTEXT_MAX_USER_PRIORITY 1023 +#define I915_CONTEXT_DEFAULT_PRIORITY 0 +#define I915_CONTEXT_MIN_USER_PRIORITY - 1023 __u64 value; }; enum drm_i915_oa_format { @@ -709,9 +717,9 @@ struct drm_i915_perf_oa_config { __u32 n_mux_regs; __u32 n_boolean_regs; __u32 n_flex_regs; - __u64 __user mux_regs_ptr; - __u64 __user boolean_regs_ptr; - __u64 __user flex_regs_ptr; + __u64 mux_regs_ptr; + __u64 boolean_regs_ptr; + __u64 flex_regs_ptr; }; #ifdef __cplusplus #endif diff --git a/libc/kernel/uapi/drm/msm_drm.h b/libc/kernel/uapi/drm/msm_drm.h index 4f1a423e4..d2f1b57c3 100644 --- a/libc/kernel/uapi/drm/msm_drm.h +++ b/libc/kernel/uapi/drm/msm_drm.h @@ -38,6 +38,7 @@ struct drm_msm_timespec { #define MSM_PARAM_MAX_FREQ 0x04 #define MSM_PARAM_TIMESTAMP 0x05 #define MSM_PARAM_GMEM_BASE 0x06 +#define MSM_PARAM_NR_RINGS 0x07 struct drm_msm_param { __u32 pipe; __u32 param; @@ -113,11 +114,13 @@ struct drm_msm_gem_submit { __u64 bos; __u64 cmds; __s32 fence_fd; + __u32 queueid; }; struct drm_msm_wait_fence { __u32 fence; __u32 pad; struct drm_msm_timespec timeout; + __u32 queueid; }; #define MSM_MADV_WILLNEED 0 #define MSM_MADV_DONTNEED 1 @@ -127,6 +130,12 @@ struct drm_msm_gem_madvise { __u32 madv; __u32 retained; }; +#define MSM_SUBMITQUEUE_FLAGS (0) +struct drm_msm_submitqueue { + __u32 flags; + __u32 prio; + __u32 id; +}; #define DRM_MSM_GET_PARAM 0x00 #define DRM_MSM_GEM_NEW 0x02 #define DRM_MSM_GEM_INFO 0x03 @@ -135,6 +144,8 @@ struct drm_msm_gem_madvise { #define DRM_MSM_GEM_SUBMIT 0x06 #define DRM_MSM_WAIT_FENCE 0x07 #define DRM_MSM_GEM_MADVISE 0x08 +#define DRM_MSM_SUBMITQUEUE_NEW 0x0A +#define DRM_MSM_SUBMITQUEUE_CLOSE 0x0B #define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param) #define DRM_IOCTL_MSM_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new) #define DRM_IOCTL_MSM_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info) @@ -143,6 +154,8 @@ struct drm_msm_gem_madvise { #define DRM_IOCTL_MSM_GEM_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_SUBMIT, struct drm_msm_gem_submit) #define DRM_IOCTL_MSM_WAIT_FENCE DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_WAIT_FENCE, struct drm_msm_wait_fence) #define DRM_IOCTL_MSM_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_MADVISE, struct drm_msm_gem_madvise) +#define DRM_IOCTL_MSM_SUBMITQUEUE_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue) +#define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32) #ifdef __cplusplus #endif #endif diff --git a/libc/kernel/uapi/drm/vc4_drm.h b/libc/kernel/uapi/drm/vc4_drm.h index d96c49d6e..3ca378f71 100644 --- a/libc/kernel/uapi/drm/vc4_drm.h +++ b/libc/kernel/uapi/drm/vc4_drm.h @@ -32,6 +32,7 @@ #define DRM_VC4_SET_TILING 0x08 #define DRM_VC4_GET_TILING 0x09 #define DRM_VC4_LABEL_BO 0x0a +#define DRM_VC4_GEM_MADVISE 0x0b #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl) #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno) #define DRM_IOCTL_VC4_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_BO, struct drm_vc4_wait_bo) @@ -43,6 +44,7 @@ #define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling) #define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling) #define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo) +#define DRM_IOCTL_VC4_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GEM_MADVISE, struct drm_vc4_gem_madvise) struct drm_vc4_submit_rcl_surface { __u32 hindex; __u32 offset; @@ -142,6 +144,7 @@ struct drm_vc4_get_hang_state { #define DRM_VC4_PARAM_SUPPORTS_ETC1 4 #define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5 #define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6 +#define DRM_VC4_PARAM_SUPPORTS_MADVISE 7 struct drm_vc4_get_param { __u32 param; __u32 pad; @@ -162,6 +165,16 @@ struct drm_vc4_label_bo { __u32 len; __u64 name; }; +#define VC4_MADV_WILLNEED 0 +#define VC4_MADV_DONTNEED 1 +#define __VC4_MADV_PURGED 2 +#define __VC4_MADV_NOTSUPP 3 +struct drm_vc4_gem_madvise { + __u32 handle; + __u32 madv; + __u32 retained; + __u32 pad; +}; #ifdef __cplusplus #endif #endif diff --git a/libc/kernel/uapi/linux/audit.h b/libc/kernel/uapi/linux/audit.h index 3edd1d40a..be48b446f 100644 --- a/libc/kernel/uapi/linux/audit.h +++ b/libc/kernel/uapi/linux/audit.h @@ -78,6 +78,7 @@ #define AUDIT_FEATURE_CHANGE 1328 #define AUDIT_REPLACE 1329 #define AUDIT_KERN_MODULE 1330 +#define AUDIT_FANOTIFY 1331 #define AUDIT_AVC 1400 #define AUDIT_SELINUX_ERR 1401 #define AUDIT_AVC_PATH 1402 @@ -116,7 +117,8 @@ #define AUDIT_FILTER_WATCH 0x03 #define AUDIT_FILTER_EXIT 0x04 #define AUDIT_FILTER_TYPE 0x05 -#define AUDIT_NR_FILTERS 6 +#define AUDIT_FILTER_FS 0x06 +#define AUDIT_NR_FILTERS 7 #define AUDIT_FILTER_PREPEND 0x10 #define AUDIT_NEVER 0 #define AUDIT_POSSIBLE 1 @@ -190,6 +192,7 @@ #define AUDIT_OBJ_LEV_HIGH 23 #define AUDIT_LOGINUID_SET 24 #define AUDIT_SESSIONID 25 +#define AUDIT_FSTYPE 26 #define AUDIT_DEVMAJOR 100 #define AUDIT_DEVMINOR 101 #define AUDIT_INODE 102 @@ -242,7 +245,8 @@ enum { #define AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND 0x00000008 #define AUDIT_FEATURE_BITMAP_SESSIONID_FILTER 0x00000010 #define AUDIT_FEATURE_BITMAP_LOST_RESET 0x00000020 -#define AUDIT_FEATURE_BITMAP_ALL (AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT | AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME | AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH | AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND | AUDIT_FEATURE_BITMAP_SESSIONID_FILTER | AUDIT_FEATURE_BITMAP_LOST_RESET) +#define AUDIT_FEATURE_BITMAP_FILTER_FS 0x00000040 +#define AUDIT_FEATURE_BITMAP_ALL (AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT | AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME | AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH | AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND | AUDIT_FEATURE_BITMAP_SESSIONID_FILTER | AUDIT_FEATURE_BITMAP_LOST_RESET | AUDIT_FEATURE_BITMAP_FILTER_FS) #define AUDIT_VERSION_LATEST AUDIT_FEATURE_BITMAP_ALL #define AUDIT_VERSION_BACKLOG_LIMIT AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT #define AUDIT_VERSION_BACKLOG_WAIT_TIME AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME diff --git a/libc/kernel/uapi/linux/bcache.h b/libc/kernel/uapi/linux/bcache.h index 0933d5181..4c7e32a1c 100644 --- a/libc/kernel/uapi/linux/bcache.h +++ b/libc/kernel/uapi/linux/bcache.h @@ -46,7 +46,7 @@ struct bkey { #define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0) #define PTR_DEV_BITS 12 #define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1) -#define PTR(gen,offset,dev) ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen) +#define MAKE_PTR(gen,offset,dev) ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen) #define bkey_copy(_dest,_src) memcpy(_dest, _src, bkey_bytes(_src)) #define BKEY_PAD 8 #define BKEY_PADDED(key) union { struct bkey key; __u64 key ##_pad[BKEY_PAD]; } diff --git a/libc/kernel/uapi/linux/bfs_fs.h b/libc/kernel/uapi/linux/bfs_fs.h index e828ce3e5..4a11e8aa0 100644 --- a/libc/kernel/uapi/linux/bfs_fs.h +++ b/libc/kernel/uapi/linux/bfs_fs.h @@ -66,5 +66,5 @@ struct bfs_super_block { #define BFS_NZFILESIZE(ip) ((le32_to_cpu((ip)->i_eoffset) + 1) - le32_to_cpu((ip)->i_sblock) * BFS_BSIZE) #define BFS_FILESIZE(ip) ((ip)->i_sblock == 0 ? 0 : BFS_NZFILESIZE(ip)) #define BFS_FILEBLOCKS(ip) ((ip)->i_sblock == 0 ? 0 : (le32_to_cpu((ip)->i_eblock) + 1) - le32_to_cpu((ip)->i_sblock)) -#define BFS_UNCLEAN(bfs_sb,sb) ((le32_to_cpu(bfs_sb->s_from) != - 1) && (le32_to_cpu(bfs_sb->s_to) != - 1) && ! (sb->s_flags & MS_RDONLY)) +#define BFS_UNCLEAN(bfs_sb,sb) ((le32_to_cpu(bfs_sb->s_from) != - 1) && (le32_to_cpu(bfs_sb->s_to) != - 1) && ! (sb->s_flags & SB_RDONLY)) #endif diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h index 1dfb99fcc..9ac0729cb 100644 --- a/libc/kernel/uapi/linux/bpf.h +++ b/libc/kernel/uapi/linux/bpf.h @@ -82,6 +82,7 @@ enum bpf_cmd { BPF_PROG_GET_FD_BY_ID, BPF_MAP_GET_FD_BY_ID, BPF_OBJ_GET_INFO_BY_FD, + BPF_PROG_QUERY, }; enum bpf_map_type { BPF_MAP_TYPE_UNSPEC, @@ -100,6 +101,7 @@ enum bpf_map_type { BPF_MAP_TYPE_HASH_OF_MAPS, BPF_MAP_TYPE_DEVMAP, BPF_MAP_TYPE_SOCKMAP, + BPF_MAP_TYPE_CPUMAP, }; enum bpf_prog_type { BPF_PROG_TYPE_UNSPEC, @@ -117,6 +119,7 @@ enum bpf_prog_type { BPF_PROG_TYPE_LWT_XMIT, BPF_PROG_TYPE_SOCK_OPS, BPF_PROG_TYPE_SK_SKB, + BPF_PROG_TYPE_CGROUP_DEVICE, }; enum bpf_attach_type { BPF_CGROUP_INET_INGRESS, @@ -125,10 +128,12 @@ enum bpf_attach_type { BPF_CGROUP_SOCK_OPS, BPF_SK_SKB_STREAM_PARSER, BPF_SK_SKB_STREAM_VERDICT, + BPF_CGROUP_DEVICE, __MAX_BPF_ATTACH_TYPE }; #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE #define BPF_F_ALLOW_OVERRIDE (1U << 0) +#define BPF_F_ALLOW_MULTI (1U << 1) #define BPF_F_STRICT_ALIGNMENT (1U << 0) #define BPF_PSEUDO_MAP_FD 1 #define BPF_ANY 0 @@ -137,6 +142,10 @@ enum bpf_attach_type { #define BPF_F_NO_PREALLOC (1U << 0) #define BPF_F_NO_COMMON_LRU (1U << 1) #define BPF_F_NUMA_NODE (1U << 2) +#define BPF_F_QUERY_EFFECTIVE (1U << 0) +#define BPF_OBJ_NAME_LEN 16U +#define BPF_F_RDONLY (1U << 3) +#define BPF_F_WRONLY (1U << 4) union bpf_attr { struct { __u32 map_type; @@ -146,6 +155,7 @@ union bpf_attr { __u32 map_flags; __u32 inner_map_fd; __u32 numa_node; + char map_name[BPF_OBJ_NAME_LEN]; }; struct { __u32 map_fd; @@ -166,10 +176,13 @@ union bpf_attr { __aligned_u64 log_buf; __u32 kern_version; __u32 prog_flags; + char prog_name[BPF_OBJ_NAME_LEN]; + __u32 prog_ifindex; }; struct { __aligned_u64 pathname; __u32 bpf_fd; + __u32 file_flags; }; struct { __u32 target_fd; @@ -194,14 +207,23 @@ union bpf_attr { __u32 map_id; }; __u32 next_id; + __u32 open_flags; }; struct { __u32 bpf_fd; __u32 info_len; __aligned_u64 info; } info; + struct { + __u32 target_fd; + __u32 attach_type; + __u32 query_flags; + __u32 attach_flags; + __aligned_u64 prog_ids; + __u32 prog_cnt; + } 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), +#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x enum bpf_func_id { __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID, @@ -253,6 +275,7 @@ struct __sk_buff { __u32 local_ip6[4]; __u32 remote_port; __u32 local_port; + __u32 data_meta; }; struct bpf_tunnel_key { __u32 tunnel_id; @@ -289,6 +312,7 @@ enum xdp_action { struct xdp_md { __u32 data; __u32 data_end; + __u32 data_meta; }; enum sk_action { SK_DROP = 0, @@ -303,6 +327,11 @@ struct bpf_prog_info { __u32 xlated_prog_len; __aligned_u64 jited_prog_insns; __aligned_u64 xlated_prog_insns; + __u64 load_time; + __u32 created_by_uid; + __u32 nr_map_ids; + __aligned_u64 map_ids; + char name[BPF_OBJ_NAME_LEN]; } __attribute__((aligned(8))); struct bpf_map_info { __u32 type; @@ -311,6 +340,7 @@ struct bpf_map_info { __u32 value_size; __u32 max_entries; __u32 map_flags; + char name[BPF_OBJ_NAME_LEN]; } __attribute__((aligned(8))); struct bpf_sock_ops { __u32 op; @@ -334,7 +364,23 @@ enum { BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB, BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB, BPF_SOCK_OPS_NEEDS_ECN, + BPF_SOCK_OPS_BASE_RTT, }; #define TCP_BPF_IW 1001 #define TCP_BPF_SNDCWND_CLAMP 1002 +struct bpf_perf_event_value { + __u64 counter; + __u64 enabled; + __u64 running; +}; +#define BPF_DEVCG_ACC_MKNOD (1ULL << 0) +#define BPF_DEVCG_ACC_READ (1ULL << 1) +#define BPF_DEVCG_ACC_WRITE (1ULL << 2) +#define BPF_DEVCG_DEV_BLOCK (1ULL << 0) +#define BPF_DEVCG_DEV_CHAR (1ULL << 1) +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; +}; #endif diff --git a/libc/kernel/uapi/linux/bpf_perf_event.h b/libc/kernel/uapi/linux/bpf_perf_event.h index ef7bd18fb..7a8d21226 100644 --- a/libc/kernel/uapi/linux/bpf_perf_event.h +++ b/libc/kernel/uapi/linux/bpf_perf_event.h @@ -18,10 +18,9 @@ ****************************************************************************/ #ifndef _UAPI__LINUX_BPF_PERF_EVENT_H__ #define _UAPI__LINUX_BPF_PERF_EVENT_H__ -#include <linux/types.h> -#include <linux/ptrace.h> +#include <asm/bpf_perf_event.h> struct bpf_perf_event_data { - struct pt_regs regs; + bpf_user_pt_regs_t regs; __u64 sample_period; }; #endif diff --git a/libc/kernel/uapi/linux/btrfs.h b/libc/kernel/uapi/linux/btrfs.h index a23ab580c..aa7c10508 100644 --- a/libc/kernel/uapi/linux/btrfs.h +++ b/libc/kernel/uapi/linux/btrfs.h @@ -339,9 +339,11 @@ struct btrfs_ioctl_ino_path_args { struct btrfs_ioctl_logical_ino_args { __u64 logical; __u64 size; - __u64 reserved[4]; + __u64 reserved[3]; + __u64 flags; __u64 inodes; }; +#define BTRFS_LOGICAL_INO_ARGS_IGNORE_OFFSET (1ULL << 0) enum btrfs_dev_stat_values { BTRFS_DEV_STAT_WRITE_ERRS, BTRFS_DEV_STAT_READ_ERRS, @@ -469,4 +471,5 @@ enum btrfs_err_code { #define BTRFS_IOC_SET_FEATURES _IOW(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[2]) #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) #endif diff --git a/libc/kernel/uapi/linux/btrfs_tree.h b/libc/kernel/uapi/linux/btrfs_tree.h index c75732eb7..c2fbd4029 100644 --- a/libc/kernel/uapi/linux/btrfs_tree.h +++ b/libc/kernel/uapi/linux/btrfs_tree.h @@ -320,6 +320,7 @@ struct btrfs_balance_item { #define BTRFS_FILE_EXTENT_INLINE 0 #define BTRFS_FILE_EXTENT_REG 1 #define BTRFS_FILE_EXTENT_PREALLOC 2 +#define BTRFS_FILE_EXTENT_TYPES 2 struct btrfs_file_extent_item { __le64 generation; __le64 ram_bytes; diff --git a/libc/kernel/uapi/linux/cec.h b/libc/kernel/uapi/linux/cec.h index 3fcee96bc..98892f713 100644 --- a/libc/kernel/uapi/linux/cec.h +++ b/libc/kernel/uapi/linux/cec.h @@ -130,6 +130,8 @@ struct cec_log_addrs { #define CEC_EVENT_LOST_MSGS 2 #define CEC_EVENT_PIN_CEC_LOW 3 #define CEC_EVENT_PIN_CEC_HIGH 4 +#define CEC_EVENT_PIN_HPD_LOW 5 +#define CEC_EVENT_PIN_HPD_HIGH 6 #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/cramfs_fs.h b/libc/kernel/uapi/linux/cramfs_fs.h index 5d119ba2d..887291487 100644 --- a/libc/kernel/uapi/linux/cramfs_fs.h +++ b/libc/kernel/uapi/linux/cramfs_fs.h @@ -54,5 +54,10 @@ struct cramfs_super { #define CRAMFS_FLAG_HOLES 0x00000100 #define CRAMFS_FLAG_WRONG_SIGNATURE 0x00000200 #define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET 0x00000400 -#define CRAMFS_SUPPORTED_FLAGS (0x000000ff | CRAMFS_FLAG_HOLES | CRAMFS_FLAG_WRONG_SIGNATURE | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET) +#define CRAMFS_FLAG_EXT_BLOCK_POINTERS 0x00000800 +#define CRAMFS_SUPPORTED_FLAGS (0x000000ff | CRAMFS_FLAG_HOLES | CRAMFS_FLAG_WRONG_SIGNATURE | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET | CRAMFS_FLAG_EXT_BLOCK_POINTERS) +#define CRAMFS_BLK_FLAG_UNCOMPRESSED (1 << 31) +#define CRAMFS_BLK_FLAG_DIRECT_PTR (1 << 30) +#define CRAMFS_BLK_FLAGS (CRAMFS_BLK_FLAG_UNCOMPRESSED | CRAMFS_BLK_FLAG_DIRECT_PTR) +#define CRAMFS_BLK_DIRECT_PTR_SHIFT 2 #endif diff --git a/libc/kernel/uapi/linux/dcbnl.h b/libc/kernel/uapi/linux/dcbnl.h index 569efdd93..2fe4cce5c 100644 --- a/libc/kernel/uapi/linux/dcbnl.h +++ b/libc/kernel/uapi/linux/dcbnl.h @@ -91,6 +91,7 @@ struct cee_pfc { #define IEEE_8021QAZ_APP_SEL_STREAM 2 #define IEEE_8021QAZ_APP_SEL_DGRAM 3 #define IEEE_8021QAZ_APP_SEL_ANY 4 +#define IEEE_8021QAZ_APP_SEL_DSCP 5 struct dcb_app { __u8 selector; __u8 priority; diff --git a/libc/kernel/uapi/linux/elf.h b/libc/kernel/uapi/linux/elf.h index 8aa1011e8..bf35f6c65 100644 --- a/libc/kernel/uapi/linux/elf.h +++ b/libc/kernel/uapi/linux/elf.h @@ -347,11 +347,13 @@ typedef struct elf64_shdr { #define NT_S390_VXRS_HIGH 0x30a #define NT_S390_GS_CB 0x30b #define NT_S390_GS_BC 0x30c +#define NT_S390_RI_CB 0x30d #define NT_ARM_VFP 0x400 #define NT_ARM_TLS 0x401 #define NT_ARM_HW_BREAK 0x402 #define NT_ARM_HW_WATCH 0x403 #define NT_ARM_SYSTEM_CALL 0x404 +#define NT_ARM_SVE 0x405 #define NT_METAG_CBUF 0x500 #define NT_METAG_RPIPE 0x501 #define NT_METAG_TLS 0x502 diff --git a/libc/kernel/uapi/linux/fanotify.h b/libc/kernel/uapi/linux/fanotify.h index b10106e4f..73d92cae2 100644 --- a/libc/kernel/uapi/linux/fanotify.h +++ b/libc/kernel/uapi/linux/fanotify.h @@ -38,6 +38,7 @@ #define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | FAN_CLASS_PRE_CONTENT) #define FAN_UNLIMITED_QUEUE 0x00000010 #define FAN_UNLIMITED_MARKS 0x00000020 +#define FAN_ENABLE_AUDIT 0x00000040 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS) #define FAN_MARK_ADD 0x00000001 #define FAN_MARK_REMOVE 0x00000002 @@ -67,6 +68,7 @@ struct fanotify_response { }; #define FAN_ALLOW 0x01 #define FAN_DENY 0x02 +#define FAN_AUDIT 0x10 #define FAN_NOFD - 1 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata)) #define FAN_EVENT_NEXT(meta,len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata *) (((char *) (meta)) + (meta)->event_len)) diff --git a/libc/kernel/uapi/linux/if_ether.h b/libc/kernel/uapi/linux/if_ether.h index f40321e0a..04b6daead 100644 --- a/libc/kernel/uapi/linux/if_ether.h +++ b/libc/kernel/uapi/linux/if_ether.h @@ -19,6 +19,7 @@ #ifndef _UAPI_LINUX_IF_ETHER_H #define _UAPI_LINUX_IF_ETHER_H #include <linux/types.h> +#include <linux/libc-compat.h> #define ETH_ALEN 6 #define ETH_HLEN 14 #define ETH_ZLEN 60 @@ -116,9 +117,11 @@ #define ETH_P_CAIF 0x00F7 #define ETH_P_XDSA 0x00F8 #define ETH_P_MAP 0x00F9 +#if __UAPI_DEF_ETHHDR struct ethhdr { unsigned char h_dest[ETH_ALEN]; unsigned char h_source[ETH_ALEN]; __be16 h_proto; } __attribute__((packed)); #endif +#endif diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h index c041c8266..a43eaf781 100644 --- a/libc/kernel/uapi/linux/if_link.h +++ b/libc/kernel/uapi/linux/if_link.h @@ -136,6 +136,8 @@ enum { IFLA_PAD, IFLA_XDP, IFLA_EVENT, + IFLA_NEW_NETNSID, + IFLA_IF_NETNSID, __IFLA_MAX }; #define IFLA_MAX (__IFLA_MAX - 1) @@ -255,6 +257,8 @@ enum { IFLA_BRPORT_MCAST_TO_UCAST, IFLA_BRPORT_VLAN_TUNNEL, IFLA_BRPORT_BCAST_FLOOD, + IFLA_BRPORT_GROUP_FWD_MASK, + IFLA_BRPORT_NEIGH_SUPPRESS, __IFLA_BRPORT_MAX }; #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) @@ -364,6 +368,7 @@ enum macsec_validation_type { enum { IFLA_IPVLAN_UNSPEC, IFLA_IPVLAN_MODE, + IFLA_IPVLAN_FLAGS, __IFLA_IPVLAN_MAX }; #define IFLA_IPVLAN_MAX (__IFLA_IPVLAN_MAX - 1) @@ -373,6 +378,8 @@ enum ipvlan_mode { IPVLAN_MODE_L3S, IPVLAN_MODE_MAX }; +#define IPVLAN_F_PRIVATE 0x01 +#define IPVLAN_F_VEPA 0x02 enum { IFLA_VXLAN_UNSPEC, IFLA_VXLAN_ID, diff --git a/libc/kernel/uapi/linux/if_tun.h b/libc/kernel/uapi/linux/if_tun.h index 4912d7bac..d8757a112 100644 --- a/libc/kernel/uapi/linux/if_tun.h +++ b/libc/kernel/uapi/linux/if_tun.h @@ -51,6 +51,8 @@ #define TUNGETVNETBE _IOR('T', 223, int) #define IFF_TUN 0x0001 #define IFF_TAP 0x0002 +#define IFF_NAPI 0x0010 +#define IFF_NAPI_FRAGS 0x0020 #define IFF_NO_PI 0x1000 #define IFF_ONE_QUEUE 0x2000 #define IFF_VNET_HDR 0x4000 diff --git a/libc/kernel/uapi/linux/if_tunnel.h b/libc/kernel/uapi/linux/if_tunnel.h index bfc6479fb..8edc9567f 100644 --- a/libc/kernel/uapi/linux/if_tunnel.h +++ b/libc/kernel/uapi/linux/if_tunnel.h @@ -93,6 +93,7 @@ enum tunnel_encap_types { TUNNEL_ENCAP_NONE, TUNNEL_ENCAP_FOU, TUNNEL_ENCAP_GUE, + TUNNEL_ENCAP_MPLS, }; #define TUNNEL_ENCAP_FLAG_CSUM (1 << 0) #define TUNNEL_ENCAP_FLAG_CSUM6 (1 << 1) diff --git a/libc/kernel/uapi/linux/ila.h b/libc/kernel/uapi/linux/ila.h index 38386bea1..a5af23a46 100644 --- a/libc/kernel/uapi/linux/ila.h +++ b/libc/kernel/uapi/linux/ila.h @@ -29,6 +29,8 @@ enum { ILA_ATTR_DIR, ILA_ATTR_PAD, ILA_ATTR_CSUM_MODE, + ILA_ATTR_IDENT_TYPE, + ILA_ATTR_HOOK_TYPE, __ILA_ATTR_MAX, }; #define ILA_ATTR_MAX (__ILA_ATTR_MAX - 1) @@ -46,5 +48,21 @@ enum { ILA_CSUM_ADJUST_TRANSPORT, ILA_CSUM_NEUTRAL_MAP, ILA_CSUM_NO_ACTION, + ILA_CSUM_NEUTRAL_MAP_AUTO, +}; +enum { + ILA_ATYPE_IID = 0, + ILA_ATYPE_LUID, + ILA_ATYPE_VIRT_V4, + ILA_ATYPE_VIRT_UNI_V6, + ILA_ATYPE_VIRT_MULTI_V6, + ILA_ATYPE_NONLOCAL_ADDR, + ILA_ATYPE_RSVD_1, + ILA_ATYPE_RSVD_2, + ILA_ATYPE_USE_FORMAT = 32, +}; +enum { + ILA_HOOK_ROUTE_OUTPUT, + ILA_HOOK_ROUTE_INPUT, }; #endif diff --git a/libc/kernel/uapi/linux/in6.h b/libc/kernel/uapi/linux/in6.h index 1e3b49d02..9da111cd1 100644 --- a/libc/kernel/uapi/linux/in6.h +++ b/libc/kernel/uapi/linux/in6.h @@ -175,4 +175,5 @@ struct in6_flowlabel_req { #define IPV6_TRANSPARENT 75 #define IPV6_UNICAST_IF 76 #define IPV6_RECVFRAGSIZE 77 +#define IPV6_FREEBIND 78 #endif diff --git a/libc/kernel/uapi/linux/input-event-codes.h b/libc/kernel/uapi/linux/input-event-codes.h index 346ec915e..da90f1c5b 100644 --- a/libc/kernel/uapi/linux/input-event-codes.h +++ b/libc/kernel/uapi/linux/input-event-codes.h @@ -359,6 +359,7 @@ #define BTN_TOOL_MOUSE 0x146 #define BTN_TOOL_LENS 0x147 #define BTN_TOOL_QUINTTAP 0x148 +#define BTN_STYLUS3 0x149 #define BTN_TOUCH 0x14a #define BTN_STYLUS 0x14b #define BTN_STYLUS2 0x14c diff --git a/libc/kernel/uapi/linux/ip6_tunnel.h b/libc/kernel/uapi/linux/ip6_tunnel.h index b7df95653..ba5923558 100644 --- a/libc/kernel/uapi/linux/ip6_tunnel.h +++ b/libc/kernel/uapi/linux/ip6_tunnel.h @@ -29,6 +29,7 @@ #define IP6_TNL_F_MIP6_DEV 0x8 #define IP6_TNL_F_RCV_DSCP_COPY 0x10 #define IP6_TNL_F_USE_ORIG_FWMARK 0x20 +#define IP6_TNL_F_ALLOW_LOCAL_REMOTE 0x40 struct ip6_tnl_parm { char name[IFNAMSIZ]; int link; diff --git a/libc/kernel/uapi/linux/ipv6.h b/libc/kernel/uapi/linux/ipv6.h index d07fa0607..ff345a6ad 100644 --- a/libc/kernel/uapi/linux/ipv6.h +++ b/libc/kernel/uapi/linux/ipv6.h @@ -140,6 +140,7 @@ enum { DEVCONF_ADDR_GEN_MODE, DEVCONF_DISABLE_POLICY, DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN, + DEVCONF_NDISC_TCLASS, DEVCONF_MAX }; #endif diff --git a/libc/kernel/uapi/linux/iso_fs.h b/libc/kernel/uapi/linux/iso_fs.h index d88d64648..822703167 100644 --- a/libc/kernel/uapi/linux/iso_fs.h +++ b/libc/kernel/uapi/linux/iso_fs.h @@ -22,34 +22,34 @@ #include <linux/magic.h> #define ISODCL(from,to) (to - from + 1) struct iso_volume_descriptor { - char type[ISODCL(1, 1)]; + __u8 type[ISODCL(1, 1)]; char id[ISODCL(2, 6)]; - char version[ISODCL(7, 7)]; - char data[ISODCL(8, 2048)]; + __u8 version[ISODCL(7, 7)]; + __u8 data[ISODCL(8, 2048)]; }; #define ISO_VD_PRIMARY 1 #define ISO_VD_SUPPLEMENTARY 2 #define ISO_VD_END 255 #define ISO_STANDARD_ID "CD001" struct iso_primary_descriptor { - char type[ISODCL(1, 1)]; + __u8 type[ISODCL(1, 1)]; char id[ISODCL(2, 6)]; - char version[ISODCL(7, 7)]; - char unused1[ISODCL(8, 8)]; + __u8 version[ISODCL(7, 7)]; + __u8 unused1[ISODCL(8, 8)]; char system_id[ISODCL(9, 40)]; char volume_id[ISODCL(41, 72)]; - char unused2[ISODCL(73, 80)]; - char volume_space_size[ISODCL(81, 88)]; - char unused3[ISODCL(89, 120)]; - char volume_set_size[ISODCL(121, 124)]; - char volume_sequence_number[ISODCL(125, 128)]; - char logical_block_size[ISODCL(129, 132)]; - char path_table_size[ISODCL(133, 140)]; - char type_l_path_table[ISODCL(141, 144)]; - char opt_type_l_path_table[ISODCL(145, 148)]; - char type_m_path_table[ISODCL(149, 152)]; - char opt_type_m_path_table[ISODCL(153, 156)]; - char root_directory_record[ISODCL(157, 190)]; + __u8 unused2[ISODCL(73, 80)]; + __u8 volume_space_size[ISODCL(81, 88)]; + __u8 unused3[ISODCL(89, 120)]; + __u8 volume_set_size[ISODCL(121, 124)]; + __u8 volume_sequence_number[ISODCL(125, 128)]; + __u8 logical_block_size[ISODCL(129, 132)]; + __u8 path_table_size[ISODCL(133, 140)]; + __u8 type_l_path_table[ISODCL(141, 144)]; + __u8 opt_type_l_path_table[ISODCL(145, 148)]; + __u8 type_m_path_table[ISODCL(149, 152)]; + __u8 opt_type_m_path_table[ISODCL(153, 156)]; + __u8 root_directory_record[ISODCL(157, 190)]; char volume_set_id[ISODCL(191, 318)]; char publisher_id[ISODCL(319, 446)]; char preparer_id[ISODCL(447, 574)]; @@ -57,34 +57,34 @@ struct iso_primary_descriptor { char copyright_file_id[ISODCL(703, 739)]; char abstract_file_id[ISODCL(740, 776)]; char bibliographic_file_id[ISODCL(777, 813)]; - char creation_date[ISODCL(814, 830)]; - char modification_date[ISODCL(831, 847)]; - char expiration_date[ISODCL(848, 864)]; - char effective_date[ISODCL(865, 881)]; - char file_structure_version[ISODCL(882, 882)]; - char unused4[ISODCL(883, 883)]; - char application_data[ISODCL(884, 1395)]; - char unused5[ISODCL(1396, 2048)]; + __u8 creation_date[ISODCL(814, 830)]; + __u8 modification_date[ISODCL(831, 847)]; + __u8 expiration_date[ISODCL(848, 864)]; + __u8 effective_date[ISODCL(865, 881)]; + __u8 file_structure_version[ISODCL(882, 882)]; + __u8 unused4[ISODCL(883, 883)]; + __u8 application_data[ISODCL(884, 1395)]; + __u8 unused5[ISODCL(1396, 2048)]; }; struct iso_supplementary_descriptor { - char type[ISODCL(1, 1)]; + __u8 type[ISODCL(1, 1)]; char id[ISODCL(2, 6)]; - char version[ISODCL(7, 7)]; - char flags[ISODCL(8, 8)]; + __u8 version[ISODCL(7, 7)]; + __u8 flags[ISODCL(8, 8)]; char system_id[ISODCL(9, 40)]; char volume_id[ISODCL(41, 72)]; - char unused2[ISODCL(73, 80)]; - char volume_space_size[ISODCL(81, 88)]; - char escape[ISODCL(89, 120)]; - char volume_set_size[ISODCL(121, 124)]; - char volume_sequence_number[ISODCL(125, 128)]; - char logical_block_size[ISODCL(129, 132)]; - char path_table_size[ISODCL(133, 140)]; - char type_l_path_table[ISODCL(141, 144)]; - char opt_type_l_path_table[ISODCL(145, 148)]; - char type_m_path_table[ISODCL(149, 152)]; - char opt_type_m_path_table[ISODCL(153, 156)]; - char root_directory_record[ISODCL(157, 190)]; + __u8 unused2[ISODCL(73, 80)]; + __u8 volume_space_size[ISODCL(81, 88)]; + __u8 escape[ISODCL(89, 120)]; + __u8 volume_set_size[ISODCL(121, 124)]; + __u8 volume_sequence_number[ISODCL(125, 128)]; + __u8 logical_block_size[ISODCL(129, 132)]; + __u8 path_table_size[ISODCL(133, 140)]; + __u8 type_l_path_table[ISODCL(141, 144)]; + __u8 opt_type_l_path_table[ISODCL(145, 148)]; + __u8 type_m_path_table[ISODCL(149, 152)]; + __u8 opt_type_m_path_table[ISODCL(153, 156)]; + __u8 root_directory_record[ISODCL(157, 190)]; char volume_set_id[ISODCL(191, 318)]; char publisher_id[ISODCL(319, 446)]; char preparer_id[ISODCL(447, 574)]; @@ -92,59 +92,59 @@ struct iso_supplementary_descriptor { char copyright_file_id[ISODCL(703, 739)]; char abstract_file_id[ISODCL(740, 776)]; char bibliographic_file_id[ISODCL(777, 813)]; - char creation_date[ISODCL(814, 830)]; - char modification_date[ISODCL(831, 847)]; - char expiration_date[ISODCL(848, 864)]; - char effective_date[ISODCL(865, 881)]; - char file_structure_version[ISODCL(882, 882)]; - char unused4[ISODCL(883, 883)]; - char application_data[ISODCL(884, 1395)]; - char unused5[ISODCL(1396, 2048)]; + __u8 creation_date[ISODCL(814, 830)]; + __u8 modification_date[ISODCL(831, 847)]; + __u8 expiration_date[ISODCL(848, 864)]; + __u8 effective_date[ISODCL(865, 881)]; + __u8 file_structure_version[ISODCL(882, 882)]; + __u8 unused4[ISODCL(883, 883)]; + __u8 application_data[ISODCL(884, 1395)]; + __u8 unused5[ISODCL(1396, 2048)]; }; #define HS_STANDARD_ID "CDROM" struct hs_volume_descriptor { - char foo[ISODCL(1, 8)]; - char type[ISODCL(9, 9)]; + __u8 foo[ISODCL(1, 8)]; + __u8 type[ISODCL(9, 9)]; char id[ISODCL(10, 14)]; - char version[ISODCL(15, 15)]; - char data[ISODCL(16, 2048)]; + __u8 version[ISODCL(15, 15)]; + __u8 data[ISODCL(16, 2048)]; }; struct hs_primary_descriptor { - char foo[ISODCL(1, 8)]; - char type[ISODCL(9, 9)]; - char id[ISODCL(10, 14)]; - char version[ISODCL(15, 15)]; - char unused1[ISODCL(16, 16)]; + __u8 foo[ISODCL(1, 8)]; + __u8 type[ISODCL(9, 9)]; + __u8 id[ISODCL(10, 14)]; + __u8 version[ISODCL(15, 15)]; + __u8 unused1[ISODCL(16, 16)]; char system_id[ISODCL(17, 48)]; char volume_id[ISODCL(49, 80)]; - char unused2[ISODCL(81, 88)]; - char volume_space_size[ISODCL(89, 96)]; - char unused3[ISODCL(97, 128)]; - char volume_set_size[ISODCL(129, 132)]; - char volume_sequence_number[ISODCL(133, 136)]; - char logical_block_size[ISODCL(137, 140)]; - char path_table_size[ISODCL(141, 148)]; - char type_l_path_table[ISODCL(149, 152)]; - char unused4[ISODCL(153, 180)]; - char root_directory_record[ISODCL(181, 214)]; + __u8 unused2[ISODCL(81, 88)]; + __u8 volume_space_size[ISODCL(89, 96)]; + __u8 unused3[ISODCL(97, 128)]; + __u8 volume_set_size[ISODCL(129, 132)]; + __u8 volume_sequence_number[ISODCL(133, 136)]; + __u8 logical_block_size[ISODCL(137, 140)]; + __u8 path_table_size[ISODCL(141, 148)]; + __u8 type_l_path_table[ISODCL(149, 152)]; + __u8 unused4[ISODCL(153, 180)]; + __u8 root_directory_record[ISODCL(181, 214)]; }; struct iso_path_table { - unsigned char name_len[2]; - char extent[4]; - char parent[2]; + __u8 name_len[2]; + __u8 extent[4]; + __u8 parent[2]; char name[0]; } __attribute__((packed)); struct iso_directory_record { - char length[ISODCL(1, 1)]; - char ext_attr_length[ISODCL(2, 2)]; - char extent[ISODCL(3, 10)]; - char size[ISODCL(11, 18)]; - char date[ISODCL(19, 25)]; - char flags[ISODCL(26, 26)]; - char file_unit_size[ISODCL(27, 27)]; - char interleave[ISODCL(28, 28)]; - char volume_sequence_number[ISODCL(29, 32)]; - unsigned char name_len[ISODCL(33, 33)]; + __u8 length[ISODCL(1, 1)]; + __u8 ext_attr_length[ISODCL(2, 2)]; + __u8 extent[ISODCL(3, 10)]; + __u8 size[ISODCL(11, 18)]; + __u8 date[ISODCL(19, 25)]; + __u8 flags[ISODCL(26, 26)]; + __u8 file_unit_size[ISODCL(27, 27)]; + __u8 interleave[ISODCL(28, 28)]; + __u8 volume_sequence_number[ISODCL(29, 32)]; + __u8 name_len[ISODCL(33, 33)]; char name[0]; } __attribute__((packed)); #define ISOFS_BLOCK_BITS 11 diff --git a/libc/kernel/uapi/linux/kcov.h b/libc/kernel/uapi/linux/kcov.h index 9688c383e..40f99122d 100644 --- a/libc/kernel/uapi/linux/kcov.h +++ b/libc/kernel/uapi/linux/kcov.h @@ -22,4 +22,11 @@ #define KCOV_INIT_TRACE _IOR('c', 1, unsigned long) #define KCOV_ENABLE _IO('c', 100) #define KCOV_DISABLE _IO('c', 101) +enum { + KCOV_TRACE_PC = 0, + KCOV_TRACE_CMP = 1, +}; +#define KCOV_CMP_CONST (1 << 0) +#define KCOV_CMP_SIZE(n) ((n) << 1) +#define KCOV_CMP_MASK KCOV_CMP_SIZE(3) #endif diff --git a/libc/kernel/uapi/linux/kfd_ioctl.h b/libc/kernel/uapi/linux/kfd_ioctl.h index f870cd608..d4582a174 100644 --- a/libc/kernel/uapi/linux/kfd_ioctl.h +++ b/libc/kernel/uapi/linux/kfd_ioctl.h @@ -125,7 +125,7 @@ struct kfd_ioctl_dbg_wave_control_args { #define KFD_IOC_WAIT_RESULT_COMPLETE 0 #define KFD_IOC_WAIT_RESULT_TIMEOUT 1 #define KFD_IOC_WAIT_RESULT_FAIL 2 -#define KFD_SIGNAL_EVENT_LIMIT 256 +#define KFD_SIGNAL_EVENT_LIMIT 4096 struct kfd_ioctl_create_event_args { __u64 event_page_offset; __u32 event_trigger_data; @@ -175,19 +175,19 @@ struct kfd_ioctl_wait_events_args { __u32 wait_result; }; struct kfd_ioctl_set_scratch_backing_va_args { - uint64_t va_addr; - uint32_t gpu_id; - uint32_t pad; + __u64 va_addr; + __u32 gpu_id; + __u32 pad; }; struct kfd_ioctl_get_tile_config_args { - uint64_t tile_config_ptr; - uint64_t macro_tile_config_ptr; - uint32_t num_tile_configs; - uint32_t num_macro_tile_configs; - uint32_t gpu_id; - uint32_t gb_addr_config; - uint32_t num_banks; - uint32_t num_ranks; + __u64 tile_config_ptr; + __u64 macro_tile_config_ptr; + __u32 num_tile_configs; + __u32 num_macro_tile_configs; + __u32 gpu_id; + __u32 gb_addr_config; + __u32 num_banks; + __u32 num_ranks; }; #define AMDKFD_IOCTL_BASE 'K' #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr) diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h index 6bd470196..d04832af5 100644 --- a/libc/kernel/uapi/linux/kvm.h +++ b/libc/kernel/uapi/linux/kvm.h @@ -728,6 +728,9 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_PPC_SMT_POSSIBLE 147 #define KVM_CAP_HYPERV_SYNIC2 148 #define KVM_CAP_HYPERV_VP_INDEX 149 +#define KVM_CAP_S390_AIS_MIGRATION 150 +#define KVM_CAP_PPC_GET_CPU_CHAR 151 +#define KVM_CAP_S390_BPB 152 #ifdef KVM_CAP_IRQ_ROUTING struct kvm_irq_routing_irqchip { __u32 irqchip; @@ -966,6 +969,7 @@ struct kvm_s390_ucas_mapping { #define KVM_PPC_RESIZE_HPT_COMMIT _IOR(KVMIO, 0xae, struct kvm_ppc_resize_hpt) #define KVM_PPC_CONFIGURE_V3_MMU _IOW(KVMIO, 0xaf, struct kvm_ppc_mmuv3_cfg) #define KVM_PPC_GET_RMMU_INFO _IOW(KVMIO, 0xb0, struct kvm_ppc_rmmu_info) +#define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char) #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr) #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr) diff --git a/libc/kernel/uapi/linux/libc-compat.h b/libc/kernel/uapi/linux/libc-compat.h index e5a2b0309..c9a8b74b9 100644 --- a/libc/kernel/uapi/linux/libc-compat.h +++ b/libc/kernel/uapi/linux/libc-compat.h @@ -90,31 +90,86 @@ #define __UAPI_DEF_XATTR 1 #endif #else +#ifndef __UAPI_DEF_IF_IFCONF #define __UAPI_DEF_IF_IFCONF 1 +#endif +#ifndef __UAPI_DEF_IF_IFMAP #define __UAPI_DEF_IF_IFMAP 1 +#endif +#ifndef __UAPI_DEF_IF_IFNAMSIZ #define __UAPI_DEF_IF_IFNAMSIZ 1 +#endif +#ifndef __UAPI_DEF_IF_IFREQ #define __UAPI_DEF_IF_IFREQ 1 +#endif +#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1 +#endif +#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO #define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1 +#endif +#ifndef __UAPI_DEF_IN_ADDR #define __UAPI_DEF_IN_ADDR 1 +#endif +#ifndef __UAPI_DEF_IN_IPPROTO #define __UAPI_DEF_IN_IPPROTO 1 +#endif +#ifndef __UAPI_DEF_IN_PKTINFO #define __UAPI_DEF_IN_PKTINFO 1 +#endif +#ifndef __UAPI_DEF_IP_MREQ #define __UAPI_DEF_IP_MREQ 1 +#endif +#ifndef __UAPI_DEF_SOCKADDR_IN #define __UAPI_DEF_SOCKADDR_IN 1 +#endif +#ifndef __UAPI_DEF_IN_CLASS #define __UAPI_DEF_IN_CLASS 1 +#endif +#ifndef __UAPI_DEF_IN6_ADDR #define __UAPI_DEF_IN6_ADDR 1 +#endif +#ifndef __UAPI_DEF_IN6_ADDR_ALT #define __UAPI_DEF_IN6_ADDR_ALT 1 +#endif +#ifndef __UAPI_DEF_SOCKADDR_IN6 #define __UAPI_DEF_SOCKADDR_IN6 1 +#endif +#ifndef __UAPI_DEF_IPV6_MREQ #define __UAPI_DEF_IPV6_MREQ 1 +#endif +#ifndef __UAPI_DEF_IPPROTO_V6 #define __UAPI_DEF_IPPROTO_V6 1 +#endif +#ifndef __UAPI_DEF_IPV6_OPTIONS #define __UAPI_DEF_IPV6_OPTIONS 1 +#endif +#ifndef __UAPI_DEF_IN6_PKTINFO #define __UAPI_DEF_IN6_PKTINFO 1 +#endif +#ifndef __UAPI_DEF_IP6_MTUINFO #define __UAPI_DEF_IP6_MTUINFO 1 +#endif +#ifndef __UAPI_DEF_SOCKADDR_IPX #define __UAPI_DEF_SOCKADDR_IPX 1 +#endif +#ifndef __UAPI_DEF_IPX_ROUTE_DEFINITION #define __UAPI_DEF_IPX_ROUTE_DEFINITION 1 +#endif +#ifndef __UAPI_DEF_IPX_INTERFACE_DEFINITION #define __UAPI_DEF_IPX_INTERFACE_DEFINITION 1 +#endif +#ifndef __UAPI_DEF_IPX_CONFIG_DATA #define __UAPI_DEF_IPX_CONFIG_DATA 1 +#endif +#ifndef __UAPI_DEF_IPX_ROUTE_DEF #define __UAPI_DEF_IPX_ROUTE_DEF 1 +#endif +#ifndef __UAPI_DEF_XATTR #define __UAPI_DEF_XATTR 1 #endif #endif +#ifndef __UAPI_DEF_ETHHDR +#define __UAPI_DEF_ETHHDR 1 +#endif +#endif diff --git a/libc/kernel/uapi/linux/magic.h b/libc/kernel/uapi/linux/magic.h index 6e0ddf781..68b4c65f2 100644 --- a/libc/kernel/uapi/linux/magic.h +++ b/libc/kernel/uapi/linux/magic.h @@ -61,6 +61,7 @@ #define OPENPROM_SUPER_MAGIC 0x9fa1 #define QNX4_SUPER_MAGIC 0x002f #define QNX6_SUPER_MAGIC 0x68191122 +#define AFS_FS_MAGIC 0x6B414653 #define REISERFS_SUPER_MAGIC 0x52654973 #define REISERFS_SUPER_MAGIC_STRING "ReIsErFs" #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h index 5192a54a8..0d35c1559 100644 --- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h +++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h @@ -30,7 +30,7 @@ enum ip_conntrack_info { }; #define NF_CT_STATE_INVALID_BIT (1 << 0) #define NF_CT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1)) -#define NF_CT_STATE_UNTRACKED_BIT (1 << (IP_CT_UNTRACKED + 1)) +#define NF_CT_STATE_UNTRACKED_BIT (1 << 6) enum ip_conntrack_status { IPS_EXPECTED_BIT = 0, IPS_EXPECTED = (1 << IPS_EXPECTED_BIT), diff --git a/libc/kernel/uapi/linux/nfc.h b/libc/kernel/uapi/linux/nfc.h index e212b3160..72e352059 100644 --- a/libc/kernel/uapi/linux/nfc.h +++ b/libc/kernel/uapi/linux/nfc.h @@ -54,6 +54,7 @@ enum nfc_commands { NFC_CMD_SE_IO, NFC_CMD_ACTIVATE_TARGET, NFC_CMD_VENDOR, + NFC_CMD_DEACTIVATE_TARGET, __NFC_CMD_AFTER_LAST }; #define NFC_CMD_MAX (__NFC_CMD_AFTER_LAST - 1) diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h index bb9a83510..ebf944861 100644 --- a/libc/kernel/uapi/linux/nl80211.h +++ b/libc/kernel/uapi/linux/nl80211.h @@ -158,6 +158,8 @@ enum nl80211_commands { NL80211_CMD_UPDATE_CONNECT_PARAMS, NL80211_CMD_SET_PMK, NL80211_CMD_DEL_PMK, + NL80211_CMD_PORT_AUTHORIZED, + NL80211_CMD_RELOAD_REGDB, __NL80211_CMD_AFTER_LAST, NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 }; @@ -904,6 +906,7 @@ enum nl80211_key_type { enum nl80211_mfp { NL80211_MFP_NO, NL80211_MFP_REQUIRED, + NL80211_MFP_OPTIONAL, }; enum nl80211_wpa_versions { NL80211_WPA_VERSION_1 = 1 << 0, @@ -1194,6 +1197,11 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_FILS_SK_OFFLOAD, NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK, NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X, + NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME, + NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP, + NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE, + NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION, + NL80211_EXT_FEATURE_MFP_OPTIONAL, NUM_NL80211_EXT_FEATURES, MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1 }; @@ -1218,6 +1226,10 @@ enum nl80211_scan_flags { NL80211_SCAN_FLAG_FLUSH = 1 << 1, NL80211_SCAN_FLAG_AP = 1 << 2, NL80211_SCAN_FLAG_RANDOM_ADDR = 1 << 3, + NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 1 << 4, + NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 1 << 5, + NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 1 << 6, + NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 1 << 7, }; enum nl80211_acl_policy { NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, diff --git a/libc/kernel/uapi/linux/openvswitch.h b/libc/kernel/uapi/linux/openvswitch.h index 724717111..bea44d0bc 100644 --- a/libc/kernel/uapi/linux/openvswitch.h +++ b/libc/kernel/uapi/linux/openvswitch.h @@ -123,6 +123,8 @@ enum ovs_vport_attr { OVS_VPORT_ATTR_UPCALL_PID, OVS_VPORT_ATTR_STATS, OVS_VPORT_ATTR_PAD, + OVS_VPORT_ATTR_IFINDEX, + OVS_VPORT_ATTR_NETNSID, __OVS_VPORT_ATTR_MAX }; #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) @@ -182,6 +184,7 @@ enum ovs_key_attr { OVS_KEY_ATTR_CT_LABELS, OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, + OVS_KEY_ATTR_NSH, __OVS_KEY_ATTR_MAX }; #define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1) @@ -298,6 +301,25 @@ struct ovs_key_ct_tuple_ipv6 { __be16 dst_port; __u8 ipv6_proto; }; +enum ovs_nsh_key_attr { + OVS_NSH_KEY_ATTR_UNSPEC, + OVS_NSH_KEY_ATTR_BASE, + OVS_NSH_KEY_ATTR_MD1, + OVS_NSH_KEY_ATTR_MD2, + __OVS_NSH_KEY_ATTR_MAX +}; +#define OVS_NSH_KEY_ATTR_MAX (__OVS_NSH_KEY_ATTR_MAX - 1) +struct ovs_nsh_key_base { + __u8 flags; + __u8 ttl; + __u8 mdtype; + __u8 np; + __be32 path_hdr; +}; +#define NSH_MD1_CONTEXT_SIZE 4 +struct ovs_nsh_key_md1 { + __be32 context[NSH_MD1_CONTEXT_SIZE]; +}; enum ovs_flow_attr { OVS_FLOW_ATTR_UNSPEC, OVS_FLOW_ATTR_KEY, @@ -398,7 +420,50 @@ enum ovs_action_attr { OVS_ACTION_ATTR_TRUNC, OVS_ACTION_ATTR_PUSH_ETH, OVS_ACTION_ATTR_POP_ETH, + OVS_ACTION_ATTR_CT_CLEAR, + OVS_ACTION_ATTR_PUSH_NSH, + OVS_ACTION_ATTR_POP_NSH, + OVS_ACTION_ATTR_METER, __OVS_ACTION_ATTR_MAX, }; #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) +#define OVS_METER_FAMILY "ovs_meter" +#define OVS_METER_MCGROUP "ovs_meter" +#define OVS_METER_VERSION 0x1 +enum ovs_meter_cmd { + OVS_METER_CMD_UNSPEC, + OVS_METER_CMD_FEATURES, + OVS_METER_CMD_SET, + OVS_METER_CMD_DEL, + OVS_METER_CMD_GET +}; +enum ovs_meter_attr { + OVS_METER_ATTR_UNSPEC, + OVS_METER_ATTR_ID, + OVS_METER_ATTR_KBPS, + OVS_METER_ATTR_STATS, + OVS_METER_ATTR_BANDS, + OVS_METER_ATTR_USED, + OVS_METER_ATTR_CLEAR, + OVS_METER_ATTR_MAX_METERS, + OVS_METER_ATTR_MAX_BANDS, + OVS_METER_ATTR_PAD, + __OVS_METER_ATTR_MAX +}; +#define OVS_METER_ATTR_MAX (__OVS_METER_ATTR_MAX - 1) +enum ovs_band_attr { + OVS_BAND_ATTR_UNSPEC, + OVS_BAND_ATTR_TYPE, + OVS_BAND_ATTR_RATE, + OVS_BAND_ATTR_BURST, + OVS_BAND_ATTR_STATS, + __OVS_BAND_ATTR_MAX +}; +#define OVS_BAND_ATTR_MAX (__OVS_BAND_ATTR_MAX - 1) +enum ovs_meter_band_type { + OVS_METER_BAND_TYPE_UNSPEC, + OVS_METER_BAND_TYPE_DROP, + __OVS_METER_BAND_TYPE_MAX +}; +#define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1) #endif diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h index c7f838105..148f2b403 100644 --- a/libc/kernel/uapi/linux/pci_regs.h +++ b/libc/kernel/uapi/linux/pci_regs.h @@ -640,6 +640,7 @@ #define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 #define PCI_ERR_ROOT_FATAL_RCV 0x00000040 +#define PCI_ERR_ROOT_AER_IRQ 0xf8000000 #define PCI_ERR_ROOT_ERR_SRC 52 #define PCI_VC_PORT_CAP1 4 #define PCI_VC_CAP1_EVCC 0x00000007 @@ -799,9 +800,13 @@ #define PCI_SATA_REGS_INLINE 0xF #define PCI_SATA_SIZEOF_SHORT 8 #define PCI_SATA_SIZEOF_LONG 16 +#define PCI_REBAR_CAP 4 +#define PCI_REBAR_CAP_SIZES 0x00FFFFF0 #define PCI_REBAR_CTRL 8 -#define PCI_REBAR_CTRL_NBAR_MASK (7 << 5) +#define PCI_REBAR_CTRL_BAR_IDX 0x00000007 +#define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 #define PCI_REBAR_CTRL_NBAR_SHIFT 5 +#define PCI_REBAR_CTRL_BAR_SIZE 0x00001F00 #define PCI_DPA_CAP 4 #define PCI_DPA_CAP_SUBSTATE_MASK 0x1F #define PCI_DPA_BASE_SIZEOF 16 @@ -814,6 +819,7 @@ #define PCI_TPH_CAP_ST_SHIFT 16 #define PCI_TPH_BASE_SIZEOF 12 #define PCI_EXP_DPC_CAP 4 +#define PCI_EXP_DPC_IRQ 0x1f #define PCI_EXP_DPC_CAP_RP_EXT 0x20 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 @@ -842,17 +848,23 @@ #define PCI_PTM_CTRL 0x08 #define PCI_PTM_CTRL_ENABLE 0x00000001 #define PCI_PTM_CTRL_ROOT 0x00000002 -#define PCI_L1SS_CAP 4 -#define PCI_L1SS_CAP_PCIPM_L1_2 1 -#define PCI_L1SS_CAP_PCIPM_L1_1 2 -#define PCI_L1SS_CAP_ASPM_L1_2 4 -#define PCI_L1SS_CAP_ASPM_L1_1 8 -#define PCI_L1SS_CAP_L1_PM_SS 16 -#define PCI_L1SS_CTL1 8 -#define PCI_L1SS_CTL1_PCIPM_L1_2 1 -#define PCI_L1SS_CTL1_PCIPM_L1_1 2 -#define PCI_L1SS_CTL1_ASPM_L1_2 4 -#define PCI_L1SS_CTL1_ASPM_L1_1 8 -#define PCI_L1SS_CTL1_L1SS_MASK 0x0000000F -#define PCI_L1SS_CTL2 0xC +#define PCI_L1SS_CAP 0x04 +#define PCI_L1SS_CAP_PCIPM_L1_2 0x00000001 +#define PCI_L1SS_CAP_PCIPM_L1_1 0x00000002 +#define PCI_L1SS_CAP_ASPM_L1_2 0x00000004 +#define PCI_L1SS_CAP_ASPM_L1_1 0x00000008 +#define PCI_L1SS_CAP_L1_PM_SS 0x00000010 +#define PCI_L1SS_CAP_CM_RESTORE_TIME 0x0000ff00 +#define PCI_L1SS_CAP_P_PWR_ON_SCALE 0x00030000 +#define PCI_L1SS_CAP_P_PWR_ON_VALUE 0x00f80000 +#define PCI_L1SS_CTL1 0x08 +#define PCI_L1SS_CTL1_PCIPM_L1_2 0x00000001 +#define PCI_L1SS_CTL1_PCIPM_L1_1 0x00000002 +#define PCI_L1SS_CTL1_ASPM_L1_2 0x00000004 +#define PCI_L1SS_CTL1_ASPM_L1_1 0x00000008 +#define PCI_L1SS_CTL1_L1SS_MASK 0x0000000f +#define PCI_L1SS_CTL1_CM_RESTORE_TIME 0x0000ff00 +#define PCI_L1SS_CTL1_LTR_L12_TH_VALUE 0x03ff0000 +#define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000 +#define PCI_L1SS_CTL2 0x0c #endif diff --git a/libc/kernel/uapi/linux/perf_event.h b/libc/kernel/uapi/linux/perf_event.h index 326827e94..97a2e99a8 100644 --- a/libc/kernel/uapi/linux/perf_event.h +++ b/libc/kernel/uapi/linux/perf_event.h @@ -329,6 +329,7 @@ enum perf_callchain_context { #define PERF_AUX_FLAG_TRUNCATED 0x01 #define PERF_AUX_FLAG_OVERWRITE 0x02 #define PERF_AUX_FLAG_PARTIAL 0x04 +#define PERF_AUX_FLAG_COLLISION 0x08 #define PERF_FLAG_FD_NO_GROUP (1UL << 0) #define PERF_FLAG_FD_OUTPUT (1UL << 1) #define PERF_FLAG_PID_CGROUP (1UL << 2) diff --git a/libc/kernel/uapi/linux/pkt_sched.h b/libc/kernel/uapi/linux/pkt_sched.h index 7d3ff9677..a3f2adf1f 100644 --- a/libc/kernel/uapi/linux/pkt_sched.h +++ b/libc/kernel/uapi/linux/pkt_sched.h @@ -49,6 +49,7 @@ struct tc_estimator { #define TC_H_ROOT (0xFFFFFFFFU) #define TC_H_INGRESS (0xFFFFFFF1U) #define TC_H_CLSACT TC_H_INGRESS +#define TC_H_MIN_PRIORITY 0xFFE0U #define TC_H_MIN_INGRESS 0xFFF2U #define TC_H_MIN_EGRESS 0xFFF3U enum tc_link_layer { @@ -403,6 +404,9 @@ enum { TCA_NETEM_ECN, TCA_NETEM_RATE64, TCA_NETEM_PAD, + TCA_NETEM_LATENCY64, + TCA_NETEM_JITTER64, + TCA_NETEM_SLOT, __TCA_NETEM_MAX, }; #define TCA_NETEM_MAX (__TCA_NETEM_MAX - 1) @@ -433,6 +437,12 @@ struct tc_netem_rate { __u32 cell_size; __s32 cell_overhead; }; +struct tc_netem_slot { + __s64 min_delay; + __s64 max_delay; + __s32 max_packets; + __s32 max_bytes; +}; enum { NETEM_LOSS_UNSPEC, NETEM_LOSS_GI, @@ -472,6 +482,18 @@ enum { __TC_MQPRIO_HW_OFFLOAD_MAX }; #define TC_MQPRIO_HW_OFFLOAD_MAX (__TC_MQPRIO_HW_OFFLOAD_MAX - 1) +enum { + TC_MQPRIO_MODE_DCB, + TC_MQPRIO_MODE_CHANNEL, + __TC_MQPRIO_MODE_MAX +}; +#define __TC_MQPRIO_MODE_MAX (__TC_MQPRIO_MODE_MAX - 1) +enum { + TC_MQPRIO_SHAPER_DCB, + TC_MQPRIO_SHAPER_BW_RATE, + __TC_MQPRIO_SHAPER_MAX +}; +#define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1) struct tc_mqprio_qopt { __u8 num_tc; __u8 prio_tc_map[TC_QOPT_BITMASK + 1]; @@ -479,6 +501,19 @@ struct tc_mqprio_qopt { __u16 count[TC_QOPT_MAX_QUEUE]; __u16 offset[TC_QOPT_MAX_QUEUE]; }; +#define TC_MQPRIO_F_MODE 0x1 +#define TC_MQPRIO_F_SHAPER 0x2 +#define TC_MQPRIO_F_MIN_RATE 0x4 +#define TC_MQPRIO_F_MAX_RATE 0x8 +enum { + TCA_MQPRIO_UNSPEC, + TCA_MQPRIO_MODE, + TCA_MQPRIO_SHAPER, + TCA_MQPRIO_MIN_RATE64, + TCA_MQPRIO_MAX_RATE64, + __TCA_MQPRIO_MAX, +}; +#define TCA_MQPRIO_MAX (__TCA_MQPRIO_MAX - 1) enum { TCA_SFB_UNSPEC, TCA_SFB_PARMS, @@ -654,4 +689,18 @@ struct tc_pie_xstats { __u32 maxq; __u32 ecn_mark; }; +struct tc_cbs_qopt { + __u8 offload; + __u8 _pad[3]; + __s32 hicredit; + __s32 locredit; + __s32 idleslope; + __s32 sendslope; +}; +enum { + TCA_CBS_UNSPEC, + TCA_CBS_PARMS, + __TCA_CBS_MAX, +}; +#define TCA_CBS_MAX (__TCA_CBS_MAX - 1) #endif diff --git a/libc/kernel/uapi/linux/prctl.h b/libc/kernel/uapi/linux/prctl.h index a30fe170a..55098f54c 100644 --- a/libc/kernel/uapi/linux/prctl.h +++ b/libc/kernel/uapi/linux/prctl.h @@ -129,4 +129,9 @@ struct prctl_mm_map { #define PR_CAP_AMBIENT_RAISE 2 #define PR_CAP_AMBIENT_LOWER 3 #define PR_CAP_AMBIENT_CLEAR_ALL 4 +#define PR_SVE_SET_VL 50 +#define PR_SVE_SET_VL_ONEXEC (1 << 18) +#define PR_SVE_GET_VL 51 +#define PR_SVE_VL_LEN_MASK 0xffff +#define PR_SVE_VL_INHERIT (1 << 17) #endif diff --git a/libc/kernel/uapi/linux/qrtr.h b/libc/kernel/uapi/linux/qrtr.h index 4040b4c2e..c0a4c729a 100644 --- a/libc/kernel/uapi/linux/qrtr.h +++ b/libc/kernel/uapi/linux/qrtr.h @@ -20,9 +20,39 @@ #define _LINUX_QRTR_H #include <linux/socket.h> #include <linux/types.h> +#define QRTR_NODE_BCAST 0xffffffffu +#define QRTR_PORT_CTRL 0xfffffffeu struct sockaddr_qrtr { __kernel_sa_family_t sq_family; __u32 sq_node; __u32 sq_port; }; +enum qrtr_pkt_type { + QRTR_TYPE_DATA = 1, + QRTR_TYPE_HELLO = 2, + QRTR_TYPE_BYE = 3, + QRTR_TYPE_NEW_SERVER = 4, + QRTR_TYPE_DEL_SERVER = 5, + QRTR_TYPE_DEL_CLIENT = 6, + QRTR_TYPE_RESUME_TX = 7, + QRTR_TYPE_EXIT = 8, + QRTR_TYPE_PING = 9, + QRTR_TYPE_NEW_LOOKUP = 10, + QRTR_TYPE_DEL_LOOKUP = 11, +}; +struct qrtr_ctrl_pkt { + __le32 cmd; + union { + struct { + __le32 service; + __le32 instance; + __le32 node; + __le32 port; + } server; + struct { + __le32 node; + __le32 port; + } client; + }; +} __packed; #endif diff --git a/libc/kernel/uapi/linux/rtnetlink.h b/libc/kernel/uapi/linux/rtnetlink.h index c363e3467..80ba16eb4 100644 --- a/libc/kernel/uapi/linux/rtnetlink.h +++ b/libc/kernel/uapi/linux/rtnetlink.h @@ -318,6 +318,8 @@ enum { #define RTAX_QUICKACK RTAX_QUICKACK RTAX_CC_ALGO, #define RTAX_CC_ALGO RTAX_CC_ALGO + RTAX_FASTOPEN_NO_COOKIE, +#define RTAX_FASTOPEN_NO_COOKIE RTAX_FASTOPEN_NO_COOKIE __RTAX_MAX }; #define RTAX_MAX (__RTAX_MAX - 1) @@ -402,6 +404,7 @@ enum { TCA_PAD, TCA_DUMP_INVISIBLE, TCA_CHAIN, + TCA_HW_OFFLOAD, __TCA_MAX }; #define TCA_MAX (__TCA_MAX - 1) diff --git a/libc/kernel/uapi/linux/rxrpc.h b/libc/kernel/uapi/linux/rxrpc.h index b8b7b04bf..1690111da 100644 --- a/libc/kernel/uapi/linux/rxrpc.h +++ b/libc/kernel/uapi/linux/rxrpc.h @@ -22,12 +22,12 @@ #include <linux/in.h> #include <linux/in6.h> struct sockaddr_rxrpc { - sa_family_t srx_family; - u16 srx_service; - u16 transport_type; - u16 transport_len; + __kernel_sa_family_t srx_family; + __u16 srx_service; + __u16 transport_type; + __u16 transport_len; union { - sa_family_t family; + __kernel_sa_family_t family; struct sockaddr_in sin; struct sockaddr_in6 sin6; } transport; @@ -50,6 +50,7 @@ enum rxrpc_cmsg_type { RXRPC_EXCLUSIVE_CALL = 10, RXRPC_UPGRADE_SERVICE = 11, RXRPC_TX_LENGTH = 12, + RXRPC_SET_CALL_TIMEOUT = 13, RXRPC__SUPPORTED }; #define RXRPC_SECURITY_PLAIN 0 diff --git a/libc/kernel/uapi/linux/sctp.h b/libc/kernel/uapi/linux/sctp.h index 9a55459b2..cc714ff14 100644 --- a/libc/kernel/uapi/linux/sctp.h +++ b/libc/kernel/uapi/linux/sctp.h @@ -77,6 +77,8 @@ typedef __s32 sctp_assoc_t; #define SCTP_RESET_ASSOC 120 #define SCTP_ADD_STREAMS 121 #define SCTP_SOCKOPT_PEELOFF_FLAGS 122 +#define SCTP_STREAM_SCHEDULER 123 +#define SCTP_STREAM_SCHEDULER_VALUE 124 #define SCTP_PR_SCTP_NONE 0x0000 #define SCTP_PR_SCTP_TTL 0x0010 #define SCTP_PR_SCTP_RTX 0x0020 @@ -443,6 +445,11 @@ struct sctp_assoc_value { sctp_assoc_t assoc_id; uint32_t assoc_value; }; +struct sctp_stream_value { + sctp_assoc_t assoc_id; + uint16_t stream_id; + uint16_t stream_value; +}; struct sctp_paddrinfo { sctp_assoc_t spinfo_assoc_id; struct sockaddr_storage spinfo_address; @@ -616,4 +623,10 @@ struct sctp_add_streams { uint16_t sas_instrms; uint16_t sas_outstrms; }; +enum sctp_sched_type { + SCTP_SS_FCFS, + SCTP_SS_PRIO, + SCTP_SS_RR, + SCTP_SS_MAX = SCTP_SS_RR +}; #endif diff --git a/libc/kernel/uapi/linux/seg6.h b/libc/kernel/uapi/linux/seg6.h index 6f7b8dd1b..f1804851b 100644 --- a/libc/kernel/uapi/linux/seg6.h +++ b/libc/kernel/uapi/linux/seg6.h @@ -27,7 +27,7 @@ struct ipv6_sr_hdr { __u8 segments_left; __u8 first_segment; __u8 flags; - __u16 reserved; + __u16 tag; struct in6_addr segments[0]; }; #define SR6_FLAG1_PROTECTED (1 << 6) diff --git a/libc/kernel/uapi/linux/serial_reg.h b/libc/kernel/uapi/linux/serial_reg.h index 95c99566a..b6648f8ee 100644 --- a/libc/kernel/uapi/linux/serial_reg.h +++ b/libc/kernel/uapi/linux/serial_reg.h @@ -113,6 +113,7 @@ #define UART_SCR 7 #define UART_DLL 0 #define UART_DLM 1 +#define UART_DIV_MAX 0xFFFF #define UART_EFR 2 #define UART_XR_EFR 9 #define UART_EFR_CTS 0x80 diff --git a/libc/kernel/uapi/linux/snmp.h b/libc/kernel/uapi/linux/snmp.h index 467a27af3..b9f0c3e9c 100644 --- a/libc/kernel/uapi/linux/snmp.h +++ b/libc/kernel/uapi/linux/snmp.h @@ -158,7 +158,6 @@ enum { LINUX_MIB_TCPRENORECOVERY, LINUX_MIB_TCPSACKRECOVERY, LINUX_MIB_TCPSACKRENEGING, - LINUX_MIB_TCPFACKREORDER, LINUX_MIB_TCPSACKREORDER, LINUX_MIB_TCPRENOREORDER, LINUX_MIB_TCPTSREORDER, diff --git a/libc/kernel/uapi/linux/stddef.h b/libc/kernel/uapi/linux/stddef.h index a04729b44..2a5fd95ff 100644 --- a/libc/kernel/uapi/linux/stddef.h +++ b/libc/kernel/uapi/linux/stddef.h @@ -16,7 +16,7 @@ *** **************************************************************************** ****************************************************************************/ -#include <linux/compiler.h> +#include <linux/compiler_types.h> #ifndef __always_inline #define __always_inline inline #endif diff --git a/libc/kernel/uapi/linux/tcp.h b/libc/kernel/uapi/linux/tcp.h index 13354e668..0bf9559fc 100644 --- a/libc/kernel/uapi/linux/tcp.h +++ b/libc/kernel/uapi/linux/tcp.h @@ -87,6 +87,8 @@ enum { #define TCP_FASTOPEN_CONNECT 30 #define TCP_ULP 31 #define TCP_MD5SIG_EXT 32 +#define TCP_FASTOPEN_KEY 33 +#define TCP_FASTOPEN_NO_COOKIE 34 struct tcp_repair_opt { __u32 opt_code; __u32 opt_val; diff --git a/libc/kernel/uapi/linux/tipc.h b/libc/kernel/uapi/linux/tipc.h index cf16725ff..b8b4965b3 100644 --- a/libc/kernel/uapi/linux/tipc.h +++ b/libc/kernel/uapi/linux/tipc.h @@ -121,6 +121,16 @@ struct sockaddr_tipc { #define TIPC_SOCK_RECVQ_DEPTH 132 #define TIPC_MCAST_BROADCAST 133 #define TIPC_MCAST_REPLICAST 134 +#define TIPC_GROUP_JOIN 135 +#define TIPC_GROUP_LEAVE 136 +#define TIPC_GROUP_LOOPBACK 0x1 +#define TIPC_GROUP_MEMBER_EVTS 0x2 +struct tipc_group_req { + __u32 type; + __u32 instance; + __u32 scope; + __u32 flags; +}; #define TIPC_MAX_MEDIA_NAME 16 #define TIPC_MAX_IF_NAME 16 #define TIPC_MAX_BEARER_NAME 32 diff --git a/libc/kernel/uapi/linux/tls.h b/libc/kernel/uapi/linux/tls.h index 73618e00d..925cf8007 100644 --- a/libc/kernel/uapi/linux/tls.h +++ b/libc/kernel/uapi/linux/tls.h @@ -19,10 +19,6 @@ #ifndef _UAPI_LINUX_TLS_H #define _UAPI_LINUX_TLS_H #include <linux/types.h> -#include <asm/byteorder.h> -#include <linux/socket.h> -#include <linux/tcp.h> -#include <net/tcp.h> #define TLS_TX 1 #define TLS_VERSION_MINOR(ver) ((ver) & 0xFF) #define TLS_VERSION_MAJOR(ver) (((ver) >> 8) & 0xFF) diff --git a/libc/kernel/uapi/linux/usb/ch9.h b/libc/kernel/uapi/linux/usb/ch9.h index 38e7ae711..a7cf43a8a 100644 --- a/libc/kernel/uapi/linux/usb/ch9.h +++ b/libc/kernel/uapi/linux/usb/ch9.h @@ -79,6 +79,8 @@ #define TEST_SE0_NAK 3 #define TEST_PACKET 4 #define TEST_FORCE_EN 5 +#define USB_STATUS_TYPE_STANDARD 0 +#define USB_STATUS_TYPE_PTM 1 #define USB_DEVICE_U1_ENABLE 48 #define USB_DEVICE_U2_ENABLE 49 #define USB_DEVICE_LTM_ENABLE 50 @@ -367,6 +369,7 @@ struct usb_wireless_cap_descriptor { __le16 bmBandGroup; __u8 bReserved; } __attribute__((packed)); +#define USB_DT_USB_WIRELESS_CAP_SIZE 11 #define USB_CAP_TYPE_EXT 2 struct usb_ext_cap_descriptor { __u8 bLength; @@ -504,6 +507,7 @@ struct usb_ptm_cap_descriptor { __u8 bDescriptorType; __u8 bDevCapabilityType; } __attribute__((packed)); +#define USB_DT_USB_PTM_ID_SIZE 3 #define USB_DT_USB_SSP_CAP_SIZE(ssac) (16 + ssac * 4) struct usb_wireless_ep_comp_descriptor { __u8 bLength; diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h index 7714cb767..70b696327 100644 --- a/libc/kernel/uapi/linux/version.h +++ b/libc/kernel/uapi/linux/version.h @@ -16,5 +16,5 @@ *** **************************************************************************** ****************************************************************************/ -#define LINUX_VERSION_CODE 265728 +#define LINUX_VERSION_CODE 265984 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) diff --git a/libc/kernel/uapi/linux/vm_sockets_diag.h b/libc/kernel/uapi/linux/vm_sockets_diag.h new file mode 100644 index 000000000..2f9840b73 --- /dev/null +++ b/libc/kernel/uapi/linux/vm_sockets_diag.h @@ -0,0 +1,43 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _UAPI__VM_SOCKETS_DIAG_H__ +#define _UAPI__VM_SOCKETS_DIAG_H__ +#include <linux/types.h> +struct vsock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 vdiag_states; + __u32 vdiag_ino; + __u32 vdiag_show; + __u32 vdiag_cookie[2]; +}; +struct vsock_diag_msg { + __u8 vdiag_family; + __u8 vdiag_type; + __u8 vdiag_state; + __u8 vdiag_shutdown; + __u32 vdiag_src_cid; + __u32 vdiag_src_port; + __u32 vdiag_dst_cid; + __u32 vdiag_dst_port; + __u32 vdiag_ino; + __u32 vdiag_cookie[2]; +}; +#endif diff --git a/libc/kernel/uapi/linux/wmi.h b/libc/kernel/uapi/linux/wmi.h new file mode 100644 index 000000000..26f54d9d1 --- /dev/null +++ b/libc/kernel/uapi/linux/wmi.h @@ -0,0 +1,62 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _UAPI_LINUX_WMI_H +#define _UAPI_LINUX_WMI_H +#include <linux/ioctl.h> +#include <linux/types.h> +#define WMI_IOC 'W' +struct wmi_ioctl_buffer { + __u64 length; + __u8 data[]; +}; +struct calling_interface_buffer { + __u16 cmd_class; + __u16 cmd_select; + volatile __u32 input[4]; + volatile __u32 output[4]; +} __packed; +struct dell_wmi_extensions { + __u32 argattrib; + __u32 blength; + __u8 data[]; +} __packed; +struct dell_wmi_smbios_buffer { + __u64 length; + struct calling_interface_buffer std; + struct dell_wmi_extensions ext; +} __packed; +#define CLASS_TOKEN_READ 0 +#define CLASS_TOKEN_WRITE 1 +#define SELECT_TOKEN_STD 0 +#define SELECT_TOKEN_BAT 1 +#define SELECT_TOKEN_AC 2 +#define CLASS_FLASH_INTERFACE 7 +#define SELECT_FLASH_INTERFACE 3 +#define CLASS_ADMIN_PROP 10 +#define SELECT_ADMIN_PROP 3 +#define CLASS_INFO 17 +#define SELECT_RFKILL 11 +#define SELECT_APP_REGISTRATION 3 +#define SELECT_DOCK 22 +#define CAPSULE_EN_TOKEN 0x0461 +#define CAPSULE_DIS_TOKEN 0x0462 +#define WSMT_EN_TOKEN 0x04EC +#define WSMT_DIS_TOKEN 0x04ED +#define DELL_WMI_SMBIOS_CMD _IOWR(WMI_IOC, 0, struct dell_wmi_smbios_buffer) +#endif diff --git a/libc/kernel/uapi/linux/xattr.h b/libc/kernel/uapi/linux/xattr.h index efa99e7e2..7c098f49e 100644 --- a/libc/kernel/uapi/linux/xattr.h +++ b/libc/kernel/uapi/linux/xattr.h @@ -56,6 +56,8 @@ #define XATTR_NAME_SMACKEXEC XATTR_SECURITY_PREFIX XATTR_SMACK_EXEC #define XATTR_NAME_SMACKTRANSMUTE XATTR_SECURITY_PREFIX XATTR_SMACK_TRANSMUTE #define XATTR_NAME_SMACKMMAP XATTR_SECURITY_PREFIX XATTR_SMACK_MMAP +#define XATTR_APPARMOR_SUFFIX "apparmor" +#define XATTR_NAME_APPARMOR XATTR_SECURITY_PREFIX XATTR_APPARMOR_SUFFIX #define XATTR_CAPS_SUFFIX "capability" #define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX #define XATTR_POSIX_ACL_ACCESS "posix_acl_access" diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h index ff3ebcb57..03a2fcde8 100644 --- a/libc/kernel/uapi/rdma/ib_user_verbs.h +++ b/libc/kernel/uapi/rdma/ib_user_verbs.h @@ -75,7 +75,8 @@ enum { IB_USER_VERBS_EX_CMD_MODIFY_WQ, IB_USER_VERBS_EX_CMD_DESTROY_WQ, IB_USER_VERBS_EX_CMD_CREATE_RWQ_IND_TBL, - IB_USER_VERBS_EX_CMD_DESTROY_RWQ_IND_TBL + IB_USER_VERBS_EX_CMD_DESTROY_RWQ_IND_TBL, + IB_USER_VERBS_EX_CMD_MODIFY_CQ }; struct ib_uverbs_async_event_desc { __u64 element; @@ -85,6 +86,11 @@ struct ib_uverbs_async_event_desc { struct ib_uverbs_comp_event_desc { __u64 cq_handle; }; +struct ib_uverbs_cq_moderation_caps { + __u16 max_cq_moderation_count; + __u16 max_cq_moderation_period; + __u32 reserved; +}; #define IB_USER_VERBS_CMD_COMMAND_MASK 0xff #define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u #define IB_USER_VERBS_CMD_FLAGS_SHIFT 24 @@ -194,6 +200,7 @@ struct ib_uverbs_ex_query_device_resp { __u32 max_wq_type_rq; __u32 raw_packet_caps; struct ib_uverbs_tm_caps tm_caps; + struct ib_uverbs_cq_moderation_caps cq_moderation_caps; }; struct ib_uverbs_query_port { __u64 response; @@ -952,5 +959,15 @@ struct ib_uverbs_ex_destroy_rwq_ind_table { __u32 comp_mask; __u32 ind_tbl_handle; }; +struct ib_uverbs_cq_moderation { + __u16 cq_count; + __u16 cq_period; +}; +struct ib_uverbs_ex_modify_cq { + __u32 cq_handle; + __u32 attr_mask; + struct ib_uverbs_cq_moderation attr; + __u32 reserved; +}; #define IB_DEVICE_NAME_MAX 64 #endif diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h index b51ff4e0b..9347cf36f 100644 --- a/libc/kernel/uapi/rdma/mlx5-abi.h +++ b/libc/kernel/uapi/rdma/mlx5-abi.h @@ -23,6 +23,7 @@ enum { MLX5_QP_FLAG_SIGNATURE = 1 << 0, MLX5_QP_FLAG_SCATTER_CQE = 1 << 1, + MLX5_QP_FLAG_TUNNEL_OFFLOADS = 1 << 2, }; enum { MLX5_SRQ_FLAG_SIGNATURE = 1 << 0, @@ -126,6 +127,23 @@ struct mlx5_ib_sw_parsing_caps { __u32 sw_parsing_offloads; __u32 supported_qpts; }; +struct mlx5_ib_striding_rq_caps { + __u32 min_single_stride_log_num_of_bytes; + __u32 max_single_stride_log_num_of_bytes; + __u32 min_single_wqe_log_num_of_strides; + __u32 max_single_wqe_log_num_of_strides; + __u32 supported_qpts; + __u32 reserved; +}; +enum mlx5_ib_query_dev_resp_flags { + MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0, + MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1, +}; +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 +}; struct mlx5_ib_query_device_resp { __u32 comp_mask; __u32 response_length; @@ -134,8 +152,14 @@ struct mlx5_ib_query_device_resp { struct mlx5_ib_cqe_comp_caps cqe_comp_caps; struct mlx5_packet_pacing_caps packet_pacing_caps; __u32 mlx5_ib_support_multi_pkt_send_wqes; - __u32 reserved; + __u32 flags; struct mlx5_ib_sw_parsing_caps sw_parsing_caps; + struct mlx5_ib_striding_rq_caps striding_rq_caps; + __u32 tunnel_offloads_caps; + __u32 reserved; +}; +enum mlx5_ib_create_cq_flags { + MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0, }; struct mlx5_ib_create_cq { __u64 buf_addr; @@ -143,7 +167,7 @@ struct mlx5_ib_create_cq { __u32 cqe_size; __u8 cqe_comp_en; __u8 cqe_comp_res_format; - __u16 reserved; + __u16 flags; }; struct mlx5_ib_create_cq_resp { __u32 cqn; @@ -189,7 +213,8 @@ enum mlx5_rx_hash_fields { MLX5_RX_HASH_SRC_PORT_TCP = 1 << 4, MLX5_RX_HASH_DST_PORT_TCP = 1 << 5, MLX5_RX_HASH_SRC_PORT_UDP = 1 << 6, - MLX5_RX_HASH_DST_PORT_UDP = 1 << 7 + MLX5_RX_HASH_DST_PORT_UDP = 1 << 7, + MLX5_RX_HASH_INNER = 1 << 31 }; struct mlx5_ib_create_qp_rss { __u64 rx_hash_fields_mask; @@ -198,7 +223,7 @@ struct mlx5_ib_create_qp_rss { __u8 reserved[6]; __u8 rx_hash_key[128]; __u32 comp_mask; - __u32 reserved1; + __u32 flags; }; struct mlx5_ib_create_qp_resp { __u32 bfreg_index; @@ -209,6 +234,9 @@ struct mlx5_ib_alloc_mw { __u8 reserved1; __u16 reserved2; }; +enum mlx5_ib_create_wq_mask { + MLX5_IB_CREATE_WQ_STRIDING_RQ = (1 << 0), +}; struct mlx5_ib_create_wq { __u64 buf_addr; __u64 db_addr; @@ -217,7 +245,9 @@ struct mlx5_ib_create_wq { __u32 user_index; __u32 flags; __u32 comp_mask; - __u32 reserved; + __u32 single_stride_log_num_of_bytes; + __u32 single_wqe_log_num_of_strides; + __u32 two_byte_shift_en; }; struct mlx5_ib_create_ah_resp { __u32 response_length; diff --git a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h index 2062366b6..7c13680f5 100644 --- a/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h +++ b/libc/kernel/uapi/rdma/vmw_pvrdma-abi.h @@ -119,6 +119,8 @@ struct pvrdma_resize_cq { }; struct pvrdma_create_srq { __u64 buf_addr; + __u32 buf_size; + __u32 reserved; }; struct pvrdma_create_srq_resp { __u32 srqn; |