diff options
Diffstat (limited to 'libc/kernel')
94 files changed, 1343 insertions, 61 deletions
diff --git a/libc/kernel/tools/cpp.py b/libc/kernel/tools/cpp.py index b6a153881..8538eb006 100755 --- a/libc/kernel/tools/cpp.py +++ b/libc/kernel/tools/cpp.py @@ -267,7 +267,7 @@ class CppTokenizer(object): def parseString(self, lines): """Parse a list of text lines into a BlockList object.""" - file_ = 'dummy.c' + file_ = 'no-filename-available.c' self._tu = self._indexer.parse(file_, self.clang_flags, unsaved_files=[(file_, lines)], options=self.options) diff --git a/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/libc/kernel/uapi/asm-arm/asm/unistd-common.h index 261328e73..57843994a 100644 --- a/libc/kernel/uapi/asm-arm/asm/unistd-common.h +++ b/libc/kernel/uapi/asm-arm/asm/unistd-common.h @@ -409,4 +409,5 @@ #define __NR_clone3 (__NR_SYSCALL_BASE + 435) #define __NR_openat2 (__NR_SYSCALL_BASE + 437) #define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438) +#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439) #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/libc/kernel/uapi/asm-arm64/asm/hwcap.h index ebe2fa417..dcca79b76 100644 --- a/libc/kernel/uapi/asm-arm64/asm/hwcap.h +++ b/libc/kernel/uapi/asm-arm64/asm/hwcap.h @@ -67,4 +67,5 @@ #define HWCAP2_BF16 (1 << 14) #define HWCAP2_DGH (1 << 15) #define HWCAP2_RNG (1 << 16) +#define HWCAP2_BTI (1 << 17) #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/mman.h b/libc/kernel/uapi/asm-arm64/asm/mman.h index 6c23fb647..ed77d0939 100644 --- a/libc/kernel/uapi/asm-arm64/asm/mman.h +++ b/libc/kernel/uapi/asm-arm64/asm/mman.h @@ -16,4 +16,8 @@ *** **************************************************************************** ****************************************************************************/ +#ifndef _UAPI__ASM_MMAN_H +#define _UAPI__ASM_MMAN_H #include <asm-generic/mman.h> +#define PROT_BTI 0x10 +#endif diff --git a/libc/kernel/uapi/asm-arm64/asm/ptrace.h b/libc/kernel/uapi/asm-arm64/asm/ptrace.h index 23ab4070d..31ba1177a 100644 --- a/libc/kernel/uapi/asm-arm64/asm/ptrace.h +++ b/libc/kernel/uapi/asm-arm64/asm/ptrace.h @@ -34,6 +34,7 @@ #define PSR_I_BIT 0x00000080 #define PSR_A_BIT 0x00000100 #define PSR_D_BIT 0x00000200 +#define PSR_BTYPE_MASK 0x00000c00 #define PSR_SSBS_BIT 0x00001000 #define PSR_PAN_BIT 0x00400000 #define PSR_UAO_BIT 0x00800000 @@ -42,10 +43,15 @@ #define PSR_C_BIT 0x20000000 #define PSR_Z_BIT 0x40000000 #define PSR_N_BIT 0x80000000 +#define PSR_BTYPE_SHIFT 10 #define PSR_f 0xff000000 #define PSR_s 0x00ff0000 #define PSR_x 0x0000ff00 #define PSR_c 0x000000ff +#define PSR_BTYPE_NONE (0b00 << PSR_BTYPE_SHIFT) +#define PSR_BTYPE_JC (0b01 << PSR_BTYPE_SHIFT) +#define PSR_BTYPE_C (0b10 << PSR_BTYPE_SHIFT) +#define PSR_BTYPE_J (0b11 << PSR_BTYPE_SHIFT) #define PTRACE_SYSEMU 31 #define PTRACE_SYSEMU_SINGLESTEP 32 #ifndef __ASSEMBLY__ diff --git a/libc/kernel/uapi/asm-generic/unistd.h b/libc/kernel/uapi/asm-generic/unistd.h index 1b85b306f..efb5218f4 100644 --- a/libc/kernel/uapi/asm-generic/unistd.h +++ b/libc/kernel/uapi/asm-generic/unistd.h @@ -398,8 +398,9 @@ #endif #define __NR_openat2 437 #define __NR_pidfd_getfd 438 +#define __NR_faccessat2 439 #undef __NR_syscalls -#define __NR_syscalls 439 +#define __NR_syscalls 440 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT) #define __NR_fcntl __NR3264_fcntl #define __NR_statfs __NR3264_statfs diff --git a/libc/kernel/uapi/asm-x86/asm/kvm.h b/libc/kernel/uapi/asm-x86/asm/kvm.h index 1e88a69c3..58a20ce74 100644 --- a/libc/kernel/uapi/asm-x86/asm/kvm.h +++ b/libc/kernel/uapi/asm-x86/asm/kvm.h @@ -325,9 +325,12 @@ struct kvm_sync_regs { #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 #define KVM_STATE_NESTED_EVMCS 0x00000004 #define KVM_STATE_NESTED_MTF_PENDING 0x00000008 +#define KVM_STATE_NESTED_GIF_SET 0x00000100 #define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 #define KVM_STATE_NESTED_SMM_VMXON 0x00000002 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000 +#define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000 +#define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001 struct kvm_vmx_nested_state_data { __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; @@ -338,6 +341,14 @@ struct kvm_vmx_nested_state_hdr { struct { __u16 flags; } smm; + __u32 flags; + __u64 preemption_timer_deadline; +}; +struct kvm_svm_nested_state_data { + __u8 vmcb12[KVM_STATE_NESTED_SVM_VMCB_SIZE]; +}; +struct kvm_svm_nested_state_hdr { + __u64 vmcb_pa; }; struct kvm_nested_state { __u16 flags; @@ -345,10 +356,12 @@ struct kvm_nested_state { __u32 size; union { struct kvm_vmx_nested_state_hdr vmx; + struct kvm_svm_nested_state_hdr svm; __u8 pad[120]; } hdr; union { struct kvm_vmx_nested_state_data vmx[0]; + struct kvm_svm_nested_state_data svm[0]; } data; }; struct kvm_pmu_event_filter { diff --git a/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/libc/kernel/uapi/asm-x86/asm/kvm_para.h index ad8fe0b05..835276163 100644 --- a/libc/kernel/uapi/asm-x86/asm/kvm_para.h +++ b/libc/kernel/uapi/asm-x86/asm/kvm_para.h @@ -34,6 +34,7 @@ #define KVM_FEATURE_PV_SEND_IPI 11 #define KVM_FEATURE_POLL_CONTROL 12 #define KVM_FEATURE_PV_SCHED_YIELD 13 +#define KVM_FEATURE_ASYNC_PF_INT 14 #define KVM_HINTS_REALTIME 0 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24 #define MSR_KVM_WALL_CLOCK 0x11 @@ -45,6 +46,8 @@ #define MSR_KVM_STEAL_TIME 0x4b564d03 #define MSR_KVM_PV_EOI_EN 0x4b564d04 #define MSR_KVM_POLL_CONTROL 0x4b564d05 +#define MSR_KVM_ASYNC_PF_INT 0x4b564d06 +#define MSR_KVM_ASYNC_PF_ACK 0x4b564d07 struct kvm_steal_time { __u64 steal; __u32 version; @@ -70,6 +73,8 @@ struct kvm_clock_pairing { #define KVM_ASYNC_PF_ENABLED (1 << 0) #define KVM_ASYNC_PF_SEND_ALWAYS (1 << 1) #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2) +#define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3) +#define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0) #define KVM_MMU_OP_WRITE_PTE 1 #define KVM_MMU_OP_FLUSH_TLB 2 #define KVM_MMU_OP_RELEASE_PT 3 @@ -92,8 +97,9 @@ struct kvm_mmu_op_release_pt { #define KVM_PV_REASON_PAGE_NOT_PRESENT 1 #define KVM_PV_REASON_PAGE_READY 2 struct kvm_vcpu_pv_apf_data { - __u32 reason; - __u8 pad[60]; + __u32 flags; + __u32 token; + __u8 pad[56]; __u32 enabled; }; #define KVM_PV_EOI_BIT 0 diff --git a/libc/kernel/uapi/asm-x86/asm/mce.h b/libc/kernel/uapi/asm-x86/asm/mce.h index 4a3230c4a..359af5710 100644 --- a/libc/kernel/uapi/asm-x86/asm/mce.h +++ b/libc/kernel/uapi/asm-x86/asm/mce.h @@ -45,6 +45,7 @@ struct mce { __u64 ipid; __u64 ppin; __u32 microcode; + __u64 kflags; }; #define MCE_GET_RECORD_LEN _IOR('M', 1, int) #define MCE_GET_LOG_LEN _IOR('M', 2, int) diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/libc/kernel/uapi/asm-x86/asm/unistd_32.h index bbb0a6c6f..a3256c09e 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_32.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_32.h @@ -445,4 +445,5 @@ #define __NR_clone3 435 #define __NR_openat2 437 #define __NR_pidfd_getfd 438 +#define __NR_faccessat2 439 #endif diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/libc/kernel/uapi/asm-x86/asm/unistd_64.h index 6a59d7842..9c12a3d2b 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_64.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_64.h @@ -367,4 +367,5 @@ #define __NR_clone3 435 #define __NR_openat2 437 #define __NR_pidfd_getfd 438 +#define __NR_faccessat2 439 #endif diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h index e674447c5..5f92cfdbe 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h @@ -320,6 +320,7 @@ #define __NR_clone3 (__X32_SYSCALL_BIT + 435) #define __NR_openat2 (__X32_SYSCALL_BIT + 437) #define __NR_pidfd_getfd (__X32_SYSCALL_BIT + 438) +#define __NR_faccessat2 (__X32_SYSCALL_BIT + 439) #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) #define __NR_ioctl (__X32_SYSCALL_BIT + 514) diff --git a/libc/kernel/uapi/asm-x86/asm/vmx.h b/libc/kernel/uapi/asm-x86/asm/vmx.h index a0c748d72..47d5fb2d2 100644 --- a/libc/kernel/uapi/asm-x86/asm/vmx.h +++ b/libc/kernel/uapi/asm-x86/asm/vmx.h @@ -79,6 +79,7 @@ #define EXIT_REASON_UMWAIT 67 #define EXIT_REASON_TPAUSE 68 #define VMX_EXIT_REASONS { EXIT_REASON_EXCEPTION_NMI, "EXCEPTION_NMI" }, { EXIT_REASON_EXTERNAL_INTERRUPT, "EXTERNAL_INTERRUPT" }, { EXIT_REASON_TRIPLE_FAULT, "TRIPLE_FAULT" }, { EXIT_REASON_INIT_SIGNAL, "INIT_SIGNAL" }, { EXIT_REASON_INTERRUPT_WINDOW, "INTERRUPT_WINDOW" }, { EXIT_REASON_NMI_WINDOW, "NMI_WINDOW" }, { EXIT_REASON_TASK_SWITCH, "TASK_SWITCH" }, { EXIT_REASON_CPUID, "CPUID" }, { EXIT_REASON_HLT, "HLT" }, { EXIT_REASON_INVD, "INVD" }, { EXIT_REASON_INVLPG, "INVLPG" }, { EXIT_REASON_RDPMC, "RDPMC" }, { EXIT_REASON_RDTSC, "RDTSC" }, { EXIT_REASON_VMCALL, "VMCALL" }, { EXIT_REASON_VMCLEAR, "VMCLEAR" }, { EXIT_REASON_VMLAUNCH, "VMLAUNCH" }, { EXIT_REASON_VMPTRLD, "VMPTRLD" }, { EXIT_REASON_VMPTRST, "VMPTRST" }, { EXIT_REASON_VMREAD, "VMREAD" }, { EXIT_REASON_VMRESUME, "VMRESUME" }, { EXIT_REASON_VMWRITE, "VMWRITE" }, { EXIT_REASON_VMOFF, "VMOFF" }, { EXIT_REASON_VMON, "VMON" }, { EXIT_REASON_CR_ACCESS, "CR_ACCESS" }, { EXIT_REASON_DR_ACCESS, "DR_ACCESS" }, { EXIT_REASON_IO_INSTRUCTION, "IO_INSTRUCTION" }, { EXIT_REASON_MSR_READ, "MSR_READ" }, { EXIT_REASON_MSR_WRITE, "MSR_WRITE" }, { EXIT_REASON_INVALID_STATE, "INVALID_STATE" }, { EXIT_REASON_MSR_LOAD_FAIL, "MSR_LOAD_FAIL" }, { EXIT_REASON_MWAIT_INSTRUCTION, "MWAIT_INSTRUCTION" }, { EXIT_REASON_MONITOR_TRAP_FLAG, "MONITOR_TRAP_FLAG" }, { EXIT_REASON_MONITOR_INSTRUCTION, "MONITOR_INSTRUCTION" }, { EXIT_REASON_PAUSE_INSTRUCTION, "PAUSE_INSTRUCTION" }, { EXIT_REASON_MCE_DURING_VMENTRY, "MCE_DURING_VMENTRY" }, { EXIT_REASON_TPR_BELOW_THRESHOLD, "TPR_BELOW_THRESHOLD" }, { EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, { EXIT_REASON_EOI_INDUCED, "EOI_INDUCED" }, { EXIT_REASON_GDTR_IDTR, "GDTR_IDTR" }, { EXIT_REASON_LDTR_TR, "LDTR_TR" }, { EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, { EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, { EXIT_REASON_INVEPT, "INVEPT" }, { EXIT_REASON_RDTSCP, "RDTSCP" }, { EXIT_REASON_PREEMPTION_TIMER, "PREEMPTION_TIMER" }, { EXIT_REASON_INVVPID, "INVVPID" }, { EXIT_REASON_WBINVD, "WBINVD" }, { EXIT_REASON_XSETBV, "XSETBV" }, { EXIT_REASON_APIC_WRITE, "APIC_WRITE" }, { EXIT_REASON_RDRAND, "RDRAND" }, { EXIT_REASON_INVPCID, "INVPCID" }, { EXIT_REASON_VMFUNC, "VMFUNC" }, { EXIT_REASON_ENCLS, "ENCLS" }, { EXIT_REASON_RDSEED, "RDSEED" }, { EXIT_REASON_PML_FULL, "PML_FULL" }, { EXIT_REASON_XSAVES, "XSAVES" }, { EXIT_REASON_XRSTORS, "XRSTORS" }, { EXIT_REASON_UMWAIT, "UMWAIT" }, { EXIT_REASON_TPAUSE, "TPAUSE" } +#define VMX_EXIT_REASON_FLAGS { VMX_EXIT_REASONS_FAILED_VMENTRY, "FAILED_VMENTRY" } #define VMX_ABORT_SAVE_GUEST_MSR_FAIL 1 #define VMX_ABORT_LOAD_HOST_PDPTE_FAIL 2 #define VMX_ABORT_LOAD_HOST_MSR_FAIL 4 diff --git a/libc/kernel/uapi/drm/amdgpu_drm.h b/libc/kernel/uapi/drm/amdgpu_drm.h index 429d97813..91d0a7e02 100644 --- a/libc/kernel/uapi/drm/amdgpu_drm.h +++ b/libc/kernel/uapi/drm/amdgpu_drm.h @@ -71,6 +71,7 @@ extern "C" { #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7) #define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8) #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9) +#define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10) struct drm_amdgpu_gem_create_in { __u64 bo_size; __u64 alignment; @@ -344,7 +345,7 @@ struct drm_amdgpu_cs_in { __u32 ctx_id; __u32 bo_list_handle; __u32 num_chunks; - __u32 _pad; + __u32 flags; __u64 chunks; }; struct drm_amdgpu_cs_out { @@ -359,6 +360,8 @@ union drm_amdgpu_cs { #define AMDGPU_IB_FLAG_PREEMPT (1 << 2) #define AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE (1 << 3) #define AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID (1 << 4) +#define AMDGPU_IB_FLAGS_SECURE (1 << 5) +#define AMDGPU_IB_FLAG_EMIT_MEM_SYNC (1 << 6) struct drm_amdgpu_cs_chunk_ib { __u32 _pad; __u32 flags; diff --git a/libc/kernel/uapi/drm/drm_fourcc.h b/libc/kernel/uapi/drm/drm_fourcc.h index 898d9adf9..0ea5c83f6 100644 --- a/libc/kernel/uapi/drm/drm_fourcc.h +++ b/libc/kernel/uapi/drm/drm_fourcc.h @@ -158,13 +158,14 @@ extern "C" { #define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED fourcc_mod_code(VIVANTE, 3) #define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4) #define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1) -#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) fourcc_mod_code(NVIDIA, 0x10 | ((v) & 0xf)) -#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_ONE_GOB fourcc_mod_code(NVIDIA, 0x10) -#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_TWO_GOB fourcc_mod_code(NVIDIA, 0x11) -#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_FOUR_GOB fourcc_mod_code(NVIDIA, 0x12) -#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_EIGHT_GOB fourcc_mod_code(NVIDIA, 0x13) -#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_SIXTEEN_GOB fourcc_mod_code(NVIDIA, 0x14) -#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB fourcc_mod_code(NVIDIA, 0x15) +#define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c,s,g,k,h) fourcc_mod_code(NVIDIA, (0x10 | ((h) & 0xf) | (((k) & 0xff) << 12) | (((g) & 0x3) << 20) | (((s) & 0x1) << 22) | (((c) & 0x7) << 23))) +#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 0, 0, 0, (v)) +#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_ONE_GOB DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(0) +#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_TWO_GOB DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(1) +#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_FOUR_GOB DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(2) +#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_EIGHT_GOB DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(3) +#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_SIXTEEN_GOB DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(4) +#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(5) #define __fourcc_mod_broadcom_param_shift 8 #define __fourcc_mod_broadcom_param_bits 48 #define fourcc_mod_broadcom_code(val,params) fourcc_mod_code(BROADCOM, ((((__u64) params) << __fourcc_mod_broadcom_param_shift) | val)) diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h index 41b4dda70..001ebd5a3 100644 --- a/libc/kernel/uapi/drm/i915_drm.h +++ b/libc/kernel/uapi/drm/i915_drm.h @@ -836,6 +836,8 @@ enum drm_i915_perf_property_id { DRM_I915_PERF_PROP_OA_FORMAT, DRM_I915_PERF_PROP_OA_EXPONENT, DRM_I915_PERF_PROP_HOLD_PREEMPTION, + DRM_I915_PERF_PROP_GLOBAL_SSEU, + DRM_I915_PERF_PROP_POLL_OA_PERIOD, DRM_I915_PERF_PROP_MAX }; struct drm_i915_perf_open_param { diff --git a/libc/kernel/uapi/drm/msm_drm.h b/libc/kernel/uapi/drm/msm_drm.h index 3c1b734b2..fcfcc20f9 100644 --- a/libc/kernel/uapi/drm/msm_drm.h +++ b/libc/kernel/uapi/drm/msm_drm.h @@ -114,7 +114,16 @@ struct drm_msm_gem_submit_bo { #define MSM_SUBMIT_FENCE_FD_IN 0x40000000 #define MSM_SUBMIT_FENCE_FD_OUT 0x20000000 #define MSM_SUBMIT_SUDO 0x10000000 -#define MSM_SUBMIT_FLAGS (MSM_SUBMIT_NO_IMPLICIT | MSM_SUBMIT_FENCE_FD_IN | MSM_SUBMIT_FENCE_FD_OUT | MSM_SUBMIT_SUDO | 0) +#define MSM_SUBMIT_SYNCOBJ_IN 0x08000000 +#define MSM_SUBMIT_SYNCOBJ_OUT 0x04000000 +#define MSM_SUBMIT_FLAGS (MSM_SUBMIT_NO_IMPLICIT | MSM_SUBMIT_FENCE_FD_IN | MSM_SUBMIT_FENCE_FD_OUT | MSM_SUBMIT_SUDO | MSM_SUBMIT_SYNCOBJ_IN | MSM_SUBMIT_SYNCOBJ_OUT | 0) +#define MSM_SUBMIT_SYNCOBJ_RESET 0x00000001 +#define MSM_SUBMIT_SYNCOBJ_FLAGS (MSM_SUBMIT_SYNCOBJ_RESET | 0) +struct drm_msm_gem_submit_syncobj { + __u32 handle; + __u32 flags; + __u64 point; +}; struct drm_msm_gem_submit { __u32 flags; __u32 fence; @@ -124,6 +133,12 @@ struct drm_msm_gem_submit { __u64 cmds; __s32 fence_fd; __u32 queueid; + __u64 in_syncobjs; + __u64 out_syncobjs; + __u32 nr_in_syncobjs; + __u32 nr_out_syncobjs; + __u32 syncobj_stride; + __u32 pad; }; struct drm_msm_wait_fence { __u32 fence; diff --git a/libc/kernel/uapi/linux/audit.h b/libc/kernel/uapi/linux/audit.h index a4bb3b511..d7f1e0413 100644 --- a/libc/kernel/uapi/linux/audit.h +++ b/libc/kernel/uapi/linux/audit.h @@ -82,6 +82,7 @@ #define AUDIT_TIME_INJOFFSET 1332 #define AUDIT_TIME_ADJNTPVAL 1333 #define AUDIT_BPF 1334 +#define AUDIT_EVENT_LISTENER 1335 #define AUDIT_AVC 1400 #define AUDIT_SELINUX_ERR 1401 #define AUDIT_AVC_PATH 1402 diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h index 815fd6a31..54b784947 100644 --- a/libc/kernel/uapi/linux/bpf.h +++ b/libc/kernel/uapi/linux/bpf.h @@ -101,6 +101,10 @@ enum bpf_cmd { BPF_MAP_DELETE_BATCH, BPF_LINK_CREATE, BPF_LINK_UPDATE, + BPF_LINK_GET_FD_BY_ID, + BPF_LINK_GET_NEXT_ID, + BPF_ENABLE_STATS, + BPF_ITER_CREATE, }; enum bpf_map_type { BPF_MAP_TYPE_UNSPEC, @@ -130,6 +134,7 @@ enum bpf_map_type { BPF_MAP_TYPE_SK_STORAGE, BPF_MAP_TYPE_DEVMAP_HASH, BPF_MAP_TYPE_STRUCT_OPS, + BPF_MAP_TYPE_RINGBUF, }; enum bpf_prog_type { BPF_PROG_TYPE_UNSPEC, @@ -192,9 +197,24 @@ enum bpf_attach_type { BPF_TRACE_FEXIT, BPF_MODIFY_RETURN, BPF_LSM_MAC, + BPF_TRACE_ITER, + BPF_CGROUP_INET4_GETPEERNAME, + BPF_CGROUP_INET6_GETPEERNAME, + BPF_CGROUP_INET4_GETSOCKNAME, + BPF_CGROUP_INET6_GETSOCKNAME, + BPF_XDP_DEVMAP, __MAX_BPF_ATTACH_TYPE }; #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + MAX_BPF_LINK_TYPE, +}; #define BPF_F_ALLOW_OVERRIDE (1U << 0) #define BPF_F_ALLOW_MULTI (1U << 1) #define BPF_F_REPLACE (1U << 2) @@ -225,6 +245,9 @@ enum { BPF_F_MMAPABLE = (1U << 10), }; #define BPF_F_QUERY_EFFECTIVE (1U << 0) +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, +}; enum bpf_stack_build_id_status { BPF_STACK_BUILD_ID_EMPTY = 0, BPF_STACK_BUILD_ID_VALID = 1, @@ -330,6 +353,7 @@ union bpf_attr { __u32 prog_id; __u32 map_id; __u32 btf_id; + __u32 link_id; }; __u32 next_id; __u32 open_flags; @@ -381,8 +405,15 @@ union bpf_attr { __u32 flags; __u32 old_prog_fd; } link_update; + struct { + __u32 type; + } enable_stats; + struct { + __u32 link_fd; + __u32 flags; + } iter_create; } __attribute__((aligned(8))); -#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), +#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x enum bpf_func_id { __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID, @@ -427,11 +458,18 @@ enum { BPF_F_CURRENT_NETNS = (- 1L), }; enum { + BPF_CSUM_LEVEL_QUERY, + BPF_CSUM_LEVEL_INC, + BPF_CSUM_LEVEL_DEC, + BPF_CSUM_LEVEL_RESET, +}; +enum { BPF_F_ADJ_ROOM_FIXED_GSO = (1ULL << 0), BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = (1ULL << 1), BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = (1ULL << 2), BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3), BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4), + BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5), }; enum { BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff, @@ -447,6 +485,21 @@ enum { enum { BPF_F_GET_BRANCH_RECORDS_SIZE = (1ULL << 0), }; +enum { + BPF_RB_NO_WAKEUP = (1ULL << 0), + BPF_RB_FORCE_WAKEUP = (1ULL << 1), +}; +enum { + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, +}; +enum { + BPF_RINGBUF_BUSY_BIT = (1U << 31), + BPF_RINGBUF_DISCARD_BIT = (1U << 30), + BPF_RINGBUF_HDR_SZ = 8, +}; enum bpf_adj_room_mode { BPF_ADJ_ROOM_NET, BPF_ADJ_ROOM_MAC, @@ -537,6 +590,7 @@ struct bpf_sock { __u32 dst_ip4; __u32 dst_ip6[4]; __u32 state; + __s32 rx_queue_mapping; }; struct bpf_tcp_sock { __u32 snd_cwnd; @@ -599,6 +653,14 @@ struct xdp_md { __u32 data_meta; __u32 ingress_ifindex; __u32 rx_queue_index; + __u32 egress_ifindex; +}; +struct bpf_devmap_val { + __u32 ifindex; + union { + int fd; + __u32 id; + } bpf_prog; }; enum sk_action { SK_DROP = 0, @@ -615,6 +677,7 @@ struct sk_msg_md { __u32 remote_port; __u32 local_port; __u32 size; + __bpf_md_ptr(struct bpf_sock *, sk); }; struct sk_reuseport_md { __bpf_md_ptr(void *, data); @@ -684,6 +747,28 @@ struct bpf_btf_info { __u32 btf_size; __u32 id; } __attribute__((aligned(8))); +struct bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; + union { + struct { + __aligned_u64 tp_name; + __u32 tp_name_len; + } raw_tracepoint; + struct { + __u32 attach_type; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + } cgroup; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + }; +} __attribute__((aligned(8))); struct bpf_sock_addr { __u32 user_family; __u32 user_ip4; diff --git a/libc/kernel/uapi/linux/btrfs_tree.h b/libc/kernel/uapi/linux/btrfs_tree.h index 50ada3605..60491273a 100644 --- a/libc/kernel/uapi/linux/btrfs_tree.h +++ b/libc/kernel/uapi/linux/btrfs_tree.h @@ -201,12 +201,6 @@ struct btrfs_extent_inline_ref { __u8 type; __le64 offset; } __attribute__((__packed__)); -struct btrfs_extent_ref_v0 { - __le64 root; - __le64 generation; - __le64 objectid; - __le32 count; -} __attribute__((__packed__)); struct btrfs_dev_extent { __le64 chunk_tree; __le64 chunk_objectid; diff --git a/libc/kernel/uapi/linux/capability.h b/libc/kernel/uapi/linux/capability.h index 8ba448eb0..b830fd682 100644 --- a/libc/kernel/uapi/linux/capability.h +++ b/libc/kernel/uapi/linux/capability.h @@ -105,7 +105,9 @@ struct vfs_ns_cap_data { #define CAP_WAKE_ALARM 35 #define CAP_BLOCK_SUSPEND 36 #define CAP_AUDIT_READ 37 -#define CAP_LAST_CAP CAP_AUDIT_READ +#define CAP_PERFMON 38 +#define CAP_BPF 39 +#define CAP_LAST_CAP CAP_BPF #define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP) #define CAP_TO_INDEX(x) ((x) >> 5) #define CAP_TO_MASK(x) (1 << ((x) & 31)) diff --git a/libc/kernel/uapi/linux/devlink.h b/libc/kernel/uapi/linux/devlink.h index 18f7da508..7730a45fd 100644 --- a/libc/kernel/uapi/linux/devlink.h +++ b/libc/kernel/uapi/linux/devlink.h @@ -166,10 +166,12 @@ enum { enum devlink_trap_action { DEVLINK_TRAP_ACTION_DROP, DEVLINK_TRAP_ACTION_TRAP, + DEVLINK_TRAP_ACTION_MIRROR, }; enum devlink_trap_type { DEVLINK_TRAP_TYPE_DROP, DEVLINK_TRAP_TYPE_EXCEPTION, + DEVLINK_TRAP_TYPE_CONTROL, }; enum { DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT, diff --git a/libc/kernel/uapi/linux/elf.h b/libc/kernel/uapi/linux/elf.h index 8f2e6688c..428da6330 100644 --- a/libc/kernel/uapi/linux/elf.h +++ b/libc/kernel/uapi/linux/elf.h @@ -46,6 +46,7 @@ typedef __s64 Elf64_Sxword; #define PT_LOPROC 0x70000000 #define PT_HIPROC 0x7fffffff #define PT_GNU_EH_FRAME 0x6474e550 +#define PT_GNU_PROPERTY 0x6474e553 #define PT_GNU_STACK (PT_LOOS + 0x474e551) #define PN_XNUM 0xffff #define ET_NONE 0 @@ -363,6 +364,7 @@ typedef struct elf64_shdr { #define NT_MIPS_DSP 0x800 #define NT_MIPS_FP_MODE 0x801 #define NT_MIPS_MSA 0x802 +#define NT_GNU_PROPERTY_TYPE_0 5 typedef struct elf32_note { Elf32_Word n_namesz; Elf32_Word n_descsz; @@ -373,4 +375,6 @@ typedef struct elf64_note { Elf64_Word n_descsz; Elf64_Word n_type; } Elf64_Nhdr; +#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000 +#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0) #endif diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h index 8733bca2d..9f8678a81 100644 --- a/libc/kernel/uapi/linux/ethtool.h +++ b/libc/kernel/uapi/linux/ethtool.h @@ -709,6 +709,17 @@ enum ethtool_link_mode_bit_indices { #define DUPLEX_HALF 0x00 #define DUPLEX_FULL 0x01 #define DUPLEX_UNKNOWN 0xff +#define MASTER_SLAVE_CFG_UNSUPPORTED 0 +#define MASTER_SLAVE_CFG_UNKNOWN 1 +#define MASTER_SLAVE_CFG_MASTER_PREFERRED 2 +#define MASTER_SLAVE_CFG_SLAVE_PREFERRED 3 +#define MASTER_SLAVE_CFG_MASTER_FORCE 4 +#define MASTER_SLAVE_CFG_SLAVE_FORCE 5 +#define MASTER_SLAVE_STATE_UNSUPPORTED 0 +#define MASTER_SLAVE_STATE_UNKNOWN 1 +#define MASTER_SLAVE_STATE_MASTER 2 +#define MASTER_SLAVE_STATE_SLAVE 3 +#define MASTER_SLAVE_STATE_ERR 4 #define PORT_TP 0x00 #define PORT_AUI 0x01 #define PORT_MII 0x02 @@ -808,7 +819,9 @@ struct ethtool_link_settings { __u8 eth_tp_mdix_ctrl; __s8 link_mode_masks_nwords; __u8 transceiver; - __u8 reserved1[3]; + __u8 master_slave_cfg; + __u8 master_slave_state; + __u8 reserved1[1]; __u32 reserved[7]; __u32 link_mode_masks[0]; }; diff --git a/libc/kernel/uapi/linux/ethtool_netlink.h b/libc/kernel/uapi/linux/ethtool_netlink.h index 52d435e8c..868d3c64e 100644 --- a/libc/kernel/uapi/linux/ethtool_netlink.h +++ b/libc/kernel/uapi/linux/ethtool_netlink.h @@ -46,6 +46,8 @@ enum { ETHTOOL_MSG_EEE_GET, ETHTOOL_MSG_EEE_SET, ETHTOOL_MSG_TSINFO_GET, + ETHTOOL_MSG_CABLE_TEST_ACT, + ETHTOOL_MSG_CABLE_TEST_TDR_ACT, __ETHTOOL_MSG_USER_CNT, ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1 }; @@ -77,6 +79,8 @@ enum { ETHTOOL_MSG_EEE_GET_REPLY, ETHTOOL_MSG_EEE_NTF, ETHTOOL_MSG_TSINFO_GET_REPLY, + ETHTOOL_MSG_CABLE_TEST_NTF, + ETHTOOL_MSG_CABLE_TEST_TDR_NTF, __ETHTOOL_MSG_KERNEL_CNT, ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1 }; @@ -169,6 +173,8 @@ enum { ETHTOOL_A_LINKMODES_PEER, ETHTOOL_A_LINKMODES_SPEED, ETHTOOL_A_LINKMODES_DUPLEX, + ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, + ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, __ETHTOOL_A_LINKMODES_CNT, ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1 }; @@ -176,6 +182,8 @@ enum { ETHTOOL_A_LINKSTATE_UNSPEC, ETHTOOL_A_LINKSTATE_HEADER, ETHTOOL_A_LINKSTATE_LINK, + ETHTOOL_A_LINKSTATE_SQI, + ETHTOOL_A_LINKSTATE_SQI_MAX, __ETHTOOL_A_LINKSTATE_CNT, ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1 }; @@ -298,6 +306,112 @@ enum { __ETHTOOL_A_TSINFO_CNT, ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1) }; +enum { + ETHTOOL_A_CABLE_TEST_UNSPEC, + ETHTOOL_A_CABLE_TEST_HEADER, + __ETHTOOL_A_CABLE_TEST_CNT, + ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1 +}; +enum { + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC, + ETHTOOL_A_CABLE_RESULT_CODE_OK, + ETHTOOL_A_CABLE_RESULT_CODE_OPEN, + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT, + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT, +}; +enum { + ETHTOOL_A_CABLE_PAIR_A, + ETHTOOL_A_CABLE_PAIR_B, + ETHTOOL_A_CABLE_PAIR_C, + ETHTOOL_A_CABLE_PAIR_D, +}; +enum { + ETHTOOL_A_CABLE_RESULT_UNSPEC, + ETHTOOL_A_CABLE_RESULT_PAIR, + ETHTOOL_A_CABLE_RESULT_CODE, + __ETHTOOL_A_CABLE_RESULT_CNT, + ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC, + ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, + ETHTOOL_A_CABLE_FAULT_LENGTH_CM, + __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT, + ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC, + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED, + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED +}; +enum { + ETHTOOL_A_CABLE_NEST_UNSPEC, + ETHTOOL_A_CABLE_NEST_RESULT, + ETHTOOL_A_CABLE_NEST_FAULT_LENGTH, + __ETHTOOL_A_CABLE_NEST_CNT, + ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_TEST_NTF_UNSPEC, + ETHTOOL_A_CABLE_TEST_NTF_HEADER, + ETHTOOL_A_CABLE_TEST_NTF_STATUS, + ETHTOOL_A_CABLE_TEST_NTF_NEST, + __ETHTOOL_A_CABLE_TEST_NTF_CNT, + ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC, + ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST, + ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST, + ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP, + ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR, + __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT, + ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1 +}; +enum { + ETHTOOL_A_CABLE_TEST_TDR_UNSPEC, + ETHTOOL_A_CABLE_TEST_TDR_HEADER, + ETHTOOL_A_CABLE_TEST_TDR_CFG, + __ETHTOOL_A_CABLE_TEST_TDR_CNT, + ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1 +}; +enum { + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC, + ETHTOOL_A_CABLE_AMPLITUDE_PAIR, + ETHTOOL_A_CABLE_AMPLITUDE_mV, + __ETHTOOL_A_CABLE_AMPLITUDE_CNT, + ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_PULSE_UNSPEC, + ETHTOOL_A_CABLE_PULSE_mV, + __ETHTOOL_A_CABLE_PULSE_CNT, + ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_STEP_UNSPEC, + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, + __ETHTOOL_A_CABLE_STEP_CNT, + ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_TDR_NEST_UNSPEC, + ETHTOOL_A_CABLE_TDR_NEST_STEP, + ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, + ETHTOOL_A_CABLE_TDR_NEST_PULSE, + __ETHTOOL_A_CABLE_TDR_NEST_CNT, + ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1) +}; +enum { + ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC, + ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER, + ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS, + ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST, + __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT, + ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1 +}; #define ETHTOOL_GENL_NAME "ethtool" #define ETHTOOL_GENL_VERSION 1 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor" diff --git a/libc/kernel/uapi/linux/fb.h b/libc/kernel/uapi/linux/fb.h index 38da042df..a0ef0c408 100644 --- a/libc/kernel/uapi/linux/fb.h +++ b/libc/kernel/uapi/linux/fb.h @@ -182,6 +182,7 @@ struct fb_bitfield { #define FB_ACTIVATE_ALL 64 #define FB_ACTIVATE_FORCE 128 #define FB_ACTIVATE_INV_MODE 256 +#define FB_ACTIVATE_KD_TEXT 512 #define FB_ACCELF_TEXT 1 #define FB_SYNC_HOR_HIGH_ACT 1 #define FB_SYNC_VERT_HIGH_ACT 2 diff --git a/libc/kernel/uapi/linux/fcntl.h b/libc/kernel/uapi/linux/fcntl.h index 84f0095b2..a46726bb2 100644 --- a/libc/kernel/uapi/linux/fcntl.h +++ b/libc/kernel/uapi/linux/fcntl.h @@ -54,6 +54,7 @@ #define DN_MULTISHOT 0x80000000 #define AT_FDCWD - 100 #define AT_SYMLINK_NOFOLLOW 0x100 +#define AT_EACCESS 0x200 #define AT_REMOVEDIR 0x200 #define AT_SYMLINK_FOLLOW 0x400 #define AT_NO_AUTOMOUNT 0x800 diff --git a/libc/kernel/uapi/linux/fd.h b/libc/kernel/uapi/linux/fd.h index f3c2d50ef..4d72d6954 100644 --- a/libc/kernel/uapi/linux/fd.h +++ b/libc/kernel/uapi/linux/fd.h @@ -84,7 +84,8 @@ struct floppy_drive_params { #define FD_SILENT_DCL_CLEAR 0x4 #define FD_INVERTED_DCL 0x80 char read_track; - short autodetect[8]; +#define FD_AUTODETECT_SIZE 8 + short autodetect[FD_AUTODETECT_SIZE]; int checkfreq; int native_format; }; @@ -181,10 +182,18 @@ struct floppy_raw_cmd { long phys_length; int buffer_length; unsigned char rate; +#define FD_RAW_CMD_SIZE 16 +#define FD_RAW_REPLY_SIZE 16 +#define FD_RAW_CMD_FULLSIZE (FD_RAW_CMD_SIZE + 1 + FD_RAW_REPLY_SIZE) unsigned char cmd_count; - unsigned char cmd[16]; - unsigned char reply_count; - unsigned char reply[16]; + union { + struct { + unsigned char cmd[FD_RAW_CMD_SIZE]; + unsigned char reply_count; + unsigned char reply[FD_RAW_REPLY_SIZE]; + }; + unsigned char fullcmd[FD_RAW_CMD_FULLSIZE]; + }; int track; int resultcode; int reserved1; diff --git a/libc/kernel/uapi/linux/fdreg.h b/libc/kernel/uapi/linux/fdreg.h index 6d9f42d53..2aeaf9a82 100644 --- a/libc/kernel/uapi/linux/fdreg.h +++ b/libc/kernel/uapi/linux/fdreg.h @@ -18,9 +18,13 @@ ****************************************************************************/ #ifndef _LINUX_FDREG_H #define _LINUX_FDREG_H +#define FD_SRA 0 +#define FD_SRB 1 +#define FD_DOR 2 +#define FD_TDR 3 +#define FD_DSR 4 #define FD_STATUS 4 #define FD_DATA 5 -#define FD_DOR 2 #define FD_DIR 7 #define FD_DCR 7 #define STATUS_BUSYMASK 0x0F diff --git a/libc/kernel/uapi/linux/fiemap.h b/libc/kernel/uapi/linux/fiemap.h index 77c3cc582..431078657 100644 --- a/libc/kernel/uapi/linux/fiemap.h +++ b/libc/kernel/uapi/linux/fiemap.h @@ -16,8 +16,8 @@ *** **************************************************************************** ****************************************************************************/ -#ifndef _LINUX_FIEMAP_H -#define _LINUX_FIEMAP_H +#ifndef _UAPI_LINUX_FIEMAP_H +#define _UAPI_LINUX_FIEMAP_H #include <linux/types.h> struct fiemap_extent { __u64 fe_logical; diff --git a/libc/kernel/uapi/linux/fs.h b/libc/kernel/uapi/linux/fs.h index 1dd16026f..0601768ae 100644 --- a/libc/kernel/uapi/linux/fs.h +++ b/libc/kernel/uapi/linux/fs.h @@ -177,6 +177,7 @@ struct fsxattr { #define FS_EA_INODE_FL 0x00200000 #define FS_EOFBLOCKS_FL 0x00400000 #define FS_NOCOW_FL 0x00800000 +#define FS_DAX_FL 0x02000000 #define FS_INLINE_DATA_FL 0x10000000 #define FS_PROJINHERIT_FL 0x20000000 #define FS_CASEFOLD_FL 0x40000000 diff --git a/libc/kernel/uapi/linux/genetlink.h b/libc/kernel/uapi/linux/genetlink.h index a6e376033..2cef95ed5 100644 --- a/libc/kernel/uapi/linux/genetlink.h +++ b/libc/kernel/uapi/linux/genetlink.h @@ -49,6 +49,7 @@ enum { CTRL_CMD_NEWMCAST_GRP, CTRL_CMD_DELMCAST_GRP, CTRL_CMD_GETMCAST_GRP, + CTRL_CMD_GETPOLICY, __CTRL_CMD_MAX, }; #define CTRL_CMD_MAX (__CTRL_CMD_MAX - 1) @@ -61,6 +62,7 @@ enum { CTRL_ATTR_MAXATTR, CTRL_ATTR_OPS, CTRL_ATTR_MCAST_GROUPS, + CTRL_ATTR_POLICY, __CTRL_ATTR_MAX, }; #define CTRL_ATTR_MAX (__CTRL_ATTR_MAX - 1) diff --git a/libc/kernel/uapi/linux/gfs2_ondisk.h b/libc/kernel/uapi/linux/gfs2_ondisk.h index 7d03ba53b..a8fb59e51 100644 --- a/libc/kernel/uapi/linux/gfs2_ondisk.h +++ b/libc/kernel/uapi/linux/gfs2_ondisk.h @@ -117,6 +117,11 @@ struct gfs2_rindex { #define GFS2_RGF_DATAONLY 0x00000004 #define GFS2_RGF_NOALLOC 0x00000008 #define GFS2_RGF_TRIMMED 0x00000010 +struct gfs2_inode_lvb { + __be32 ri_magic; + __be32 __pad; + __be64 ri_generation_deleted; +}; struct gfs2_rgrp_lvb { __be32 rl_magic; __be32 rl_flags; diff --git a/libc/kernel/uapi/linux/idxd.h b/libc/kernel/uapi/linux/idxd.h index 9565ff70d..3c8492ed7 100644 --- a/libc/kernel/uapi/linux/idxd.h +++ b/libc/kernel/uapi/linux/idxd.h @@ -116,6 +116,8 @@ struct dsa_hw_desc { struct { uint64_t delta_addr; uint32_t max_delta_size; + uint32_t delt_rsvd; + uint8_t expected_res_mask; }; uint32_t delta_rec_size; uint64_t dest2; diff --git a/libc/kernel/uapi/linux/if.h b/libc/kernel/uapi/linux/if.h index 0821f2bbf..63c77ebd9 100644 --- a/libc/kernel/uapi/linux/if.h +++ b/libc/kernel/uapi/linux/if.h @@ -114,6 +114,7 @@ enum { enum { IF_LINK_MODE_DEFAULT, IF_LINK_MODE_DORMANT, + IF_LINK_MODE_TESTING, }; #if __UAPI_DEF_IF_IFMAP struct ifmap { diff --git a/libc/kernel/uapi/linux/if_bridge.h b/libc/kernel/uapi/linux/if_bridge.h index b34116ca6..2c72ddf9f 100644 --- a/libc/kernel/uapi/linux/if_bridge.h +++ b/libc/kernel/uapi/linux/if_bridge.h @@ -106,6 +106,7 @@ enum { IFLA_BRIDGE_MODE, IFLA_BRIDGE_VLAN_INFO, IFLA_BRIDGE_VLAN_TUNNEL_INFO, + IFLA_BRIDGE_MRP, __IFLA_BRIDGE_MAX, }; #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) @@ -137,6 +138,83 @@ struct bridge_vlan_xstats { __u16 flags; __u32 pad2; }; +enum { + IFLA_BRIDGE_MRP_UNSPEC, + IFLA_BRIDGE_MRP_INSTANCE, + IFLA_BRIDGE_MRP_PORT_STATE, + IFLA_BRIDGE_MRP_PORT_ROLE, + IFLA_BRIDGE_MRP_RING_STATE, + IFLA_BRIDGE_MRP_RING_ROLE, + IFLA_BRIDGE_MRP_START_TEST, + __IFLA_BRIDGE_MRP_MAX, +}; +#define IFLA_BRIDGE_MRP_MAX (__IFLA_BRIDGE_MRP_MAX - 1) +enum { + IFLA_BRIDGE_MRP_INSTANCE_UNSPEC, + IFLA_BRIDGE_MRP_INSTANCE_RING_ID, + IFLA_BRIDGE_MRP_INSTANCE_P_IFINDEX, + IFLA_BRIDGE_MRP_INSTANCE_S_IFINDEX, + IFLA_BRIDGE_MRP_INSTANCE_PRIO, + __IFLA_BRIDGE_MRP_INSTANCE_MAX, +}; +#define IFLA_BRIDGE_MRP_INSTANCE_MAX (__IFLA_BRIDGE_MRP_INSTANCE_MAX - 1) +enum { + IFLA_BRIDGE_MRP_PORT_STATE_UNSPEC, + IFLA_BRIDGE_MRP_PORT_STATE_STATE, + __IFLA_BRIDGE_MRP_PORT_STATE_MAX, +}; +#define IFLA_BRIDGE_MRP_PORT_STATE_MAX (__IFLA_BRIDGE_MRP_PORT_STATE_MAX - 1) +enum { + IFLA_BRIDGE_MRP_PORT_ROLE_UNSPEC, + IFLA_BRIDGE_MRP_PORT_ROLE_ROLE, + __IFLA_BRIDGE_MRP_PORT_ROLE_MAX, +}; +#define IFLA_BRIDGE_MRP_PORT_ROLE_MAX (__IFLA_BRIDGE_MRP_PORT_ROLE_MAX - 1) +enum { + IFLA_BRIDGE_MRP_RING_STATE_UNSPEC, + IFLA_BRIDGE_MRP_RING_STATE_RING_ID, + IFLA_BRIDGE_MRP_RING_STATE_STATE, + __IFLA_BRIDGE_MRP_RING_STATE_MAX, +}; +#define IFLA_BRIDGE_MRP_RING_STATE_MAX (__IFLA_BRIDGE_MRP_RING_STATE_MAX - 1) +enum { + IFLA_BRIDGE_MRP_RING_ROLE_UNSPEC, + IFLA_BRIDGE_MRP_RING_ROLE_RING_ID, + IFLA_BRIDGE_MRP_RING_ROLE_ROLE, + __IFLA_BRIDGE_MRP_RING_ROLE_MAX, +}; +#define IFLA_BRIDGE_MRP_RING_ROLE_MAX (__IFLA_BRIDGE_MRP_RING_ROLE_MAX - 1) +enum { + IFLA_BRIDGE_MRP_START_TEST_UNSPEC, + IFLA_BRIDGE_MRP_START_TEST_RING_ID, + IFLA_BRIDGE_MRP_START_TEST_INTERVAL, + IFLA_BRIDGE_MRP_START_TEST_MAX_MISS, + IFLA_BRIDGE_MRP_START_TEST_PERIOD, + IFLA_BRIDGE_MRP_START_TEST_MONITOR, + __IFLA_BRIDGE_MRP_START_TEST_MAX, +}; +#define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1) +struct br_mrp_instance { + __u32 ring_id; + __u32 p_ifindex; + __u32 s_ifindex; + __u16 prio; +}; +struct br_mrp_ring_state { + __u32 ring_id; + __u32 ring_state; +}; +struct br_mrp_ring_role { + __u32 ring_id; + __u32 ring_role; +}; +struct br_mrp_start_test { + __u32 ring_id; + __u32 interval; + __u32 max_miss; + __u32 period; + __u32 monitor; +}; struct bridge_stp_xstats { __u64 transition_blk; __u64 transition_fwd; diff --git a/libc/kernel/uapi/linux/if_ether.h b/libc/kernel/uapi/linux/if_ether.h index dd2dedb41..c3e0718ab 100644 --- a/libc/kernel/uapi/linux/if_ether.h +++ b/libc/kernel/uapi/linux/if_ether.h @@ -73,6 +73,7 @@ #define ETH_P_PREAUTH 0x88C7 #define ETH_P_TIPC 0x88CA #define ETH_P_LLDP 0x88CC +#define ETH_P_MRP 0x88E3 #define ETH_P_MACSEC 0x88E5 #define ETH_P_8021AH 0x88E7 #define ETH_P_MVRP 0x88F5 diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h index 790f1d2d3..b248a6bb0 100644 --- a/libc/kernel/uapi/linux/if_link.h +++ b/libc/kernel/uapi/linux/if_link.h @@ -272,6 +272,7 @@ enum { IFLA_BRPORT_NEIGH_SUPPRESS, IFLA_BRPORT_ISOLATED, IFLA_BRPORT_BACKUP_PORT, + IFLA_BRPORT_MRP_RING_OPEN, __IFLA_BRPORT_MAX }; #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) diff --git a/libc/kernel/uapi/linux/inet_diag.h b/libc/kernel/uapi/linux/inet_diag.h index fedbd8514..1c3c12821 100644 --- a/libc/kernel/uapi/linux/inet_diag.h +++ b/libc/kernel/uapi/linux/inet_diag.h @@ -82,6 +82,7 @@ enum { INET_DIAG_BC_MARK_COND, INET_DIAG_BC_S_EQ, INET_DIAG_BC_D_EQ, + INET_DIAG_BC_CGROUP_COND, }; struct inet_diag_hostcond { __u8 family; @@ -127,6 +128,7 @@ enum { INET_DIAG_MD5SIG, INET_DIAG_ULP_INFO, INET_DIAG_SK_BPF_STORAGES, + INET_DIAG_CGROUP_ID, __INET_DIAG_MAX, }; #define INET_DIAG_MAX (__INET_DIAG_MAX - 1) diff --git a/libc/kernel/uapi/linux/input-event-codes.h b/libc/kernel/uapi/linux/input-event-codes.h index 46cc7f071..1275b2698 100644 --- a/libc/kernel/uapi/linux/input-event-codes.h +++ b/libc/kernel/uapi/linux/input-event-codes.h @@ -734,10 +734,8 @@ #define SW_LINEIN_INSERT 0x0d #define SW_MUTE_DEVICE 0x0e #define SW_PEN_INSERTED 0x0f -#define SW_HPHL_OVERCURRENT 0x10 -#define SW_HPHR_OVERCURRENT 0x11 -#define SW_UNSUPPORT_INSERT 0x12 -#define SW_MAX 0x20 +#define SW_MACHINE_COVER 0x10 +#define SW_MAX 0x10 #define SW_CNT (SW_MAX + 1) #define MSC_SERIAL 0x00 #define MSC_PULSELED 0x01 diff --git a/libc/kernel/uapi/linux/io_uring.h b/libc/kernel/uapi/linux/io_uring.h index ef3ee51d1..9912405bf 100644 --- a/libc/kernel/uapi/linux/io_uring.h +++ b/libc/kernel/uapi/linux/io_uring.h @@ -115,6 +115,7 @@ enum { IORING_OP_SPLICE, IORING_OP_PROVIDE_BUFFERS, IORING_OP_REMOVE_BUFFERS, + IORING_OP_TEE, IORING_OP_LAST, }; #define IORING_FSYNC_DATASYNC (1U << 0) @@ -144,6 +145,7 @@ struct io_sqring_offsets { __u64 resv2; }; #define IORING_SQ_NEED_WAKEUP (1U << 0) +#define IORING_SQ_CQ_OVERFLOW (1U << 1) struct io_cqring_offsets { __u32 head; __u32 tail; @@ -151,8 +153,11 @@ struct io_cqring_offsets { __u32 ring_entries; __u32 overflow; __u32 cqes; - __u64 resv[2]; + __u32 flags; + __u32 resv1; + __u64 resv2; }; +#define IORING_CQ_EVENTFD_DISABLED (1U << 0) #define IORING_ENTER_GETEVENTS (1U << 0) #define IORING_ENTER_SQ_WAKEUP (1U << 1) struct io_uring_params { diff --git a/libc/kernel/uapi/linux/iommu.h b/libc/kernel/uapi/linux/iommu.h index 54452c382..172be9cb1 100644 --- a/libc/kernel/uapi/linux/iommu.h +++ b/libc/kernel/uapi/linux/iommu.h @@ -133,6 +133,7 @@ struct iommu_gpasid_bind_data_vtd { __u32 pat; __u32 emt; }; +#define IOMMU_SVA_VTD_GPASID_MTS_MASK (IOMMU_SVA_VTD_GPASID_CD | IOMMU_SVA_VTD_GPASID_EMTE | IOMMU_SVA_VTD_GPASID_PCD | IOMMU_SVA_VTD_GPASID_PWT) struct iommu_gpasid_bind_data { #define IOMMU_GPASID_BIND_VERSION_1 1 __u32 version; diff --git a/libc/kernel/uapi/linux/keyctl.h b/libc/kernel/uapi/linux/keyctl.h index e3fef38fc..01ea576d3 100644 --- a/libc/kernel/uapi/linux/keyctl.h +++ b/libc/kernel/uapi/linux/keyctl.h @@ -68,6 +68,7 @@ #define KEYCTL_RESTRICT_KEYRING 29 #define KEYCTL_MOVE 30 #define KEYCTL_CAPABILITIES 31 +#define KEYCTL_WATCH_KEY 32 struct keyctl_dh_params { union { #ifndef __cplusplus @@ -117,4 +118,5 @@ struct keyctl_pkey_params { #define KEYCTL_CAPS0_MOVE 0x80 #define KEYCTL_CAPS1_NS_KEYRING_NAME 0x01 #define KEYCTL_CAPS1_NS_KEY_TAG 0x02 +#define KEYCTL_CAPS1_NOTIFICATIONS 0x04 #endif diff --git a/libc/kernel/uapi/linux/kfd_ioctl.h b/libc/kernel/uapi/linux/kfd_ioctl.h index 8b09f0049..d9f7bfc7b 100644 --- a/libc/kernel/uapi/linux/kfd_ioctl.h +++ b/libc/kernel/uapi/linux/kfd_ioctl.h @@ -267,6 +267,12 @@ struct kfd_ioctl_unmap_memory_from_gpu_args { __u32 n_devices; __u32 n_success; }; +struct kfd_ioctl_alloc_queue_gws_args { + __u32 queue_id; + __u32 num_gws; + __u32 first_gws; + __u32 pad; +}; struct kfd_ioctl_get_dmabuf_info_args { __u64 size; __u64 metadata_ptr; @@ -319,6 +325,7 @@ enum kfd_mmio_remap { #define AMDKFD_IOC_GET_QUEUE_WAVE_STATE AMDKFD_IOWR(0x1B, struct kfd_ioctl_get_queue_wave_state_args) #define AMDKFD_IOC_GET_DMABUF_INFO AMDKFD_IOWR(0x1C, struct kfd_ioctl_get_dmabuf_info_args) #define AMDKFD_IOC_IMPORT_DMABUF AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args) +#define AMDKFD_IOC_ALLOC_QUEUE_GWS AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args) #define AMDKFD_COMMAND_START 0x01 -#define AMDKFD_COMMAND_END 0x1E +#define AMDKFD_COMMAND_END 0x1F #endif diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h index ea6bca5f1..7e1399025 100644 --- a/libc/kernel/uapi/linux/kvm.h +++ b/libc/kernel/uapi/linux/kvm.h @@ -137,10 +137,13 @@ struct kvm_s390_cmma_log { struct kvm_hyperv_exit { #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 +#define KVM_EXIT_HYPERV_SYNDBG 3 __u32 type; + __u32 pad1; union { struct { __u32 msr; + __u32 pad2; __u64 control; __u64 evt_page; __u64 msg_page; @@ -150,6 +153,15 @@ struct kvm_hyperv_exit { __u64 result; __u64 params[2]; } hcall; + struct { + __u32 msr; + __u32 pad2; + __u64 control; + __u64 status; + __u64 send_page; + __u64 recv_page; + __u64 pending_page; + } syndbg; } u; }; #define KVM_S390_GET_SKEYS_NONE 1 @@ -796,6 +808,8 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_S390_VCPU_RESETS 179 #define KVM_CAP_S390_PROTECTED 180 #define KVM_CAP_PPC_SECURE_GUEST 181 +#define KVM_CAP_HALT_POLL 182 +#define KVM_CAP_ASYNC_PF_INT 183 #ifdef KVM_CAP_IRQ_ROUTING struct kvm_irq_routing_irqchip { __u32 irqchip; diff --git a/libc/kernel/uapi/linux/loop.h b/libc/kernel/uapi/linux/loop.h index d5a23b597..56eba9108 100644 --- a/libc/kernel/uapi/linux/loop.h +++ b/libc/kernel/uapi/linux/loop.h @@ -26,6 +26,9 @@ enum { LO_FLAGS_PARTSCAN = 8, LO_FLAGS_DIRECT_IO = 16, }; +#define LOOP_SET_STATUS_SETTABLE_FLAGS (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN) +#define LOOP_SET_STATUS_CLEARABLE_FLAGS (LO_FLAGS_AUTOCLEAR) +#define LOOP_CONFIGURE_SETTABLE_FLAGS (LO_FLAGS_READ_ONLY | LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN | LO_FLAGS_DIRECT_IO) #include <asm/posix_types.h> #include <linux/types.h> struct loop_info { @@ -57,6 +60,12 @@ struct loop_info64 { __u8 lo_encrypt_key[LO_KEY_SIZE]; __u64 lo_init[2]; }; +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; +}; #define LO_CRYPT_NONE 0 #define LO_CRYPT_XOR 1 #define LO_CRYPT_DES 2 @@ -78,6 +87,7 @@ struct loop_info64 { #define LOOP_SET_CAPACITY 0x4C07 #define LOOP_SET_DIRECT_IO 0x4C08 #define LOOP_SET_BLOCK_SIZE 0x4C09 +#define LOOP_CONFIGURE 0x4C0A #define LOOP_CTL_ADD 0x4C80 #define LOOP_CTL_REMOVE 0x4C81 #define LOOP_CTL_GET_FREE 0x4C82 diff --git a/libc/kernel/uapi/linux/magic.h b/libc/kernel/uapi/linux/magic.h index 82b9dce22..479ae811b 100644 --- a/libc/kernel/uapi/linux/magic.h +++ b/libc/kernel/uapi/linux/magic.h @@ -97,6 +97,7 @@ #define BALLOON_KVM_MAGIC 0x13661366 #define ZSMALLOC_MAGIC 0x58295829 #define DMA_BUF_MAGIC 0x444d4142 +#define DEVMEM_MAGIC 0x454d444d #define Z3FOLD_MAGIC 0x33 #define PPC_CMM_MAGIC 0xc7571590 #endif diff --git a/libc/kernel/uapi/linux/mii.h b/libc/kernel/uapi/linux/mii.h index 75b29fddf..a489015dc 100644 --- a/libc/kernel/uapi/linux/mii.h +++ b/libc/kernel/uapi/linux/mii.h @@ -137,9 +137,11 @@ #define LPA_SGMII_LINK 0x8000 #define ADVERTISE_1000FULL 0x0200 #define ADVERTISE_1000HALF 0x0100 +#define CTL1000_PREFER_MASTER 0x0400 #define CTL1000_AS_MASTER 0x0800 #define CTL1000_ENABLE_MASTER 0x1000 #define LPA_1000MSFAIL 0x8000 +#define LPA_1000MSRES 0x4000 #define LPA_1000LOCALRXOK 0x2000 #define LPA_1000REMRXOK 0x1000 #define LPA_1000FULL 0x0800 diff --git a/libc/kernel/uapi/linux/mmc/ioctl.h b/libc/kernel/uapi/linux/mmc/ioctl.h index 101eb8c02..afea6a5b0 100644 --- a/libc/kernel/uapi/linux/mmc/ioctl.h +++ b/libc/kernel/uapi/linux/mmc/ioctl.h @@ -19,6 +19,7 @@ #ifndef LINUX_MMC_IOCTL_H #define LINUX_MMC_IOCTL_H #include <linux/types.h> +#include <linux/major.h> struct mmc_ioc_cmd { int write_flag; int is_acmd; diff --git a/libc/kernel/uapi/linux/mrp_bridge.h b/libc/kernel/uapi/linux/mrp_bridge.h new file mode 100644 index 000000000..cbfc3220e --- /dev/null +++ b/libc/kernel/uapi/linux/mrp_bridge.h @@ -0,0 +1,117 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_MRP_BRIDGE_H_ +#define _UAPI_LINUX_MRP_BRIDGE_H_ +#include <linux/types.h> +#include <linux/if_ether.h> +#define MRP_MAX_FRAME_LENGTH 200 +#define MRP_DEFAULT_PRIO 0x8000 +#define MRP_DOMAIN_UUID_LENGTH 16 +#define MRP_VERSION 1 +#define MRP_FRAME_PRIO 7 +#define MRP_OUI_LENGTH 3 +#define MRP_MANUFACTURE_DATA_LENGTH 2 +enum br_mrp_ring_role_type { + BR_MRP_RING_ROLE_DISABLED, + BR_MRP_RING_ROLE_MRC, + BR_MRP_RING_ROLE_MRM, + BR_MRP_RING_ROLE_MRA, +}; +enum br_mrp_ring_state_type { + BR_MRP_RING_STATE_OPEN, + BR_MRP_RING_STATE_CLOSED, +}; +enum br_mrp_port_state_type { + BR_MRP_PORT_STATE_DISABLED, + BR_MRP_PORT_STATE_BLOCKED, + BR_MRP_PORT_STATE_FORWARDING, + BR_MRP_PORT_STATE_NOT_CONNECTED, +}; +enum br_mrp_port_role_type { + BR_MRP_PORT_ROLE_PRIMARY, + BR_MRP_PORT_ROLE_SECONDARY, +}; +enum br_mrp_tlv_header_type { + BR_MRP_TLV_HEADER_END = 0x0, + BR_MRP_TLV_HEADER_COMMON = 0x1, + BR_MRP_TLV_HEADER_RING_TEST = 0x2, + BR_MRP_TLV_HEADER_RING_TOPO = 0x3, + BR_MRP_TLV_HEADER_RING_LINK_DOWN = 0x4, + BR_MRP_TLV_HEADER_RING_LINK_UP = 0x5, + BR_MRP_TLV_HEADER_OPTION = 0x7f, +}; +enum br_mrp_sub_tlv_header_type { + BR_MRP_SUB_TLV_HEADER_TEST_MGR_NACK = 0x1, + BR_MRP_SUB_TLV_HEADER_TEST_PROPAGATE = 0x2, + BR_MRP_SUB_TLV_HEADER_TEST_AUTO_MGR = 0x3, +}; +struct br_mrp_tlv_hdr { + __u8 type; + __u8 length; +}; +struct br_mrp_sub_tlv_hdr { + __u8 type; + __u8 length; +}; +struct br_mrp_end_hdr { + struct br_mrp_tlv_hdr hdr; +}; +struct br_mrp_common_hdr { + __be16 seq_id; + __u8 domain[MRP_DOMAIN_UUID_LENGTH]; +}; +struct br_mrp_ring_test_hdr { + __be16 prio; + __u8 sa[ETH_ALEN]; + __be16 port_role; + __be16 state; + __be16 transitions; + __be32 timestamp; +}; +struct br_mrp_ring_topo_hdr { + __be16 prio; + __u8 sa[ETH_ALEN]; + __be16 interval; +}; +struct br_mrp_ring_link_hdr { + __u8 sa[ETH_ALEN]; + __be16 port_role; + __be16 interval; + __be16 blocked; +}; +struct br_mrp_sub_opt_hdr { + __u8 type; + __u8 manufacture_data[MRP_MANUFACTURE_DATA_LENGTH]; +}; +struct br_mrp_test_mgr_nack_hdr { + __be16 prio; + __u8 sa[ETH_ALEN]; + __be16 other_prio; + __u8 other_sa[ETH_ALEN]; +}; +struct br_mrp_test_prop_hdr { + __be16 prio; + __u8 sa[ETH_ALEN]; + __be16 other_prio; + __u8 other_sa[ETH_ALEN]; +}; +struct br_mrp_oui_hdr { + __u8 oui[MRP_OUI_LENGTH]; +}; +#endif diff --git a/libc/kernel/uapi/linux/ndctl.h b/libc/kernel/uapi/linux/ndctl.h index e47091f13..61c8929dd 100644 --- a/libc/kernel/uapi/linux/ndctl.h +++ b/libc/kernel/uapi/linux/ndctl.h @@ -158,5 +158,6 @@ struct nd_cmd_pkg { #define NVDIMM_FAMILY_HPE2 2 #define NVDIMM_FAMILY_MSFT 3 #define NVDIMM_FAMILY_HYPERV 4 +#define NVDIMM_FAMILY_PAPR 5 #define ND_IOCTL_CALL _IOWR(ND_IOCTL, ND_CMD_CALL, struct nd_cmd_pkg) #endif diff --git a/libc/kernel/uapi/linux/neighbour.h b/libc/kernel/uapi/linux/neighbour.h index 4ce473691..eb4babdb3 100644 --- a/libc/kernel/uapi/linux/neighbour.h +++ b/libc/kernel/uapi/linux/neighbour.h @@ -43,6 +43,7 @@ enum { NDA_LINK_NETNSID, NDA_SRC_VNI, NDA_PROTOCOL, + NDA_NH_ID, __NDA_MAX }; #define NDA_MAX (__NDA_MAX - 1) diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h index 152584a2e..3ff603001 100644 --- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h +++ b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h @@ -64,8 +64,10 @@ enum ip_conntrack_status { IPS_HELPER = (1 << IPS_HELPER_BIT), IPS_OFFLOAD_BIT = 14, IPS_OFFLOAD = (1 << IPS_OFFLOAD_BIT), - IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_UNTRACKED | IPS_OFFLOAD), - __IPS_MAX_BIT = 15, + IPS_HW_OFFLOAD_BIT = 15, + IPS_HW_OFFLOAD = (1 << IPS_HW_OFFLOAD_BIT), + IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_UNTRACKED | IPS_OFFLOAD | IPS_HW_OFFLOAD), + __IPS_MAX_BIT = 16, }; enum ip_conntrack_events { IPCT_NEW, diff --git a/libc/kernel/uapi/linux/netfilter/nf_nat.h b/libc/kernel/uapi/linux/netfilter/nf_nat.h index f01669b57..84373ed74 100644 --- a/libc/kernel/uapi/linux/netfilter/nf_nat.h +++ b/libc/kernel/uapi/linux/netfilter/nf_nat.h @@ -26,8 +26,9 @@ #define NF_NAT_RANGE_PERSISTENT (1 << 3) #define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) #define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) +#define NF_NAT_RANGE_NETMAP (1 << 6) #define NF_NAT_RANGE_PROTO_RANDOM_ALL (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -#define NF_NAT_RANGE_MASK (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET) +#define NF_NAT_RANGE_MASK (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | NF_NAT_RANGE_NETMAP) struct nf_nat_ipv4_range { unsigned int flags; __be32 min_ip; diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h index 4981fc14c..8e48f80e0 100644 --- a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h +++ b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h @@ -66,6 +66,7 @@ enum ctattr_type { CTA_LABELS, CTA_LABELS_MASK, CTA_SYNPROXY, + CTA_FILTER, __CTA_MAX }; #define CTA_MAX (__CTA_MAX - 1) @@ -265,4 +266,11 @@ enum ctattr_expect_stats { __CTA_STATS_EXP_MAX, }; #define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1) +enum ctattr_filter { + CTA_FILTER_UNSPEC, + CTA_FILTER_ORIG_FLAGS, + CTA_FILTER_REPLY_FLAGS, + __CTA_FILTER_MAX +}; +#define CTA_FILTER_MAX (__CTA_FILTER_MAX - 1) #endif diff --git a/libc/kernel/uapi/linux/netlink.h b/libc/kernel/uapi/linux/netlink.h index 4c0fd1fe6..acbf884cd 100644 --- a/libc/kernel/uapi/linux/netlink.h +++ b/libc/kernel/uapi/linux/netlink.h @@ -159,4 +159,38 @@ struct nla_bitfield32 { __u32 value; __u32 selector; }; +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID, + NL_ATTR_TYPE_FLAG, + NL_ATTR_TYPE_U8, + NL_ATTR_TYPE_U16, + NL_ATTR_TYPE_U32, + NL_ATTR_TYPE_U64, + NL_ATTR_TYPE_S8, + NL_ATTR_TYPE_S16, + NL_ATTR_TYPE_S32, + NL_ATTR_TYPE_S64, + NL_ATTR_TYPE_BINARY, + NL_ATTR_TYPE_STRING, + NL_ATTR_TYPE_NUL_STRING, + NL_ATTR_TYPE_NESTED, + NL_ATTR_TYPE_NESTED_ARRAY, + NL_ATTR_TYPE_BITFIELD32, +}; +enum netlink_policy_type_attr { + NL_POLICY_TYPE_ATTR_UNSPEC, + NL_POLICY_TYPE_ATTR_TYPE, + NL_POLICY_TYPE_ATTR_MIN_VALUE_S, + NL_POLICY_TYPE_ATTR_MAX_VALUE_S, + NL_POLICY_TYPE_ATTR_MIN_VALUE_U, + NL_POLICY_TYPE_ATTR_MAX_VALUE_U, + NL_POLICY_TYPE_ATTR_MIN_LENGTH, + NL_POLICY_TYPE_ATTR_MAX_LENGTH, + NL_POLICY_TYPE_ATTR_POLICY_IDX, + NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE, + NL_POLICY_TYPE_ATTR_BITFIELD32_MASK, + NL_POLICY_TYPE_ATTR_PAD, + __NL_POLICY_TYPE_ATTR_MAX, + NL_POLICY_TYPE_ATTR_MAX = __NL_POLICY_TYPE_ATTR_MAX - 1 +}; #endif diff --git a/libc/kernel/uapi/linux/nexthop.h b/libc/kernel/uapi/linux/nexthop.h index a2a959f66..f99a074d5 100644 --- a/libc/kernel/uapi/linux/nexthop.h +++ b/libc/kernel/uapi/linux/nexthop.h @@ -49,6 +49,7 @@ enum { NHA_ENCAP, NHA_GROUPS, NHA_MASTER, + NHA_FDB, __NHA_MAX, }; #define NHA_MAX (__NHA_MAX - 1) diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h index 7f8b45f2c..75d51c939 100644 --- a/libc/kernel/uapi/linux/nl80211.h +++ b/libc/kernel/uapi/linux/nl80211.h @@ -175,6 +175,8 @@ enum nl80211_commands { NL80211_CMD_UPDATE_OWE_INFO, NL80211_CMD_PROBE_MESH_LINK, NL80211_CMD_SET_TID_CONFIG, + NL80211_CMD_UNPROT_BEACON, + NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS, __NL80211_CMD_AFTER_LAST, NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 }; @@ -480,6 +482,11 @@ enum nl80211_attrs { NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, NL80211_ATTR_PMK_LIFETIME, NL80211_ATTR_PMK_REAUTH_THRESHOLD, + NL80211_ATTR_RECEIVE_MULTICAST, + NL80211_ATTR_WIPHY_FREQ_OFFSET, + NL80211_ATTR_CENTER_FREQ1_OFFSET, + NL80211_ATTR_SCAN_FREQ_KHZ, + NL80211_ATTR_HE_6GHZ_CAPABILITY, __NL80211_ATTR_AFTER_LAST, NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST, NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 @@ -713,6 +720,7 @@ enum nl80211_band_iftype_attr { NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY, NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, + NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1 }; @@ -763,6 +771,7 @@ enum nl80211_frequency_attr { NL80211_FREQUENCY_ATTR_NO_10MHZ, NL80211_FREQUENCY_ATTR_WMM, NL80211_FREQUENCY_ATTR_NO_HE, + NL80211_FREQUENCY_ATTR_OFFSET, __NL80211_FREQUENCY_ATTR_AFTER_LAST, NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1 }; @@ -1005,6 +1014,7 @@ enum nl80211_bss { NL80211_BSS_PARENT_TSF, NL80211_BSS_PARENT_BSSID, NL80211_BSS_CHAIN_SIGNAL, + NL80211_BSS_FREQUENCY_OFFSET, __NL80211_BSS_AFTER_LAST, NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1 }; @@ -1121,6 +1131,11 @@ enum nl80211_tid_config { NL80211_TID_CONFIG_ENABLE, NL80211_TID_CONFIG_DISABLE, }; +enum nl80211_tx_rate_setting { + NL80211_TX_RATE_AUTOMATIC, + NL80211_TX_RATE_LIMITED, + NL80211_TX_RATE_FIXED, +}; enum nl80211_tid_config_attr { __NL80211_TID_CONFIG_ATTR_INVALID, NL80211_TID_CONFIG_ATTR_PAD, @@ -1133,6 +1148,9 @@ enum nl80211_tid_config_attr { NL80211_TID_CONFIG_ATTR_RETRY_LONG, NL80211_TID_CONFIG_ATTR_AMPDU_CTRL, NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL, + NL80211_TID_CONFIG_ATTR_AMSDU_CTRL, + NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE, + NL80211_TID_CONFIG_ATTR_TX_RATE, __NL80211_TID_CONFIG_ATTR_AFTER_LAST, NL80211_TID_CONFIG_ATTR_MAX = __NL80211_TID_CONFIG_ATTR_AFTER_LAST - 1 }; @@ -1262,12 +1280,15 @@ enum plink_actions { }; #define NL80211_KCK_LEN 16 #define NL80211_KEK_LEN 16 +#define NL80211_KCK_EXT_LEN 24 +#define NL80211_KEK_EXT_LEN 32 #define NL80211_REPLAY_CTR_LEN 8 enum nl80211_rekey_data { __NL80211_REKEY_DATA_INVALID, NL80211_REKEY_DATA_KEK, NL80211_REKEY_DATA_KCK, NL80211_REKEY_DATA_REPLAY_CTR, + NL80211_REKEY_DATA_AKM, NUM_NL80211_REKEY_DATA, MAX_NL80211_REKEY_DATA = NUM_NL80211_REKEY_DATA - 1 }; @@ -1378,6 +1399,10 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH, NL80211_EXT_FEATURE_PROTECTED_TWT, NL80211_EXT_FEATURE_DEL_IBSS_STA, + NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS, + NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT, + NL80211_EXT_FEATURE_SCAN_FREQ_KHZ, + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS, NUM_NL80211_EXT_FEATURES, MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1 }; @@ -1411,6 +1436,7 @@ enum nl80211_scan_flags { NL80211_SCAN_FLAG_HIGH_ACCURACY = 1 << 10, NL80211_SCAN_FLAG_RANDOM_SN = 1 << 11, NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1 << 12, + NL80211_SCAN_FLAG_FREQ_KHZ = 1 << 13, }; enum nl80211_acl_policy { NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, diff --git a/libc/kernel/uapi/linux/pkt_cls.h b/libc/kernel/uapi/linux/pkt_cls.h index d77d46e24..a5e81496a 100644 --- a/libc/kernel/uapi/linux/pkt_cls.h +++ b/libc/kernel/uapi/linux/pkt_cls.h @@ -103,6 +103,7 @@ enum tca_id { TCA_ID_CTINFO, TCA_ID_MPLS, TCA_ID_CT, + TCA_ID_GATE, __TCA_ID_MAX = 255 }; #define TCA_ID_MAX __TCA_ID_MAX @@ -450,6 +451,7 @@ enum { TCA_FLOWER_KEY_CT_MARK_MASK, TCA_FLOWER_KEY_CT_LABELS, TCA_FLOWER_KEY_CT_LABELS_MASK, + TCA_FLOWER_KEY_MPLS_OPTS, __TCA_FLOWER_MAX, }; #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) @@ -491,6 +493,22 @@ enum { }; #define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1) enum { + TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC, + TCA_FLOWER_KEY_MPLS_OPTS_LSE, + __TCA_FLOWER_KEY_MPLS_OPTS_MAX, +}; +#define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1) +enum { + TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC, + TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH, + TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL, + TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS, + TCA_FLOWER_KEY_MPLS_OPT_LSE_TC, + TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL, + __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX, +}; +#define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1) +enum { TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), }; diff --git a/libc/kernel/uapi/linux/pkt_sched.h b/libc/kernel/uapi/linux/pkt_sched.h index db7f5cb00..95795833f 100644 --- a/libc/kernel/uapi/linux/pkt_sched.h +++ b/libc/kernel/uapi/linux/pkt_sched.h @@ -669,6 +669,8 @@ enum { TCA_FQ_LOW_RATE_THRESHOLD, TCA_FQ_CE_THRESHOLD, TCA_FQ_TIMER_SLACK, + TCA_FQ_HORIZON, + TCA_FQ_HORIZON_DROP, __TCA_FQ_MAX }; #define TCA_FQ_MAX (__TCA_FQ_MAX - 1) @@ -686,6 +688,8 @@ struct tc_fq_qd_stats { __u32 throttled_flows; __u32 unthrottle_latency_ns; __u64 ce_mark; + __u64 horizon_drops; + __u64 horizon_caps; }; enum { TCA_HHF_UNSPEC, diff --git a/libc/kernel/uapi/linux/psample.h b/libc/kernel/uapi/linux/psample.h index d90956bdf..1f8b32586 100644 --- a/libc/kernel/uapi/linux/psample.h +++ b/libc/kernel/uapi/linux/psample.h @@ -26,6 +26,7 @@ enum { PSAMPLE_ATTR_GROUP_SEQ, PSAMPLE_ATTR_SAMPLE_RATE, PSAMPLE_ATTR_DATA, + PSAMPLE_ATTR_TUNNEL, PSAMPLE_ATTR_GROUP_REFCOUNT, __PSAMPLE_ATTR_MAX }; @@ -35,6 +36,26 @@ enum psample_command { PSAMPLE_CMD_NEW_GROUP, PSAMPLE_CMD_DEL_GROUP, }; +enum psample_tunnel_key_attr { + PSAMPLE_TUNNEL_KEY_ATTR_ID, + PSAMPLE_TUNNEL_KEY_ATTR_IPV4_SRC, + PSAMPLE_TUNNEL_KEY_ATTR_IPV4_DST, + PSAMPLE_TUNNEL_KEY_ATTR_TOS, + PSAMPLE_TUNNEL_KEY_ATTR_TTL, + PSAMPLE_TUNNEL_KEY_ATTR_DONT_FRAGMENT, + PSAMPLE_TUNNEL_KEY_ATTR_CSUM, + PSAMPLE_TUNNEL_KEY_ATTR_OAM, + PSAMPLE_TUNNEL_KEY_ATTR_GENEVE_OPTS, + PSAMPLE_TUNNEL_KEY_ATTR_TP_SRC, + PSAMPLE_TUNNEL_KEY_ATTR_TP_DST, + PSAMPLE_TUNNEL_KEY_ATTR_VXLAN_OPTS, + PSAMPLE_TUNNEL_KEY_ATTR_IPV6_SRC, + PSAMPLE_TUNNEL_KEY_ATTR_IPV6_DST, + PSAMPLE_TUNNEL_KEY_ATTR_PAD, + PSAMPLE_TUNNEL_KEY_ATTR_ERSPAN_OPTS, + PSAMPLE_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE, + __PSAMPLE_TUNNEL_KEY_ATTR_MAX +}; #define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1) #define PSAMPLE_NL_MCGRP_CONFIG_NAME "config" #define PSAMPLE_NL_MCGRP_SAMPLE_NAME "packets" diff --git a/libc/kernel/uapi/linux/psp-sev.h b/libc/kernel/uapi/linux/psp-sev.h index fcdb1023d..6c4f73d02 100644 --- a/libc/kernel/uapi/linux/psp-sev.h +++ b/libc/kernel/uapi/linux/psp-sev.h @@ -67,6 +67,7 @@ struct sev_user_data_status { __u8 build; __u32 guest_count; } __packed; +#define SEV_STATUS_FLAGS_CONFIG_ES 0x0100 struct sev_user_data_pek_csr { __u64 address; __u32 length; diff --git a/libc/kernel/uapi/linux/ptp_clock.h b/libc/kernel/uapi/linux/ptp_clock.h index 861810198..3d0dc24d6 100644 --- a/libc/kernel/uapi/linux/ptp_clock.h +++ b/libc/kernel/uapi/linux/ptp_clock.h @@ -43,7 +43,8 @@ struct ptp_clock_caps { int pps; int n_pins; int cross_timestamping; - int rsv[13]; + int adjust_phase; + int rsv[12]; }; struct ptp_extts_request { unsigned int index; diff --git a/libc/kernel/uapi/linux/rds.h b/libc/kernel/uapi/linux/rds.h index 537aab5d0..bc2923344 100644 --- a/libc/kernel/uapi/linux/rds.h +++ b/libc/kernel/uapi/linux/rds.h @@ -32,10 +32,11 @@ #define SO_RDS_TRANSPORT 8 #define SO_RDS_MSG_RXPATH_LATENCY 10 #define RDS_TRANS_IB 0 -#define RDS_TRANS_IWARP 1 +#define RDS_TRANS_GAP 1 #define RDS_TRANS_TCP 2 #define RDS_TRANS_COUNT 3 #define RDS_TRANS_NONE (~0) +#define RDS_TRANS_IWARP RDS_TRANS_GAP #define SIOCRDSSETTOS (SIOCPROTOPRIVATE) #define SIOCRDSGETTOS (SIOCPROTOPRIVATE + 1) typedef __u8 rds_tos_t; diff --git a/libc/kernel/uapi/linux/rtc.h b/libc/kernel/uapi/linux/rtc.h index 3312f69de..8e70eba5c 100644 --- a/libc/kernel/uapi/linux/rtc.h +++ b/libc/kernel/uapi/linux/rtc.h @@ -69,6 +69,7 @@ struct rtc_pll_info { #define RTC_VL_BACKUP_LOW _BITUL(1) #define RTC_VL_BACKUP_EMPTY _BITUL(2) #define RTC_VL_ACCURACY_LOW _BITUL(3) +#define RTC_VL_BACKUP_SWITCH _BITUL(4) #define RTC_VL_READ _IOR('p', 0x13, unsigned int) #define RTC_VL_CLR _IO('p', 0x14) #define RTC_IRQF 0x80 diff --git a/libc/kernel/uapi/linux/rtnetlink.h b/libc/kernel/uapi/linux/rtnetlink.h index 295fbedf1..f7be4a540 100644 --- a/libc/kernel/uapi/linux/rtnetlink.h +++ b/libc/kernel/uapi/linux/rtnetlink.h @@ -444,9 +444,11 @@ enum { TCA_HW_OFFLOAD, TCA_INGRESS_BLOCK, TCA_EGRESS_BLOCK, + TCA_DUMP_FLAGS, __TCA_MAX }; #define TCA_MAX (__TCA_MAX - 1) +#define TCA_DUMP_FLAGS_TERSE (1 << 0) #define TCA_RTA(r) ((struct rtattr *) (((char *) (r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) #define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct tcmsg)) struct nduseroptmsg { diff --git a/libc/kernel/uapi/linux/spi/spidev.h b/libc/kernel/uapi/linux/spi/spidev.h index 343285b20..dede0f088 100644 --- a/libc/kernel/uapi/linux/spi/spidev.h +++ b/libc/kernel/uapi/linux/spi/spidev.h @@ -36,6 +36,10 @@ #define SPI_TX_QUAD 0x200 #define SPI_RX_DUAL 0x400 #define SPI_RX_QUAD 0x800 +#define SPI_CS_WORD 0x1000 +#define SPI_TX_OCTAL 0x2000 +#define SPI_RX_OCTAL 0x4000 +#define SPI_3WIRE_HIZ 0x8000 #define SPI_IOC_MAGIC 'k' struct spi_ioc_transfer { __u64 tx_buf; diff --git a/libc/kernel/uapi/linux/stat.h b/libc/kernel/uapi/linux/stat.h index 98fdbeaa9..919763eab 100644 --- a/libc/kernel/uapi/linux/stat.h +++ b/libc/kernel/uapi/linux/stat.h @@ -77,7 +77,9 @@ struct statx { __u32 stx_rdev_minor; __u32 stx_dev_major; __u32 stx_dev_minor; - __u64 __spare2[14]; + __u64 stx_mnt_id; + __u64 __spare2; + __u64 __spare3[12]; }; #define STATX_TYPE 0x00000001U #define STATX_MODE 0x00000002U @@ -92,13 +94,16 @@ struct statx { #define STATX_BLOCKS 0x00000400U #define STATX_BASIC_STATS 0x000007ffU #define STATX_BTIME 0x00000800U -#define STATX_ALL 0x00000fffU +#define STATX_MNT_ID 0x00001000U #define STATX__RESERVED 0x80000000U +#define STATX_ALL 0x00000fffU #define STATX_ATTR_COMPRESSED 0x00000004 #define STATX_ATTR_IMMUTABLE 0x00000010 #define STATX_ATTR_APPEND 0x00000020 #define STATX_ATTR_NODUMP 0x00000040 #define STATX_ATTR_ENCRYPTED 0x00000800 #define STATX_ATTR_AUTOMOUNT 0x00001000 +#define STATX_ATTR_MOUNT_ROOT 0x00002000 #define STATX_ATTR_VERITY 0x00100000 +#define STATX_ATTR_DAX 0x00002000 #endif diff --git a/libc/kernel/uapi/linux/tc_act/tc_gate.h b/libc/kernel/uapi/linux/tc_act/tc_gate.h new file mode 100644 index 000000000..f0a64127e --- /dev/null +++ b/libc/kernel/uapi/linux/tc_act/tc_gate.h @@ -0,0 +1,56 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef __LINUX_TC_GATE_H +#define __LINUX_TC_GATE_H +#include <linux/pkt_cls.h> +struct tc_gate { + tc_gen; +}; +enum { + TCA_GATE_ENTRY_UNSPEC, + TCA_GATE_ENTRY_INDEX, + TCA_GATE_ENTRY_GATE, + TCA_GATE_ENTRY_INTERVAL, + TCA_GATE_ENTRY_IPV, + TCA_GATE_ENTRY_MAX_OCTETS, + __TCA_GATE_ENTRY_MAX, +}; +#define TCA_GATE_ENTRY_MAX (__TCA_GATE_ENTRY_MAX - 1) +enum { + TCA_GATE_ONE_ENTRY_UNSPEC, + TCA_GATE_ONE_ENTRY, + __TCA_GATE_ONE_ENTRY_MAX, +}; +#define TCA_GATE_ONE_ENTRY_MAX (__TCA_GATE_ONE_ENTRY_MAX - 1) +enum { + TCA_GATE_UNSPEC, + TCA_GATE_TM, + TCA_GATE_PARMS, + TCA_GATE_PAD, + TCA_GATE_PRIORITY, + TCA_GATE_ENTRY_LIST, + TCA_GATE_BASE_TIME, + TCA_GATE_CYCLE_TIME, + TCA_GATE_CYCLE_TIME_EXT, + TCA_GATE_FLAGS, + TCA_GATE_CLOCKID, + __TCA_GATE_MAX, +}; +#define TCA_GATE_MAX (__TCA_GATE_MAX - 1) +#endif diff --git a/libc/kernel/uapi/linux/tee.h b/libc/kernel/uapi/linux/tee.h index 9ddcf1925..f23e000ab 100644 --- a/libc/kernel/uapi/linux/tee.h +++ b/libc/kernel/uapi/linux/tee.h @@ -63,6 +63,9 @@ struct tee_ioctl_buf_data { #define TEE_IOCTL_LOGIN_APPLICATION 4 #define TEE_IOCTL_LOGIN_USER_APPLICATION 5 #define TEE_IOCTL_LOGIN_GROUP_APPLICATION 6 +#define TEE_IOCTL_LOGIN_REE_KERNEL_MIN 0x80000000 +#define TEE_IOCTL_LOGIN_REE_KERNEL_MAX 0xBFFFFFFF +#define TEE_IOCTL_LOGIN_REE_KERNEL 0x80000000 struct tee_ioctl_param { __u64 attr; __u64 a; diff --git a/libc/kernel/uapi/linux/v4l2-controls.h b/libc/kernel/uapi/linux/v4l2-controls.h index e38620d6e..d060744d5 100644 --- a/libc/kernel/uapi/linux/v4l2-controls.h +++ b/libc/kernel/uapi/linux/v4l2-controls.h @@ -781,6 +781,11 @@ enum v4l2_auto_focus_range { }; #define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE + 32) #define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE + 33) +#define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE + 34) +#define V4L2_CAMERA_ORIENTATION_FRONT 0 +#define V4L2_CAMERA_ORIENTATION_BACK 1 +#define V4L2_CAMERA_ORIENTATION_EXTERNAL 2 +#define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE + 35) #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) #define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) #define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1) diff --git a/libc/kernel/uapi/linux/v4l2-subdev.h b/libc/kernel/uapi/linux/v4l2-subdev.h index 303d167c3..da81738c5 100644 --- a/libc/kernel/uapi/linux/v4l2-subdev.h +++ b/libc/kernel/uapi/linux/v4l2-subdev.h @@ -79,7 +79,14 @@ struct v4l2_subdev_selection { struct v4l2_rect r; __u32 reserved[8]; }; +struct v4l2_subdev_capability { + __u32 version; + __u32 capabilities; + __u32 reserved[14]; +}; +#define V4L2_SUBDEV_CAP_RO_SUBDEV BIT(0) #define v4l2_subdev_edid v4l2_edid +#define VIDIOC_SUBDEV_QUERYCAP _IOR('V', 0, struct v4l2_subdev_capability) #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) #define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) #define VIDIOC_SUBDEV_G_FRAME_INTERVAL _IOWR('V', 21, struct v4l2_subdev_frame_interval) diff --git a/libc/kernel/uapi/linux/vboxguest.h b/libc/kernel/uapi/linux/vboxguest.h index 2eb80ef6b..d9dfa9a3f 100644 --- a/libc/kernel/uapi/linux/vboxguest.h +++ b/libc/kernel/uapi/linux/vboxguest.h @@ -53,7 +53,7 @@ struct vbg_ioctl_driver_version_info { }; #define VBG_IOCTL_DRIVER_VERSION_INFO _IOWR('V', 0, struct vbg_ioctl_driver_version_info) #define VBG_IOCTL_VMMDEV_REQUEST(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 2, s) -#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) +#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3) struct vbg_ioctl_hgcm_connect { struct vbg_ioctl_hdr hdr; union { @@ -99,7 +99,7 @@ struct vbg_ioctl_log { } in; } u; }; -#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) +#define VBG_IOCTL_LOG(s) _IO('V', 9) struct vbg_ioctl_wait_for_events { struct vbg_ioctl_hdr hdr; union { diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h index 5da4041c5..05b155192 100644 --- a/libc/kernel/uapi/linux/version.h +++ b/libc/kernel/uapi/linux/version.h @@ -16,5 +16,5 @@ *** **************************************************************************** ****************************************************************************/ -#define LINUX_VERSION_CODE 329472 +#define LINUX_VERSION_CODE 329728 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) diff --git a/libc/kernel/uapi/linux/vfio.h b/libc/kernel/uapi/linux/vfio.h index 88f81683b..e0bba3117 100644 --- a/libc/kernel/uapi/linux/vfio.h +++ b/libc/kernel/uapi/linux/vfio.h @@ -101,6 +101,7 @@ struct vfio_region_info_cap_type { #define VFIO_REGION_TYPE_PCI_VENDOR_MASK (0xffff) #define VFIO_REGION_TYPE_GFX (1) #define VFIO_REGION_TYPE_CCW (2) +#define VFIO_REGION_TYPE_MIGRATION (3) #define VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION (1) #define VFIO_REGION_SUBTYPE_INTEL_IGD_HOST_CFG (2) #define VFIO_REGION_SUBTYPE_INTEL_IGD_LPC_CFG (3) @@ -118,6 +119,24 @@ struct vfio_region_gfx_edid { #define VFIO_DEVICE_GFX_LINK_STATE_DOWN 2 }; #define VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD (1) +#define VFIO_REGION_SUBTYPE_CCW_SCHIB (2) +#define VFIO_REGION_SUBTYPE_CCW_CRW (3) +#define VFIO_REGION_SUBTYPE_MIGRATION (1) +struct vfio_device_migration_info { + __u32 device_state; +#define VFIO_DEVICE_STATE_STOP (0) +#define VFIO_DEVICE_STATE_RUNNING (1 << 0) +#define VFIO_DEVICE_STATE_SAVING (1 << 1) +#define VFIO_DEVICE_STATE_RESUMING (1 << 2) +#define VFIO_DEVICE_STATE_MASK (VFIO_DEVICE_STATE_RUNNING | VFIO_DEVICE_STATE_SAVING | VFIO_DEVICE_STATE_RESUMING) +#define VFIO_DEVICE_STATE_VALID(state) (state & VFIO_DEVICE_STATE_RESUMING ? (state & VFIO_DEVICE_STATE_MASK) == VFIO_DEVICE_STATE_RESUMING : 1) +#define VFIO_DEVICE_STATE_IS_ERROR(state) ((state & VFIO_DEVICE_STATE_MASK) == (VFIO_DEVICE_STATE_SAVING | VFIO_DEVICE_STATE_RESUMING)) +#define VFIO_DEVICE_STATE_SET_ERROR(state) ((state & ~VFIO_DEVICE_STATE_MASK) | VFIO_DEVICE_SATE_SAVING | VFIO_DEVICE_STATE_RESUMING) + __u32 reserved; + __u64 pending_bytes; + __u64 data_offset; + __u64 data_size; +}; #define VFIO_REGION_INFO_CAP_MSIX_MAPPABLE 3 #define VFIO_REGION_INFO_CAP_NVLINK2_SSATGT 4 struct vfio_region_info_cap_nvlink2_ssatgt { @@ -185,6 +204,7 @@ enum { }; enum { VFIO_CCW_IO_IRQ_INDEX, + VFIO_CCW_CRW_IRQ_INDEX, VFIO_CCW_NUM_IRQS }; struct vfio_pci_dependent_device { @@ -274,6 +294,13 @@ struct vfio_iommu_type1_info_cap_iova_range { __u32 reserved; struct vfio_iova_range iova_ranges[]; }; +#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION 2 +struct vfio_iommu_type1_info_cap_migration { + struct vfio_info_cap_header header; + __u32 flags; + __u64 pgsize_bitmap; + __u64 max_dirty_bitmap_size; +}; #define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) struct vfio_iommu_type1_dma_map { __u32 argsz; @@ -285,15 +312,36 @@ struct vfio_iommu_type1_dma_map { __u64 size; }; #define VFIO_IOMMU_MAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 13) +struct vfio_bitmap { + __u64 pgsize; + __u64 size; + __u64 __user * data; +}; struct vfio_iommu_type1_dma_unmap { __u32 argsz; __u32 flags; +#define VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP (1 << 0) __u64 iova; __u64 size; + __u8 data[]; }; #define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14) #define VFIO_IOMMU_ENABLE _IO(VFIO_TYPE, VFIO_BASE + 15) #define VFIO_IOMMU_DISABLE _IO(VFIO_TYPE, VFIO_BASE + 16) +struct vfio_iommu_type1_dirty_bitmap { + __u32 argsz; + __u32 flags; +#define VFIO_IOMMU_DIRTY_PAGES_FLAG_START (1 << 0) +#define VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP (1 << 1) +#define VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP (1 << 2) + __u8 data[]; +}; +struct vfio_iommu_type1_dirty_bitmap_get { + __u64 iova; + __u64 size; + struct vfio_bitmap bitmap; +}; +#define VFIO_IOMMU_DIRTY_PAGES _IO(VFIO_TYPE, VFIO_BASE + 17) struct vfio_iommu_spapr_tce_ddw_info { __u64 pgsizes; __u32 max_dynamic_windows_supported; diff --git a/libc/kernel/uapi/linux/vfio_ccw.h b/libc/kernel/uapi/linux/vfio_ccw.h index 6ed6830e4..a6defc543 100644 --- a/libc/kernel/uapi/linux/vfio_ccw.h +++ b/libc/kernel/uapi/linux/vfio_ccw.h @@ -34,4 +34,12 @@ struct ccw_cmd_region { __u32 command; __u32 ret_code; } __packed; +struct ccw_schib_region { +#define SCHIB_AREA_SIZE 52 + __u8 schib_area[SCHIB_AREA_SIZE]; +} __packed; +struct ccw_crw_region { + __u32 crw; + __u32 pad; +} __packed; #endif diff --git a/libc/kernel/uapi/linux/vhost.h b/libc/kernel/uapi/linux/vhost.h index 4546023fa..0349fa797 100644 --- a/libc/kernel/uapi/linux/vhost.h +++ b/libc/kernel/uapi/linux/vhost.h @@ -21,6 +21,7 @@ #include <linux/vhost_types.h> #include <linux/types.h> #include <linux/ioctl.h> +#define VHOST_FILE_UNBIND - 1 #define VHOST_VIRTIO 0xAF #define VHOST_GET_FEATURES _IOR(VHOST_VIRTIO, 0x00, __u64) #define VHOST_SET_FEATURES _IOW(VHOST_VIRTIO, 0x00, __u64) @@ -60,4 +61,5 @@ #define VHOST_VDPA_SET_CONFIG _IOW(VHOST_VIRTIO, 0x74, struct vhost_vdpa_config) #define VHOST_VDPA_SET_VRING_ENABLE _IOW(VHOST_VIRTIO, 0x75, struct vhost_vring_state) #define VHOST_VDPA_GET_VRING_NUM _IOR(VHOST_VIRTIO, 0x76, __u16) +#define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int) #endif diff --git a/libc/kernel/uapi/linux/videodev2.h b/libc/kernel/uapi/linux/videodev2.h index 1209fb77c..d8c754910 100644 --- a/libc/kernel/uapi/linux/videodev2.h +++ b/libc/kernel/uapi/linux/videodev2.h @@ -188,6 +188,7 @@ struct v4l2_capability { #define V4L2_CAP_STREAMING 0x04000000 #define V4L2_CAP_META_OUTPUT 0x08000000 #define V4L2_CAP_TOUCH 0x10000000 +#define V4L2_CAP_IO_MC 0x20000000 #define V4L2_CAP_DEVICE_CAPS 0x80000000 struct v4l2_pix_format { __u32 width; @@ -420,7 +421,8 @@ struct v4l2_fmtdesc { __u32 flags; __u8 description[32]; __u32 pixelformat; - __u32 reserved[4]; + __u32 mbus_code; + __u32 reserved[3]; }; #define V4L2_FMT_FLAG_COMPRESSED 0x0001 #define V4L2_FMT_FLAG_EMULATED 0x0002 diff --git a/libc/kernel/uapi/linux/virtio_ids.h b/libc/kernel/uapi/linux/virtio_ids.h index 9fd6b658c..7b67d7674 100644 --- a/libc/kernel/uapi/linux/virtio_ids.h +++ b/libc/kernel/uapi/linux/virtio_ids.h @@ -33,6 +33,7 @@ #define VIRTIO_ID_VSOCK 19 #define VIRTIO_ID_CRYPTO 20 #define VIRTIO_ID_IOMMU 23 +#define VIRTIO_ID_MEM 24 #define VIRTIO_ID_FS 26 #define VIRTIO_ID_PMEM 27 #define VIRTIO_ID_MAC80211_HWSIM 29 diff --git a/libc/kernel/uapi/linux/virtio_mem.h b/libc/kernel/uapi/linux/virtio_mem.h new file mode 100644 index 000000000..854a2fe1b --- /dev/null +++ b/libc/kernel/uapi/linux/virtio_mem.h @@ -0,0 +1,81 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _LINUX_VIRTIO_MEM_H +#define _LINUX_VIRTIO_MEM_H +#include <linux/types.h> +#include <linux/virtio_types.h> +#include <linux/virtio_ids.h> +#include <linux/virtio_config.h> +#define VIRTIO_MEM_F_ACPI_PXM 0 +#define VIRTIO_MEM_REQ_PLUG 0 +#define VIRTIO_MEM_REQ_UNPLUG 1 +#define VIRTIO_MEM_REQ_UNPLUG_ALL 2 +#define VIRTIO_MEM_REQ_STATE 3 +struct virtio_mem_req_plug { + __virtio64 addr; + __virtio16 nb_blocks; + __virtio16 padding[3]; +}; +struct virtio_mem_req_unplug { + __virtio64 addr; + __virtio16 nb_blocks; + __virtio16 padding[3]; +}; +struct virtio_mem_req_state { + __virtio64 addr; + __virtio16 nb_blocks; + __virtio16 padding[3]; +}; +struct virtio_mem_req { + __virtio16 type; + __virtio16 padding[3]; + union { + struct virtio_mem_req_plug plug; + struct virtio_mem_req_unplug unplug; + struct virtio_mem_req_state state; + } u; +}; +#define VIRTIO_MEM_RESP_ACK 0 +#define VIRTIO_MEM_RESP_NACK 1 +#define VIRTIO_MEM_RESP_BUSY 2 +#define VIRTIO_MEM_RESP_ERROR 3 +#define VIRTIO_MEM_STATE_PLUGGED 0 +#define VIRTIO_MEM_STATE_UNPLUGGED 1 +#define VIRTIO_MEM_STATE_MIXED 2 +struct virtio_mem_resp_state { + __virtio16 state; +}; +struct virtio_mem_resp { + __virtio16 type; + __virtio16 padding[3]; + union { + struct virtio_mem_resp_state state; + } u; +}; +struct virtio_mem_config { + __u64 block_size; + __u16 node_id; + __u8 padding[6]; + __u64 addr; + __u64 region_size; + __u64 usable_region_size; + __u64 plugged_size; + __u64 requested_size; +}; +#endif diff --git a/libc/kernel/uapi/linux/virtio_ring.h b/libc/kernel/uapi/linux/virtio_ring.h index ba75940f7..24cf671f1 100644 --- a/libc/kernel/uapi/linux/virtio_ring.h +++ b/libc/kernel/uapi/linux/virtio_ring.h @@ -34,6 +34,9 @@ #define VRING_PACKED_EVENT_F_WRAP_CTR 15 #define VIRTIO_RING_F_INDIRECT_DESC 28 #define VIRTIO_RING_F_EVENT_IDX 29 +#define VRING_AVAIL_ALIGN_SIZE 2 +#define VRING_USED_ALIGN_SIZE 4 +#define VRING_DESC_ALIGN_SIZE 16 struct vring_desc { __virtio64 addr; __virtio32 len; @@ -49,22 +52,25 @@ struct vring_used_elem { __virtio32 id; __virtio32 len; }; +typedef struct vring_used_elem __attribute__((aligned(VRING_USED_ALIGN_SIZE))) vring_used_elem_t; struct vring_used { __virtio16 flags; __virtio16 idx; - struct vring_used_elem ring[]; + vring_used_elem_t ring[]; }; +typedef struct vring_desc __attribute__((aligned(VRING_DESC_ALIGN_SIZE))) vring_desc_t; +typedef struct vring_avail __attribute__((aligned(VRING_AVAIL_ALIGN_SIZE))) vring_avail_t; +typedef struct vring_used __attribute__((aligned(VRING_USED_ALIGN_SIZE))) vring_used_t; struct vring { unsigned int num; - struct vring_desc * desc; - struct vring_avail * avail; - struct vring_used * used; + vring_desc_t * desc; + vring_avail_t * avail; + vring_used_t * used; }; -#define VRING_AVAIL_ALIGN_SIZE 2 -#define VRING_USED_ALIGN_SIZE 4 -#define VRING_DESC_ALIGN_SIZE 16 +#ifndef VIRTIO_RING_NO_LEGACY #define vring_used_event(vr) ((vr)->avail->ring[(vr)->num]) #define vring_avail_event(vr) (* (__virtio16 *) & (vr)->used->ring[(vr)->num]) +#endif struct vring_packed_desc_event { __le16 off_wrap; __le16 flags; diff --git a/libc/kernel/uapi/linux/watch_queue.h b/libc/kernel/uapi/linux/watch_queue.h new file mode 100644 index 000000000..4c4fd01af --- /dev/null +++ b/libc/kernel/uapi/linux/watch_queue.h @@ -0,0 +1,85 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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_WATCH_QUEUE_H +#define _UAPI_LINUX_WATCH_QUEUE_H +#include <linux/types.h> +#include <linux/fcntl.h> +#include <linux/ioctl.h> +#define O_NOTIFICATION_PIPE O_EXCL +#define IOC_WATCH_QUEUE_SET_SIZE _IO('W', 0x60) +#define IOC_WATCH_QUEUE_SET_FILTER _IO('W', 0x61) +enum watch_notification_type { + WATCH_TYPE_META = 0, + WATCH_TYPE_KEY_NOTIFY = 1, + WATCH_TYPE__NR = 2 +}; +enum watch_meta_notification_subtype { + WATCH_META_REMOVAL_NOTIFICATION = 0, + WATCH_META_LOSS_NOTIFICATION = 1, +}; +struct watch_notification { + __u32 type : 24; + __u32 subtype : 8; + __u32 info; +#define WATCH_INFO_LENGTH 0x0000007f +#define WATCH_INFO_LENGTH__SHIFT 0 +#define WATCH_INFO_ID 0x0000ff00 +#define WATCH_INFO_ID__SHIFT 8 +#define WATCH_INFO_TYPE_INFO 0xffff0000 +#define WATCH_INFO_TYPE_INFO__SHIFT 16 +#define WATCH_INFO_FLAG_0 0x00010000 +#define WATCH_INFO_FLAG_1 0x00020000 +#define WATCH_INFO_FLAG_2 0x00040000 +#define WATCH_INFO_FLAG_3 0x00080000 +#define WATCH_INFO_FLAG_4 0x00100000 +#define WATCH_INFO_FLAG_5 0x00200000 +#define WATCH_INFO_FLAG_6 0x00400000 +#define WATCH_INFO_FLAG_7 0x00800000 +}; +struct watch_notification_type_filter { + __u32 type; + __u32 info_filter; + __u32 info_mask; + __u32 subtype_filter[8]; +}; +struct watch_notification_filter { + __u32 nr_filters; + __u32 __reserved; + struct watch_notification_type_filter filters[]; +}; +struct watch_notification_removal { + struct watch_notification watch; + __u64 id; +}; +enum key_notification_subtype { + NOTIFY_KEY_INSTANTIATED = 0, + NOTIFY_KEY_UPDATED = 1, + NOTIFY_KEY_LINKED = 2, + NOTIFY_KEY_UNLINKED = 3, + NOTIFY_KEY_CLEARED = 4, + NOTIFY_KEY_REVOKED = 5, + NOTIFY_KEY_INVALIDATED = 6, + NOTIFY_KEY_SETATTR = 7, +}; +struct key_notification { + struct watch_notification watch; + __u32 key_id; + __u32 aux; +}; +#endif diff --git a/libc/kernel/uapi/linux/xattr.h b/libc/kernel/uapi/linux/xattr.h index 7c098f49e..fd021596f 100644 --- a/libc/kernel/uapi/linux/xattr.h +++ b/libc/kernel/uapi/linux/xattr.h @@ -30,6 +30,8 @@ #define XATTR_MAC_OSX_PREFIX_LEN (sizeof(XATTR_MAC_OSX_PREFIX) - 1) #define XATTR_BTRFS_PREFIX "btrfs." #define XATTR_BTRFS_PREFIX_LEN (sizeof(XATTR_BTRFS_PREFIX) - 1) +#define XATTR_HURD_PREFIX "gnu." +#define XATTR_HURD_PREFIX_LEN (sizeof(XATTR_HURD_PREFIX) - 1) #define XATTR_SECURITY_PREFIX "security." #define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1) #define XATTR_SYSTEM_PREFIX "system." diff --git a/libc/kernel/uapi/misc/habanalabs.h b/libc/kernel/uapi/misc/habanalabs.h index 91849ec5a..3ae172287 100644 --- a/libc/kernel/uapi/misc/habanalabs.h +++ b/libc/kernel/uapi/misc/habanalabs.h @@ -21,6 +21,9 @@ #include <linux/types.h> #include <linux/ioctl.h> #define GOYA_KMD_SRAM_RESERVED_SIZE_FROM_START 0x8000 +#define GAUDI_DRIVER_SRAM_RESERVED_SIZE_FROM_START 0x80 +#define GAUDI_FIRST_AVAILABLE_W_S_SYNC_OBJECT 48 +#define GAUDI_FIRST_AVAILABLE_W_S_MONITOR 24 enum goya_queue_id { GOYA_QUEUE_ID_DMA_0 = 0, GOYA_QUEUE_ID_DMA_1 = 1, @@ -39,6 +42,122 @@ enum goya_queue_id { GOYA_QUEUE_ID_TPC7 = 14, GOYA_QUEUE_ID_SIZE }; +enum gaudi_queue_id { + GAUDI_QUEUE_ID_DMA_0_0 = 0, + GAUDI_QUEUE_ID_DMA_0_1 = 1, + GAUDI_QUEUE_ID_DMA_0_2 = 2, + GAUDI_QUEUE_ID_DMA_0_3 = 3, + GAUDI_QUEUE_ID_DMA_1_0 = 4, + GAUDI_QUEUE_ID_DMA_1_1 = 5, + GAUDI_QUEUE_ID_DMA_1_2 = 6, + GAUDI_QUEUE_ID_DMA_1_3 = 7, + GAUDI_QUEUE_ID_CPU_PQ = 8, + GAUDI_QUEUE_ID_DMA_2_0 = 9, + GAUDI_QUEUE_ID_DMA_2_1 = 10, + GAUDI_QUEUE_ID_DMA_2_2 = 11, + GAUDI_QUEUE_ID_DMA_2_3 = 12, + GAUDI_QUEUE_ID_DMA_3_0 = 13, + GAUDI_QUEUE_ID_DMA_3_1 = 14, + GAUDI_QUEUE_ID_DMA_3_2 = 15, + GAUDI_QUEUE_ID_DMA_3_3 = 16, + GAUDI_QUEUE_ID_DMA_4_0 = 17, + GAUDI_QUEUE_ID_DMA_4_1 = 18, + GAUDI_QUEUE_ID_DMA_4_2 = 19, + GAUDI_QUEUE_ID_DMA_4_3 = 20, + GAUDI_QUEUE_ID_DMA_5_0 = 21, + GAUDI_QUEUE_ID_DMA_5_1 = 22, + GAUDI_QUEUE_ID_DMA_5_2 = 23, + GAUDI_QUEUE_ID_DMA_5_3 = 24, + GAUDI_QUEUE_ID_DMA_6_0 = 25, + GAUDI_QUEUE_ID_DMA_6_1 = 26, + GAUDI_QUEUE_ID_DMA_6_2 = 27, + GAUDI_QUEUE_ID_DMA_6_3 = 28, + GAUDI_QUEUE_ID_DMA_7_0 = 29, + GAUDI_QUEUE_ID_DMA_7_1 = 30, + GAUDI_QUEUE_ID_DMA_7_2 = 31, + GAUDI_QUEUE_ID_DMA_7_3 = 32, + GAUDI_QUEUE_ID_MME_0_0 = 33, + GAUDI_QUEUE_ID_MME_0_1 = 34, + GAUDI_QUEUE_ID_MME_0_2 = 35, + GAUDI_QUEUE_ID_MME_0_3 = 36, + GAUDI_QUEUE_ID_MME_1_0 = 37, + GAUDI_QUEUE_ID_MME_1_1 = 38, + GAUDI_QUEUE_ID_MME_1_2 = 39, + GAUDI_QUEUE_ID_MME_1_3 = 40, + GAUDI_QUEUE_ID_TPC_0_0 = 41, + GAUDI_QUEUE_ID_TPC_0_1 = 42, + GAUDI_QUEUE_ID_TPC_0_2 = 43, + GAUDI_QUEUE_ID_TPC_0_3 = 44, + GAUDI_QUEUE_ID_TPC_1_0 = 45, + GAUDI_QUEUE_ID_TPC_1_1 = 46, + GAUDI_QUEUE_ID_TPC_1_2 = 47, + GAUDI_QUEUE_ID_TPC_1_3 = 48, + GAUDI_QUEUE_ID_TPC_2_0 = 49, + GAUDI_QUEUE_ID_TPC_2_1 = 50, + GAUDI_QUEUE_ID_TPC_2_2 = 51, + GAUDI_QUEUE_ID_TPC_2_3 = 52, + GAUDI_QUEUE_ID_TPC_3_0 = 53, + GAUDI_QUEUE_ID_TPC_3_1 = 54, + GAUDI_QUEUE_ID_TPC_3_2 = 55, + GAUDI_QUEUE_ID_TPC_3_3 = 56, + GAUDI_QUEUE_ID_TPC_4_0 = 57, + GAUDI_QUEUE_ID_TPC_4_1 = 58, + GAUDI_QUEUE_ID_TPC_4_2 = 59, + GAUDI_QUEUE_ID_TPC_4_3 = 60, + GAUDI_QUEUE_ID_TPC_5_0 = 61, + GAUDI_QUEUE_ID_TPC_5_1 = 62, + GAUDI_QUEUE_ID_TPC_5_2 = 63, + GAUDI_QUEUE_ID_TPC_5_3 = 64, + GAUDI_QUEUE_ID_TPC_6_0 = 65, + GAUDI_QUEUE_ID_TPC_6_1 = 66, + GAUDI_QUEUE_ID_TPC_6_2 = 67, + GAUDI_QUEUE_ID_TPC_6_3 = 68, + GAUDI_QUEUE_ID_TPC_7_0 = 69, + GAUDI_QUEUE_ID_TPC_7_1 = 70, + GAUDI_QUEUE_ID_TPC_7_2 = 71, + GAUDI_QUEUE_ID_TPC_7_3 = 72, + GAUDI_QUEUE_ID_NIC_0_0 = 73, + GAUDI_QUEUE_ID_NIC_0_1 = 74, + GAUDI_QUEUE_ID_NIC_0_2 = 75, + GAUDI_QUEUE_ID_NIC_0_3 = 76, + GAUDI_QUEUE_ID_NIC_1_0 = 77, + GAUDI_QUEUE_ID_NIC_1_1 = 78, + GAUDI_QUEUE_ID_NIC_1_2 = 79, + GAUDI_QUEUE_ID_NIC_1_3 = 80, + GAUDI_QUEUE_ID_NIC_2_0 = 81, + GAUDI_QUEUE_ID_NIC_2_1 = 82, + GAUDI_QUEUE_ID_NIC_2_2 = 83, + GAUDI_QUEUE_ID_NIC_2_3 = 84, + GAUDI_QUEUE_ID_NIC_3_0 = 85, + GAUDI_QUEUE_ID_NIC_3_1 = 86, + GAUDI_QUEUE_ID_NIC_3_2 = 87, + GAUDI_QUEUE_ID_NIC_3_3 = 88, + GAUDI_QUEUE_ID_NIC_4_0 = 89, + GAUDI_QUEUE_ID_NIC_4_1 = 90, + GAUDI_QUEUE_ID_NIC_4_2 = 91, + GAUDI_QUEUE_ID_NIC_4_3 = 92, + GAUDI_QUEUE_ID_NIC_5_0 = 93, + GAUDI_QUEUE_ID_NIC_5_1 = 94, + GAUDI_QUEUE_ID_NIC_5_2 = 95, + GAUDI_QUEUE_ID_NIC_5_3 = 96, + GAUDI_QUEUE_ID_NIC_6_0 = 97, + GAUDI_QUEUE_ID_NIC_6_1 = 98, + GAUDI_QUEUE_ID_NIC_6_2 = 99, + GAUDI_QUEUE_ID_NIC_6_3 = 100, + GAUDI_QUEUE_ID_NIC_7_0 = 101, + GAUDI_QUEUE_ID_NIC_7_1 = 102, + GAUDI_QUEUE_ID_NIC_7_2 = 103, + GAUDI_QUEUE_ID_NIC_7_3 = 104, + GAUDI_QUEUE_ID_NIC_8_0 = 105, + GAUDI_QUEUE_ID_NIC_8_1 = 106, + GAUDI_QUEUE_ID_NIC_8_2 = 107, + GAUDI_QUEUE_ID_NIC_8_3 = 108, + GAUDI_QUEUE_ID_NIC_9_0 = 109, + GAUDI_QUEUE_ID_NIC_9_1 = 110, + GAUDI_QUEUE_ID_NIC_9_2 = 111, + GAUDI_QUEUE_ID_NIC_9_3 = 112, + GAUDI_QUEUE_ID_SIZE +}; enum goya_engine_id { GOYA_ENGINE_ID_DMA_0 = 0, GOYA_ENGINE_ID_DMA_1, @@ -56,6 +175,39 @@ enum goya_engine_id { GOYA_ENGINE_ID_TPC_7, GOYA_ENGINE_ID_SIZE }; +enum gaudi_engine_id { + GAUDI_ENGINE_ID_DMA_0 = 0, + GAUDI_ENGINE_ID_DMA_1, + GAUDI_ENGINE_ID_DMA_2, + GAUDI_ENGINE_ID_DMA_3, + GAUDI_ENGINE_ID_DMA_4, + GAUDI_ENGINE_ID_DMA_5, + GAUDI_ENGINE_ID_DMA_6, + GAUDI_ENGINE_ID_DMA_7, + GAUDI_ENGINE_ID_MME_0, + GAUDI_ENGINE_ID_MME_1, + GAUDI_ENGINE_ID_MME_2, + GAUDI_ENGINE_ID_MME_3, + GAUDI_ENGINE_ID_TPC_0, + GAUDI_ENGINE_ID_TPC_1, + GAUDI_ENGINE_ID_TPC_2, + GAUDI_ENGINE_ID_TPC_3, + GAUDI_ENGINE_ID_TPC_4, + GAUDI_ENGINE_ID_TPC_5, + GAUDI_ENGINE_ID_TPC_6, + GAUDI_ENGINE_ID_TPC_7, + GAUDI_ENGINE_ID_NIC_0, + GAUDI_ENGINE_ID_NIC_1, + GAUDI_ENGINE_ID_NIC_2, + GAUDI_ENGINE_ID_NIC_3, + GAUDI_ENGINE_ID_NIC_4, + GAUDI_ENGINE_ID_NIC_5, + GAUDI_ENGINE_ID_NIC_6, + GAUDI_ENGINE_ID_NIC_7, + GAUDI_ENGINE_ID_NIC_8, + GAUDI_ENGINE_ID_NIC_9, + GAUDI_ENGINE_ID_SIZE +}; enum hl_device_status { HL_DEVICE_STATUS_OPERATIONAL, HL_DEVICE_STATUS_IN_RESET, @@ -70,6 +222,7 @@ enum hl_device_status { #define HL_INFO_HW_EVENTS_AGGREGATE 7 #define HL_INFO_CLK_RATE 8 #define HL_INFO_RESET_COUNT 9 +#define HL_INFO_TIME_SYNC 10 #define HL_INFO_VERSION_MAX_LEN 128 #define HL_INFO_CARD_NAME_MAX_LEN 16 struct hl_info_hw_ip_info { @@ -79,7 +232,8 @@ struct hl_info_hw_ip_info { __u32 sram_size; __u32 num_of_events; __u32 device_id; - __u32 reserved[3]; + __u32 module_id; + __u32 reserved[2]; __u32 armcp_cpld_version; __u32 psoc_pci_pll_nr; __u32 psoc_pci_pll_nf; @@ -115,6 +269,10 @@ struct hl_info_reset_count { __u32 hard_reset_cnt; __u32 soft_reset_cnt; }; +struct hl_info_time_sync { + __u64 device_time; + __u64 host_time; +}; struct hl_info_args { __u64 return_pointer; __u32 return_size; @@ -127,7 +285,7 @@ struct hl_info_args { }; #define HL_CB_OP_CREATE 0 #define HL_CB_OP_DESTROY 1 -#define HL_MAX_CB_SIZE 0x200000 +#define HL_MAX_CB_SIZE (0x200000 - 32) struct hl_cb_in { __u64 cb_handle; __u32 op; @@ -143,13 +301,21 @@ union hl_cb_args { struct hl_cb_out out; }; struct hl_cs_chunk { - __u64 cb_handle; + union { + __u64 cb_handle; + __u64 signal_seq_arr; + }; __u32 queue_index; - __u32 cb_size; + union { + __u32 cb_size; + __u32 num_signal_seq_arr; + }; __u32 cs_chunk_flags; __u32 pad[11]; }; #define HL_CS_FLAGS_FORCE_RESTORE 0x1 +#define HL_CS_FLAGS_SIGNAL 0x2 +#define HL_CS_FLAGS_WAIT 0x4 #define HL_CS_STATUS_SUCCESS 0 #define HL_MAX_JOBS_PER_CS 512 struct hl_cs_in { diff --git a/libc/kernel/uapi/mtd/mtd-abi.h b/libc/kernel/uapi/mtd/mtd-abi.h index e1e0d59e5..680ac1e38 100644 --- a/libc/kernel/uapi/mtd/mtd-abi.h +++ b/libc/kernel/uapi/mtd/mtd-abi.h @@ -64,6 +64,7 @@ struct mtd_write_req { #define MTD_BIT_WRITEABLE 0x800 #define MTD_NO_ERASE 0x1000 #define MTD_POWERUP_LOCK 0x2000 +#define MTD_SLC_ON_MLC_EMULATION 0x4000 #define MTD_CAP_ROM 0 #define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE) #define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE) diff --git a/libc/kernel/uapi/rdma/hfi/hfi1_user.h b/libc/kernel/uapi/rdma/hfi/hfi1_user.h index e74d8378f..33529076e 100644 --- a/libc/kernel/uapi/rdma/hfi/hfi1_user.h +++ b/libc/kernel/uapi/rdma/hfi/hfi1_user.h @@ -42,6 +42,7 @@ #define HFI1_CAP_OPFN (1UL << 16) #define HFI1_CAP_SDMA_HEAD_CHECK (1UL << 17) #define HFI1_CAP_EARLY_CREDIT_RETURN (1UL << 18) +#define HFI1_CAP_AIP (1UL << 19) #define HFI1_RCVHDR_ENTSIZE_2 (1UL << 0) #define HFI1_RCVHDR_ENTSIZE_16 (1UL << 1) #define HFI1_RCVDHR_ENTSIZE_32 (1UL << 2) diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h index 39338414e..e38bd93db 100644 --- a/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h +++ b/libc/kernel/uapi/rdma/ib_user_ioctl_cmds.h @@ -72,6 +72,7 @@ enum uverbs_attrs_create_cq_cmd_attr_ids { UVERBS_ATTR_CREATE_CQ_COMP_VECTOR, UVERBS_ATTR_CREATE_CQ_FLAGS, UVERBS_ATTR_CREATE_CQ_RESP_CQE, + UVERBS_ATTR_CREATE_CQ_EVENT_FD, }; enum uverbs_attrs_destroy_cq_cmd_attr_ids { UVERBS_ATTR_DESTROY_CQ_HANDLE, @@ -91,10 +92,81 @@ enum uverbs_attrs_modify_flow_action_esp { enum uverbs_attrs_destroy_flow_action_esp { UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE, }; +enum uverbs_attrs_create_qp_cmd_attr_ids { + UVERBS_ATTR_CREATE_QP_HANDLE, + UVERBS_ATTR_CREATE_QP_XRCD_HANDLE, + UVERBS_ATTR_CREATE_QP_PD_HANDLE, + UVERBS_ATTR_CREATE_QP_SRQ_HANDLE, + UVERBS_ATTR_CREATE_QP_SEND_CQ_HANDLE, + UVERBS_ATTR_CREATE_QP_RECV_CQ_HANDLE, + UVERBS_ATTR_CREATE_QP_IND_TABLE_HANDLE, + UVERBS_ATTR_CREATE_QP_USER_HANDLE, + UVERBS_ATTR_CREATE_QP_CAP, + UVERBS_ATTR_CREATE_QP_TYPE, + UVERBS_ATTR_CREATE_QP_FLAGS, + UVERBS_ATTR_CREATE_QP_SOURCE_QPN, + UVERBS_ATTR_CREATE_QP_EVENT_FD, + UVERBS_ATTR_CREATE_QP_RESP_CAP, + UVERBS_ATTR_CREATE_QP_RESP_QP_NUM, +}; +enum uverbs_attrs_destroy_qp_cmd_attr_ids { + UVERBS_ATTR_DESTROY_QP_HANDLE, + UVERBS_ATTR_DESTROY_QP_RESP, +}; +enum uverbs_methods_qp { + UVERBS_METHOD_QP_CREATE, + UVERBS_METHOD_QP_DESTROY, +}; +enum uverbs_attrs_create_srq_cmd_attr_ids { + UVERBS_ATTR_CREATE_SRQ_HANDLE, + UVERBS_ATTR_CREATE_SRQ_PD_HANDLE, + UVERBS_ATTR_CREATE_SRQ_XRCD_HANDLE, + UVERBS_ATTR_CREATE_SRQ_CQ_HANDLE, + UVERBS_ATTR_CREATE_SRQ_USER_HANDLE, + UVERBS_ATTR_CREATE_SRQ_MAX_WR, + UVERBS_ATTR_CREATE_SRQ_MAX_SGE, + UVERBS_ATTR_CREATE_SRQ_LIMIT, + UVERBS_ATTR_CREATE_SRQ_MAX_NUM_TAGS, + UVERBS_ATTR_CREATE_SRQ_TYPE, + UVERBS_ATTR_CREATE_SRQ_EVENT_FD, + UVERBS_ATTR_CREATE_SRQ_RESP_MAX_WR, + UVERBS_ATTR_CREATE_SRQ_RESP_MAX_SGE, + UVERBS_ATTR_CREATE_SRQ_RESP_SRQ_NUM, +}; +enum uverbs_attrs_destroy_srq_cmd_attr_ids { + UVERBS_ATTR_DESTROY_SRQ_HANDLE, + UVERBS_ATTR_DESTROY_SRQ_RESP, +}; +enum uverbs_methods_srq { + UVERBS_METHOD_SRQ_CREATE, + UVERBS_METHOD_SRQ_DESTROY, +}; enum uverbs_methods_cq { UVERBS_METHOD_CQ_CREATE, UVERBS_METHOD_CQ_DESTROY, }; +enum uverbs_attrs_create_wq_cmd_attr_ids { + UVERBS_ATTR_CREATE_WQ_HANDLE, + UVERBS_ATTR_CREATE_WQ_PD_HANDLE, + UVERBS_ATTR_CREATE_WQ_CQ_HANDLE, + UVERBS_ATTR_CREATE_WQ_USER_HANDLE, + UVERBS_ATTR_CREATE_WQ_TYPE, + UVERBS_ATTR_CREATE_WQ_EVENT_FD, + UVERBS_ATTR_CREATE_WQ_MAX_WR, + UVERBS_ATTR_CREATE_WQ_MAX_SGE, + UVERBS_ATTR_CREATE_WQ_FLAGS, + UVERBS_ATTR_CREATE_WQ_RESP_MAX_WR, + UVERBS_ATTR_CREATE_WQ_RESP_MAX_SGE, + UVERBS_ATTR_CREATE_WQ_RESP_WQ_NUM, +}; +enum uverbs_attrs_destroy_wq_cmd_attr_ids { + UVERBS_ATTR_DESTROY_WQ_HANDLE, + UVERBS_ATTR_DESTROY_WQ_RESP, +}; +enum uverbs_methods_wq { + UVERBS_METHOD_WQ_CREATE, + UVERBS_METHOD_WQ_DESTROY, +}; enum uverbs_methods_actions_flow_action_ops { UVERBS_METHOD_FLOW_ACTION_ESP_CREATE, UVERBS_METHOD_FLOW_ACTION_DESTROY, diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h index ddf2abd06..788031224 100644 --- a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h +++ b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h @@ -40,6 +40,36 @@ enum ib_uverbs_access_flags { IB_UVERBS_ACCESS_RELAXED_ORDERING = IB_UVERBS_ACCESS_OPTIONAL_FIRST, IB_UVERBS_ACCESS_OPTIONAL_RANGE = ((IB_UVERBS_ACCESS_OPTIONAL_LAST << 1) - 1) & ~(IB_UVERBS_ACCESS_OPTIONAL_FIRST - 1) }; +enum ib_uverbs_srq_type { + IB_UVERBS_SRQT_BASIC, + IB_UVERBS_SRQT_XRC, + IB_UVERBS_SRQT_TM, +}; +enum ib_uverbs_wq_type { + IB_UVERBS_WQT_RQ, +}; +enum ib_uverbs_wq_flags { + IB_UVERBS_WQ_FLAGS_CVLAN_STRIPPING = 1 << 0, + IB_UVERBS_WQ_FLAGS_SCATTER_FCS = 1 << 1, + IB_UVERBS_WQ_FLAGS_DELAY_DROP = 1 << 2, + IB_UVERBS_WQ_FLAGS_PCI_WRITE_END_PADDING = 1 << 3, +}; +enum ib_uverbs_qp_type { + IB_UVERBS_QPT_RC = 2, + IB_UVERBS_QPT_UC, + IB_UVERBS_QPT_UD, + IB_UVERBS_QPT_RAW_PACKET = 8, + IB_UVERBS_QPT_XRC_INI, + IB_UVERBS_QPT_XRC_TGT, + IB_UVERBS_QPT_DRIVER = 0xFF, +}; +enum ib_uverbs_qp_create_flags { + IB_UVERBS_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1, + IB_UVERBS_QP_CREATE_SCATTER_FCS = 1 << 8, + IB_UVERBS_QP_CREATE_CVLAN_STRIPPING = 1 << 9, + IB_UVERBS_QP_CREATE_PCI_WRITE_END_PADDING = 1 << 11, + IB_UVERBS_QP_CREATE_SQ_SIG_ALL = 1 << 12, +}; enum ib_uverbs_query_port_cap_flags { IB_UVERBS_PCF_SM = 1 << 1, IB_UVERBS_PCF_NOTICE_SUP = 1 << 2, @@ -132,6 +162,13 @@ struct ib_uverbs_query_port_resp_ex { __u16 port_cap_flags2; __u8 reserved[6]; }; +struct ib_uverbs_qp_cap { + __u32 max_send_wr; + __u32 max_recv_wr; + __u32 max_send_sge; + __u32 max_recv_sge; + __u32 max_inline_data; +}; enum rdma_driver_id { RDMA_DRIVER_UNKNOWN, RDMA_DRIVER_MLX5, diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h index c7fedb6cd..59a9f53bb 100644 --- a/libc/kernel/uapi/rdma/mlx5-abi.h +++ b/libc/kernel/uapi/rdma/mlx5-abi.h @@ -66,6 +66,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 { enum mlx5_ib_alloc_ucontext_resp_mask { MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1, + MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2, }; enum mlx5_user_cmds_supp_uhw { MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0, @@ -239,6 +240,8 @@ struct mlx5_ib_create_qp { __aligned_u64 sq_buf_addr; __aligned_u64 access_key; }; + __u32 ece_options; + __u32 reserved; }; enum mlx5_rx_hash_function_flags { MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0, @@ -273,7 +276,7 @@ enum mlx5_ib_create_qp_resp_mask { }; struct mlx5_ib_create_qp_resp { __u32 bfreg_index; - __u32 reserved; + __u32 ece_options; __u32 comp_mask; __u32 tirn; __u32 tisn; @@ -316,11 +319,13 @@ struct mlx5_ib_burst_info { struct mlx5_ib_modify_qp { __u32 comp_mask; struct mlx5_ib_burst_info burst_info; - __u32 reserved; + __u32 ece_options; }; struct mlx5_ib_modify_qp_resp { __u32 response_length; __u32 dctn; + __u32 ece_options; + __u32 reserved; }; struct mlx5_ib_create_wq_resp { __u32 response_length; diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h index 37ad39242..0b7ceadb0 100644 --- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h +++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h @@ -188,6 +188,10 @@ enum mlx5_ib_flow_type { MLX5_IB_FLOW_TYPE_ALL_DEFAULT, MLX5_IB_FLOW_TYPE_MC_DEFAULT, }; +enum mlx5_ib_create_flow_flags { + MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DEFAULT_MISS = 1 << 0, + MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP = 1 << 1, +}; enum mlx5_ib_create_flow_attrs { MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, @@ -198,6 +202,7 @@ enum mlx5_ib_create_flow_attrs { MLX5_IB_ATTR_CREATE_FLOW_TAG, MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX, MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET, + MLX5_IB_ATTR_CREATE_FLOW_FLAGS, }; enum mlx5_ib_destoy_flow_attrs { MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), diff --git a/libc/kernel/uapi/rdma/rdma_user_cm.h b/libc/kernel/uapi/rdma/rdma_user_cm.h index 9042b6fa4..96187345a 100644 --- a/libc/kernel/uapi/rdma/rdma_user_cm.h +++ b/libc/kernel/uapi/rdma/rdma_user_cm.h @@ -127,6 +127,8 @@ struct rdma_ucm_query_route_resp { __u32 num_paths; __u8 port_num; __u8 reserved[3]; + __u32 ibdev_index; + __u32 reserved1; }; struct rdma_ucm_query_addr_resp { __aligned_u64 node_guid; @@ -137,6 +139,8 @@ struct rdma_ucm_query_addr_resp { __u16 dst_size; struct sockaddr_storage src_addr; struct sockaddr_storage dst_addr; + __u32 ibdev_index; + __u32 reserved1; }; struct rdma_ucm_query_path_resp { __u32 num_paths; @@ -164,10 +168,15 @@ struct rdma_ucm_ud_param { __u8 private_data_len; __u8 reserved[7]; }; +struct rdma_ucm_ece { + __u32 vendor_id; + __u32 attr_mod; +}; struct rdma_ucm_connect { struct rdma_ucm_conn_param conn_param; __u32 id; __u32 reserved; + struct rdma_ucm_ece ece; }; struct rdma_ucm_listen { __u32 id; @@ -178,11 +187,13 @@ struct rdma_ucm_accept { struct rdma_ucm_conn_param conn_param; __u32 id; __u32 reserved; + struct rdma_ucm_ece ece; }; struct rdma_ucm_reject { __u32 id; __u8 private_data_len; - __u8 reserved[3]; + __u8 reason; + __u8 reserved[2]; __u8 private_data[RDMA_MAX_PRIVATE_DATA]; }; struct rdma_ucm_disconnect { @@ -229,6 +240,7 @@ struct rdma_ucm_event_resp { struct rdma_ucm_ud_param ud; } param; __u32 reserved; + struct rdma_ucm_ece ece; }; enum { RDMA_OPTION_ID = 0, diff --git a/libc/kernel/uapi/sound/skl-tplg-interface.h b/libc/kernel/uapi/sound/skl-tplg-interface.h index 58e0afa59..b516a08bc 100644 --- a/libc/kernel/uapi/sound/skl-tplg-interface.h +++ b/libc/kernel/uapi/sound/skl-tplg-interface.h @@ -21,6 +21,8 @@ #include <linux/types.h> #define SKL_CONTROL_TYPE_BYTE_TLV 0x100 #define SKL_CONTROL_TYPE_MIC_SELECT 0x102 +#define SKL_CONTROL_TYPE_MULTI_IO_SELECT 0x103 +#define SKL_CONTROL_TYPE_MULTI_IO_SELECT_DMIC 0x104 #define HDA_SST_CFG_MAX 900 #define MAX_IN_QUEUE 8 #define MAX_OUT_QUEUE 8 diff --git a/libc/kernel/uapi/sound/sof/abi.h b/libc/kernel/uapi/sound/sof/abi.h index b0adb1144..54e9a5053 100644 --- a/libc/kernel/uapi/sound/sof/abi.h +++ b/libc/kernel/uapi/sound/sof/abi.h @@ -19,7 +19,7 @@ #ifndef __INCLUDE_UAPI_SOUND_SOF_ABI_H__ #define __INCLUDE_UAPI_SOUND_SOF_ABI_H__ #define SOF_ABI_MAJOR 3 -#define SOF_ABI_MINOR 13 +#define SOF_ABI_MINOR 16 #define SOF_ABI_PATCH 0 #define SOF_ABI_MAJOR_SHIFT 24 #define SOF_ABI_MAJOR_MASK 0xff diff --git a/libc/kernel/uapi/sound/sof/tokens.h b/libc/kernel/uapi/sound/sof/tokens.h index 7ce5ddc83..7d5ed898a 100644 --- a/libc/kernel/uapi/sound/sof/tokens.h +++ b/libc/kernel/uapi/sound/sof/tokens.h @@ -77,4 +77,8 @@ #define SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 1201 #define SOF_TKN_MUTE_LED_USE 1300 #define SOF_TKN_MUTE_LED_DIRECTION 1301 +#define SOF_TKN_INTEL_ALH_RATE 1400 +#define SOF_TKN_INTEL_ALH_CH 1401 +#define SOF_TKN_INTEL_HDA_RATE 1500 +#define SOF_TKN_INTEL_HDA_CH 1501 #endif |