diff options
Diffstat (limited to 'libc/kernel')
93 files changed, 1468 insertions, 110 deletions
diff --git a/libc/kernel/tools/update_all.py b/libc/kernel/tools/update_all.py index 9d5b02dee..cef24dd4c 100755 --- a/libc/kernel/tools/update_all.py +++ b/libc/kernel/tools/update_all.py @@ -110,7 +110,9 @@ def GenerateGlibcSyscallsHeader(updater): content += ' #define SYS_%s %s\n' % (syscall, nr_name) content += '#endif\n' - updater.editFile('%s/include/bits/glibc-syscalls.h' % libc_root, content) + syscall_file = os.path.join(libc_root, 'include/bits/glibc-syscalls.h') + updater.readFile(syscall_file) + updater.editFile(syscall_file, content) try: diff --git a/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/libc/kernel/uapi/asm-arm/asm/unistd-common.h index e7abfeb33..d9e73dc18 100644 --- a/libc/kernel/uapi/asm-arm/asm/unistd-common.h +++ b/libc/kernel/uapi/asm-arm/asm/unistd-common.h @@ -399,4 +399,10 @@ #define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425) #define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426) #define __NR_io_uring_register (__NR_SYSCALL_BASE + 427) +#define __NR_open_tree (__NR_SYSCALL_BASE + 428) +#define __NR_move_mount (__NR_SYSCALL_BASE + 429) +#define __NR_fsopen (__NR_SYSCALL_BASE + 430) +#define __NR_fsconfig (__NR_SYSCALL_BASE + 431) +#define __NR_fsmount (__NR_SYSCALL_BASE + 432) +#define __NR_fspick (__NR_SYSCALL_BASE + 433) #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/libc/kernel/uapi/asm-arm64/asm/hwcap.h index 44853a486..80935fc5d 100644 --- a/libc/kernel/uapi/asm-arm64/asm/hwcap.h +++ b/libc/kernel/uapi/asm-arm64/asm/hwcap.h @@ -50,4 +50,11 @@ #define HWCAP_SB (1 << 29) #define HWCAP_PACA (1 << 30) #define HWCAP_PACG (1UL << 31) +#define HWCAP2_DCPODP (1 << 0) +#define HWCAP2_SVE2 (1 << 1) +#define HWCAP2_SVEAES (1 << 2) +#define HWCAP2_SVEPMULL (1 << 3) +#define HWCAP2_SVEBITPERM (1 << 4) +#define HWCAP2_SVESHA3 (1 << 5) +#define HWCAP2_SVESM4 (1 << 6) #endif diff --git a/libc/kernel/uapi/asm-arm64/asm/kvm.h b/libc/kernel/uapi/asm-arm64/asm/kvm.h index e79562cd2..b62d9efb3 100644 --- a/libc/kernel/uapi/asm-arm64/asm/kvm.h +++ b/libc/kernel/uapi/asm-arm64/asm/kvm.h @@ -29,6 +29,7 @@ #include <linux/psci.h> #include <linux/types.h> #include <asm/ptrace.h> +#include <asm/sve_context.h> #define __KVM_HAVE_GUEST_DEBUG #define __KVM_HAVE_IRQ_LINE #define __KVM_HAVE_READONLY_MEM @@ -69,6 +70,9 @@ struct kvm_regs { #define KVM_ARM_VCPU_EL1_32BIT 1 #define KVM_ARM_VCPU_PSCI_0_2 2 #define KVM_ARM_VCPU_PMU_V3 3 +#define KVM_ARM_VCPU_SVE 4 +#define KVM_ARM_VCPU_PTRAUTH_ADDRESS 5 +#define KVM_ARM_VCPU_PTRAUTH_GENERIC 6 struct kvm_vcpu_init { __u32 target; __u32 features[7]; @@ -137,6 +141,20 @@ struct kvm_vcpu_events { #define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT) #define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM64 | KVM_REG_SIZE_U64 | KVM_REG_ARM_FW | ((r) & 0xffff)) #define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0) +#define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM64_SVE_ZREG_BASE 0 +#define KVM_REG_ARM64_SVE_PREG_BASE 0x400 +#define KVM_REG_ARM64_SVE_FFR_BASE 0x600 +#define KVM_ARM64_SVE_NUM_ZREGS __SVE_NUM_ZREGS +#define KVM_ARM64_SVE_NUM_PREGS __SVE_NUM_PREGS +#define KVM_ARM64_SVE_MAX_SLICES 32 +#define KVM_REG_ARM64_SVE_ZREG(n,i) (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | KVM_REG_ARM64_SVE_ZREG_BASE | KVM_REG_SIZE_U2048 | (((n) & (KVM_ARM64_SVE_NUM_ZREGS - 1)) << 5) | ((i) & (KVM_ARM64_SVE_MAX_SLICES - 1))) +#define KVM_REG_ARM64_SVE_PREG(n,i) (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | KVM_REG_ARM64_SVE_PREG_BASE | KVM_REG_SIZE_U256 | (((n) & (KVM_ARM64_SVE_NUM_PREGS - 1)) << 5) | ((i) & (KVM_ARM64_SVE_MAX_SLICES - 1))) +#define KVM_REG_ARM64_SVE_FFR(i) (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | KVM_REG_ARM64_SVE_FFR_BASE | KVM_REG_SIZE_U256 | ((i) & (KVM_ARM64_SVE_MAX_SLICES - 1))) +#define KVM_ARM64_SVE_VQ_MIN __SVE_VQ_MIN +#define KVM_ARM64_SVE_VQ_MAX __SVE_VQ_MAX +#define KVM_REG_ARM64_SVE_VLS (KVM_REG_ARM64 | KVM_REG_ARM64_SVE | KVM_REG_SIZE_U512 | 0xffff) +#define KVM_ARM64_SVE_VLS_WORDS ((KVM_ARM64_SVE_VQ_MAX - KVM_ARM64_SVE_VQ_MIN) / 64 + 1) #define KVM_DEV_ARM_VGIC_GRP_ADDR 0 #define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1 #define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2 diff --git a/libc/kernel/uapi/asm-arm64/asm/ptrace.h b/libc/kernel/uapi/asm-arm64/asm/ptrace.h index b8c046b12..c4c574829 100644 --- a/libc/kernel/uapi/asm-arm64/asm/ptrace.h +++ b/libc/kernel/uapi/asm-arm64/asm/ptrace.h @@ -46,7 +46,6 @@ #define PSR_x 0x0000ff00 #define PSR_c 0x000000ff #ifndef __ASSEMBLY__ -#include <linux/prctl.h> struct user_pt_regs { __u64 regs[31]; __u64 sp; @@ -79,8 +78,8 @@ struct user_sve_header { #define SVE_PT_REGS_MASK (1 << 0) #define SVE_PT_REGS_FPSIMD 0 #define SVE_PT_REGS_SVE SVE_PT_REGS_MASK -#define SVE_PT_VL_INHERIT (PR_SVE_VL_INHERIT >> 16) -#define SVE_PT_VL_ONEXEC (PR_SVE_SET_VL_ONEXEC >> 16) +#define SVE_PT_VL_INHERIT ((1 << 17) >> 16) +#define SVE_PT_VL_ONEXEC ((1 << 18) >> 16) #define SVE_PT_REGS_OFFSET ((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1)) / __SVE_VQ_BYTES * __SVE_VQ_BYTES) #define SVE_PT_FPSIMD_OFFSET SVE_PT_REGS_OFFSET #define SVE_PT_FPSIMD_SIZE(vq,flags) (sizeof(struct user_fpsimd_state)) diff --git a/libc/kernel/uapi/asm-generic/sockios.h b/libc/kernel/uapi/asm-generic/sockios.h index 0725dcc01..afbc6ad35 100644 --- a/libc/kernel/uapi/asm-generic/sockios.h +++ b/libc/kernel/uapi/asm-generic/sockios.h @@ -23,6 +23,6 @@ #define FIOGETOWN 0x8903 #define SIOCGPGRP 0x8904 #define SIOCATMARK 0x8905 -#define SIOCGSTAMP 0x8906 -#define SIOCGSTAMPNS 0x8907 +#define SIOCGSTAMP_OLD 0x8906 +#define SIOCGSTAMPNS_OLD 0x8907 #endif diff --git a/libc/kernel/uapi/asm-generic/unistd.h b/libc/kernel/uapi/asm-generic/unistd.h index 70d9185c3..73520e16c 100644 --- a/libc/kernel/uapi/asm-generic/unistd.h +++ b/libc/kernel/uapi/asm-generic/unistd.h @@ -386,8 +386,14 @@ #define __NR_io_uring_setup 425 #define __NR_io_uring_enter 426 #define __NR_io_uring_register 427 +#define __NR_open_tree 428 +#define __NR_move_mount 429 +#define __NR_fsopen 430 +#define __NR_fsconfig 431 +#define __NR_fsmount 432 +#define __NR_fspick 433 #undef __NR_syscalls -#define __NR_syscalls 428 +#define __NR_syscalls 434 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT) #define __NR_fcntl __NR3264_fcntl #define __NR_statfs __NR3264_statfs diff --git a/libc/kernel/uapi/asm-mips/asm/inst.h b/libc/kernel/uapi/asm-mips/asm/inst.h index 090a40b00..8489575fc 100644 --- a/libc/kernel/uapi/asm-mips/asm/inst.h +++ b/libc/kernel/uapi/asm-mips/asm/inst.h @@ -146,15 +146,15 @@ enum spec_op { tlt_op, tltu_op, teq_op, - spec5_unused_op, + seleqz_op, tne_op, - spec6_unused_op, + selnez_op, dsll_op, - spec7_unused_op, + spec5_unused_op, dsrl_op, dsra_op, dsll32_op, - spec8_unused_op, + spec6_unused_op, dsrl32_op, dsra32_op }; diff --git a/libc/kernel/uapi/asm-mips/asm/sockios.h b/libc/kernel/uapi/asm-mips/asm/sockios.h index 02261d7fd..42404183a 100644 --- a/libc/kernel/uapi/asm-mips/asm/sockios.h +++ b/libc/kernel/uapi/asm-mips/asm/sockios.h @@ -24,6 +24,6 @@ #define SIOCATMARK _IOR('s', 7, int) #define SIOCSPGRP _IOW('s', 8, pid_t) #define SIOCGPGRP _IOR('s', 9, pid_t) -#define SIOCGSTAMP 0x8906 -#define SIOCGSTAMPNS 0x8907 +#define SIOCGSTAMP_OLD 0x8906 +#define SIOCGSTAMPNS_OLD 0x8907 #endif diff --git a/libc/kernel/uapi/asm-mips/asm/unistd_n32.h b/libc/kernel/uapi/asm-mips/asm/unistd_n32.h index 8bafcf0bc..ad928ac07 100644 --- a/libc/kernel/uapi/asm-mips/asm/unistd_n32.h +++ b/libc/kernel/uapi/asm-mips/asm/unistd_n32.h @@ -374,4 +374,10 @@ #define __NR_io_uring_setup (__NR_Linux + 425) #define __NR_io_uring_enter (__NR_Linux + 426) #define __NR_io_uring_register (__NR_Linux + 427) +#define __NR_open_tree (__NR_Linux + 428) +#define __NR_move_mount (__NR_Linux + 429) +#define __NR_fsopen (__NR_Linux + 430) +#define __NR_fsconfig (__NR_Linux + 431) +#define __NR_fsmount (__NR_Linux + 432) +#define __NR_fspick (__NR_Linux + 433) #endif diff --git a/libc/kernel/uapi/asm-mips/asm/unistd_n64.h b/libc/kernel/uapi/asm-mips/asm/unistd_n64.h index 2191c2139..0ffc069a8 100644 --- a/libc/kernel/uapi/asm-mips/asm/unistd_n64.h +++ b/libc/kernel/uapi/asm-mips/asm/unistd_n64.h @@ -350,4 +350,10 @@ #define __NR_io_uring_setup (__NR_Linux + 425) #define __NR_io_uring_enter (__NR_Linux + 426) #define __NR_io_uring_register (__NR_Linux + 427) +#define __NR_open_tree (__NR_Linux + 428) +#define __NR_move_mount (__NR_Linux + 429) +#define __NR_fsopen (__NR_Linux + 430) +#define __NR_fsconfig (__NR_Linux + 431) +#define __NR_fsmount (__NR_Linux + 432) +#define __NR_fspick (__NR_Linux + 433) #endif diff --git a/libc/kernel/uapi/asm-mips/asm/unistd_nr_n32.h b/libc/kernel/uapi/asm-mips/asm/unistd_nr_n32.h index 3ef3a317b..af3c8502c 100644 --- a/libc/kernel/uapi/asm-mips/asm/unistd_nr_n32.h +++ b/libc/kernel/uapi/asm-mips/asm/unistd_nr_n32.h @@ -19,5 +19,5 @@ #ifndef _UAPI_ASM_MIPS_UNISTD_NR_N32_H #define _UAPI_ASM_MIPS_UNISTD_NR_N32_H #define __NR_N32_Linux 6000 -#define __NR_N32_Linux_syscalls 428 +#define __NR_N32_Linux_syscalls 434 #endif diff --git a/libc/kernel/uapi/asm-mips/asm/unistd_nr_n64.h b/libc/kernel/uapi/asm-mips/asm/unistd_nr_n64.h index ececf3587..c78f3e619 100644 --- a/libc/kernel/uapi/asm-mips/asm/unistd_nr_n64.h +++ b/libc/kernel/uapi/asm-mips/asm/unistd_nr_n64.h @@ -19,5 +19,5 @@ #ifndef _UAPI_ASM_MIPS_UNISTD_NR_N64_H #define _UAPI_ASM_MIPS_UNISTD_NR_N64_H #define __NR_64_Linux 5000 -#define __NR_64_Linux_syscalls 428 +#define __NR_64_Linux_syscalls 434 #endif diff --git a/libc/kernel/uapi/asm-mips/asm/unistd_nr_o32.h b/libc/kernel/uapi/asm-mips/asm/unistd_nr_o32.h index 6fb35396d..444710e63 100644 --- a/libc/kernel/uapi/asm-mips/asm/unistd_nr_o32.h +++ b/libc/kernel/uapi/asm-mips/asm/unistd_nr_o32.h @@ -19,5 +19,5 @@ #ifndef _UAPI_ASM_MIPS_UNISTD_NR_O32_H #define _UAPI_ASM_MIPS_UNISTD_NR_O32_H #define __NR_O32_Linux 4000 -#define __NR_O32_Linux_syscalls 428 +#define __NR_O32_Linux_syscalls 434 #endif diff --git a/libc/kernel/uapi/asm-mips/asm/unistd_o32.h b/libc/kernel/uapi/asm-mips/asm/unistd_o32.h index 8330a8839..5bf392b6a 100644 --- a/libc/kernel/uapi/asm-mips/asm/unistd_o32.h +++ b/libc/kernel/uapi/asm-mips/asm/unistd_o32.h @@ -420,4 +420,10 @@ #define __NR_io_uring_setup (__NR_Linux + 425) #define __NR_io_uring_enter (__NR_Linux + 426) #define __NR_io_uring_register (__NR_Linux + 427) +#define __NR_open_tree (__NR_Linux + 428) +#define __NR_move_mount (__NR_Linux + 429) +#define __NR_fsopen (__NR_Linux + 430) +#define __NR_fsconfig (__NR_Linux + 431) +#define __NR_fsmount (__NR_Linux + 432) +#define __NR_fspick (__NR_Linux + 433) #endif diff --git a/libc/kernel/uapi/asm-x86/asm/kvm.h b/libc/kernel/uapi/asm-x86/asm/kvm.h index 10b129400..4ec3c10bd 100644 --- a/libc/kernel/uapi/asm-x86/asm/kvm.h +++ b/libc/kernel/uapi/asm-x86/asm/kvm.h @@ -318,14 +318,21 @@ struct kvm_sync_regs { #define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) #define KVM_X86_QUIRK_LAPIC_MMIO_HOLE (1 << 2) #define KVM_X86_QUIRK_OUT_7E_INC_RIP (1 << 3) +#define KVM_STATE_NESTED_FORMAT_VMX 0 +#define KVM_STATE_NESTED_FORMAT_SVM 1 #define KVM_STATE_NESTED_GUEST_MODE 0x00000001 #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 #define KVM_STATE_NESTED_EVMCS 0x00000004 #define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 #define KVM_STATE_NESTED_SMM_VMXON 0x00000002 -struct kvm_vmx_nested_state { +#define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000 +struct kvm_vmx_nested_state_data { + __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; + __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; +}; +struct kvm_vmx_nested_state_hdr { __u64 vmxon_pa; - __u64 vmcs_pa; + __u64 vmcs12_pa; struct { __u16 flags; } smm; @@ -335,9 +342,11 @@ struct kvm_nested_state { __u16 format; __u32 size; union { - struct kvm_vmx_nested_state vmx; + struct kvm_vmx_nested_state_hdr vmx; __u8 pad[120]; - }; - __u8 data[0]; + } hdr; + union { + struct kvm_vmx_nested_state_data vmx[0]; + } data; }; #endif diff --git a/libc/kernel/uapi/asm-x86/asm/perf_regs.h b/libc/kernel/uapi/asm-x86/asm/perf_regs.h index 6a015ba31..984b7ea9d 100644 --- a/libc/kernel/uapi/asm-x86/asm/perf_regs.h +++ b/libc/kernel/uapi/asm-x86/asm/perf_regs.h @@ -45,5 +45,23 @@ enum perf_event_x86_regs { PERF_REG_X86_R15, PERF_REG_X86_32_MAX = PERF_REG_X86_GS + 1, PERF_REG_X86_64_MAX = PERF_REG_X86_R15 + 1, + PERF_REG_X86_XMM0 = 32, + PERF_REG_X86_XMM1 = 34, + PERF_REG_X86_XMM2 = 36, + PERF_REG_X86_XMM3 = 38, + PERF_REG_X86_XMM4 = 40, + PERF_REG_X86_XMM5 = 42, + PERF_REG_X86_XMM6 = 44, + PERF_REG_X86_XMM7 = 46, + PERF_REG_X86_XMM8 = 48, + PERF_REG_X86_XMM9 = 50, + PERF_REG_X86_XMM10 = 52, + PERF_REG_X86_XMM11 = 54, + PERF_REG_X86_XMM12 = 56, + PERF_REG_X86_XMM13 = 58, + PERF_REG_X86_XMM14 = 60, + PERF_REG_X86_XMM15 = 62, + PERF_REG_X86_XMM_MAX = PERF_REG_X86_XMM15 + 2, }; +#define PERF_REG_EXTENDED_MASK (~((1ULL << PERF_REG_X86_XMM0) - 1)) #endif diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/libc/kernel/uapi/asm-x86/asm/unistd_32.h index bccc6f1b9..09f2e7b25 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_32.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_32.h @@ -435,4 +435,10 @@ #define __NR_io_uring_setup 425 #define __NR_io_uring_enter 426 #define __NR_io_uring_register 427 +#define __NR_open_tree 428 +#define __NR_move_mount 429 +#define __NR_fsopen 430 +#define __NR_fsconfig 431 +#define __NR_fsmount 432 +#define __NR_fspick 433 #endif diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/libc/kernel/uapi/asm-x86/asm/unistd_64.h index ddac7db98..36859b541 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_64.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_64.h @@ -357,4 +357,10 @@ #define __NR_io_uring_setup 425 #define __NR_io_uring_enter 426 #define __NR_io_uring_register 427 +#define __NR_open_tree 428 +#define __NR_move_mount 429 +#define __NR_fsopen 430 +#define __NR_fsconfig 431 +#define __NR_fsmount 432 +#define __NR_fspick 433 #endif diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h index 9c4ba12c4..d3e2d3fb1 100644 --- a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h +++ b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h @@ -310,6 +310,12 @@ #define __NR_io_uring_setup (__X32_SYSCALL_BIT + 425) #define __NR_io_uring_enter (__X32_SYSCALL_BIT + 426) #define __NR_io_uring_register (__X32_SYSCALL_BIT + 427) +#define __NR_open_tree (__X32_SYSCALL_BIT + 428) +#define __NR_move_mount (__X32_SYSCALL_BIT + 429) +#define __NR_fsopen (__X32_SYSCALL_BIT + 430) +#define __NR_fsconfig (__X32_SYSCALL_BIT + 431) +#define __NR_fsmount (__X32_SYSCALL_BIT + 432) +#define __NR_fspick (__X32_SYSCALL_BIT + 433) #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 0f7ede3b5..83365f8df 100644 --- a/libc/kernel/uapi/asm-x86/asm/vmx.h +++ b/libc/kernel/uapi/asm-x86/asm/vmx.h @@ -78,6 +78,5 @@ #define VMX_EXIT_REASONS { EXIT_REASON_EXCEPTION_NMI, "EXCEPTION_NMI" }, { EXIT_REASON_EXTERNAL_INTERRUPT, "EXTERNAL_INTERRUPT" }, { EXIT_REASON_TRIPLE_FAULT, "TRIPLE_FAULT" }, { EXIT_REASON_PENDING_INTERRUPT, "PENDING_INTERRUPT" }, { 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" } #define VMX_ABORT_SAVE_GUEST_MSR_FAIL 1 #define VMX_ABORT_LOAD_HOST_PDPTE_FAIL 2 -#define VMX_ABORT_VMCS_CORRUPTED 3 #define VMX_ABORT_LOAD_HOST_MSR_FAIL 4 #endif diff --git a/libc/kernel/uapi/drm/amdgpu_drm.h b/libc/kernel/uapi/drm/amdgpu_drm.h index 53da9dd6c..193881d16 100644 --- a/libc/kernel/uapi/drm/amdgpu_drm.h +++ b/libc/kernel/uapi/drm/amdgpu_drm.h @@ -117,6 +117,8 @@ union drm_amdgpu_bo_list { #define AMDGPU_CTX_QUERY2_FLAGS_RESET (1 << 0) #define AMDGPU_CTX_QUERY2_FLAGS_VRAMLOST (1 << 1) #define AMDGPU_CTX_QUERY2_FLAGS_GUILTY (1 << 2) +#define AMDGPU_CTX_QUERY2_FLAGS_RAS_CE (1 << 3) +#define AMDGPU_CTX_QUERY2_FLAGS_RAS_UE (1 << 4) #define AMDGPU_CTX_PRIORITY_UNSET - 2048 #define AMDGPU_CTX_PRIORITY_VERY_LOW - 1023 #define AMDGPU_CTX_PRIORITY_LOW - 512 @@ -325,6 +327,8 @@ struct drm_amdgpu_gem_va { #define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05 #define AMDGPU_CHUNK_ID_BO_HANDLES 0x06 #define AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES 0x07 +#define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_WAIT 0x08 +#define AMDGPU_CHUNK_ID_SYNCOBJ_TIMELINE_SIGNAL 0x09 struct drm_amdgpu_cs_chunk { __u32 chunk_id; __u32 length_dw; @@ -372,6 +376,11 @@ struct drm_amdgpu_cs_chunk_fence { struct drm_amdgpu_cs_chunk_sem { __u32 handle; }; +struct drm_amdgpu_cs_chunk_syncobj { + __u32 handle; + __u32 flags; + __u64 point; +}; #define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ 0 #define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ_FD 1 #define AMDGPU_FENCE_TO_HANDLE_GET_SYNC_FILE_FD 2 @@ -416,6 +425,7 @@ struct drm_amdgpu_cs_chunk_data { #define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_GPM_MEM 0x10 #define AMDGPU_INFO_FW_GFX_RLC_RESTORE_LIST_SRM_MEM 0x11 #define AMDGPU_INFO_FW_DMCU 0x12 +#define AMDGPU_INFO_FW_TA 0x13 #define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f #define AMDGPU_INFO_VRAM_USAGE 0x10 #define AMDGPU_INFO_GTT_USAGE 0x11 @@ -443,6 +453,21 @@ struct drm_amdgpu_cs_chunk_data { #define AMDGPU_INFO_SENSOR_STABLE_PSTATE_GFX_MCLK 0x9 #define AMDGPU_INFO_NUM_VRAM_CPU_PAGE_FAULTS 0x1E #define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F +#define AMDGPU_INFO_RAS_ENABLED_FEATURES 0x20 +#define AMDGPU_INFO_RAS_ENABLED_UMC (1 << 0) +#define AMDGPU_INFO_RAS_ENABLED_SDMA (1 << 1) +#define AMDGPU_INFO_RAS_ENABLED_GFX (1 << 2) +#define AMDGPU_INFO_RAS_ENABLED_MMHUB (1 << 3) +#define AMDGPU_INFO_RAS_ENABLED_ATHUB (1 << 4) +#define AMDGPU_INFO_RAS_ENABLED_PCIE (1 << 5) +#define AMDGPU_INFO_RAS_ENABLED_HDP (1 << 6) +#define AMDGPU_INFO_RAS_ENABLED_XGMI (1 << 7) +#define AMDGPU_INFO_RAS_ENABLED_DF (1 << 8) +#define AMDGPU_INFO_RAS_ENABLED_SMN (1 << 9) +#define AMDGPU_INFO_RAS_ENABLED_SEM (1 << 10) +#define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11) +#define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12) +#define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13) #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8 diff --git a/libc/kernel/uapi/drm/drm.h b/libc/kernel/uapi/drm/drm.h index ef64ed712..66adf9911 100644 --- a/libc/kernel/uapi/drm/drm.h +++ b/libc/kernel/uapi/drm/drm.h @@ -363,6 +363,7 @@ struct drm_gem_open { #define DRM_CAP_PAGE_FLIP_TARGET 0x11 #define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12 #define DRM_CAP_SYNCOBJ 0x13 +#define DRM_CAP_SYNCOBJ_TIMELINE 0x14 struct drm_get_cap { __u64 capability; __u64 value; @@ -400,8 +401,17 @@ struct drm_syncobj_handle { __s32 fd; __u32 pad; }; +struct drm_syncobj_transfer { + __u32 src_handle; + __u32 dst_handle; + __u64 src_point; + __u64 dst_point; + __u32 flags; + __u32 pad; +}; #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0) #define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1) +#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE (1 << 2) struct drm_syncobj_wait { __u64 handles; __s64 timeout_nsec; @@ -410,11 +420,26 @@ struct drm_syncobj_wait { __u32 first_signaled; __u32 pad; }; +struct drm_syncobj_timeline_wait { + __u64 handles; + __u64 points; + __s64 timeout_nsec; + __u32 count_handles; + __u32 flags; + __u32 first_signaled; + __u32 pad; +}; struct drm_syncobj_array { __u64 handles; __u32 count_handles; __u32 pad; }; +struct drm_syncobj_timeline_array { + __u64 handles; + __u64 points; + __u32 count_handles; + __u32 pad; +}; struct drm_crtc_get_sequence { __u32 crtc_id; __u32 active; @@ -542,6 +567,10 @@ extern "C" { #define DRM_IOCTL_MODE_LIST_LESSEES DRM_IOWR(0xC7, struct drm_mode_list_lessees) #define DRM_IOCTL_MODE_GET_LEASE DRM_IOWR(0xC8, struct drm_mode_get_lease) #define DRM_IOCTL_MODE_REVOKE_LEASE DRM_IOWR(0xC9, struct drm_mode_revoke_lease) +#define DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT DRM_IOWR(0xCA, struct drm_syncobj_timeline_wait) +#define DRM_IOCTL_SYNCOBJ_QUERY DRM_IOWR(0xCB, struct drm_syncobj_timeline_array) +#define DRM_IOCTL_SYNCOBJ_TRANSFER DRM_IOWR(0xCC, struct drm_syncobj_transfer) +#define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL DRM_IOWR(0xCD, struct drm_syncobj_timeline_array) #define DRM_COMMAND_BASE 0x40 #define DRM_COMMAND_END 0xA0 struct drm_event { diff --git a/libc/kernel/uapi/drm/drm_fourcc.h b/libc/kernel/uapi/drm/drm_fourcc.h index fd808535e..593d87c6a 100644 --- a/libc/kernel/uapi/drm/drm_fourcc.h +++ b/libc/kernel/uapi/drm/drm_fourcc.h @@ -70,16 +70,33 @@ extern "C" { #define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0') #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') +#define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H') +#define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H') +#define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') +#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') #define DRM_FORMAT_YUYV fourcc_code('Y', 'U', 'Y', 'V') #define DRM_FORMAT_YVYU fourcc_code('Y', 'V', 'Y', 'U') #define DRM_FORMAT_UYVY fourcc_code('U', 'Y', 'V', 'Y') #define DRM_FORMAT_VYUY fourcc_code('V', 'Y', 'U', 'Y') #define DRM_FORMAT_AYUV fourcc_code('A', 'Y', 'U', 'V') #define DRM_FORMAT_XYUV8888 fourcc_code('X', 'Y', 'U', 'V') +#define DRM_FORMAT_VUY888 fourcc_code('V', 'U', '2', '4') +#define DRM_FORMAT_VUY101010 fourcc_code('V', 'U', '3', '0') +#define DRM_FORMAT_Y210 fourcc_code('Y', '2', '1', '0') +#define DRM_FORMAT_Y212 fourcc_code('Y', '2', '1', '2') +#define DRM_FORMAT_Y216 fourcc_code('Y', '2', '1', '6') +#define DRM_FORMAT_Y410 fourcc_code('Y', '4', '1', '0') +#define DRM_FORMAT_Y412 fourcc_code('Y', '4', '1', '2') +#define DRM_FORMAT_Y416 fourcc_code('Y', '4', '1', '6') +#define DRM_FORMAT_XVYU2101010 fourcc_code('X', 'V', '3', '0') +#define DRM_FORMAT_XVYU12_16161616 fourcc_code('X', 'V', '3', '6') +#define DRM_FORMAT_XVYU16161616 fourcc_code('X', 'V', '4', '8') #define DRM_FORMAT_Y0L0 fourcc_code('Y', '0', 'L', '0') #define DRM_FORMAT_X0L0 fourcc_code('X', '0', 'L', '0') #define DRM_FORMAT_Y0L2 fourcc_code('Y', '0', 'L', '2') #define DRM_FORMAT_X0L2 fourcc_code('X', '0', 'L', '2') +#define DRM_FORMAT_YUV420_8BIT fourcc_code('Y', 'U', '0', '8') +#define DRM_FORMAT_YUV420_10BIT fourcc_code('Y', 'U', '1', '0') #define DRM_FORMAT_XRGB8888_A8 fourcc_code('X', 'R', 'A', '8') #define DRM_FORMAT_XBGR8888_A8 fourcc_code('X', 'B', 'A', '8') #define DRM_FORMAT_RGBX8888_A8 fourcc_code('R', 'X', 'A', '8') @@ -94,6 +111,7 @@ extern "C" { #define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') +#define DRM_FORMAT_P210 fourcc_code('P', '2', '1', '0') #define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') #define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2') #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') diff --git a/libc/kernel/uapi/drm/drm_mode.h b/libc/kernel/uapi/drm/drm_mode.h index 1944c9cd8..3f321d039 100644 --- a/libc/kernel/uapi/drm/drm_mode.h +++ b/libc/kernel/uapi/drm/drm_mode.h @@ -22,7 +22,6 @@ #ifdef __cplusplus extern "C" { #endif -#define DRM_DISPLAY_INFO_LEN 32 #define DRM_CONNECTOR_NAME_LEN 32 #define DRM_DISPLAY_MODE_LEN 32 #define DRM_PROP_NAME_LEN 32 diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h index d48a581a6..d83a4c0d2 100644 --- a/libc/kernel/uapi/drm/i915_drm.h +++ b/libc/kernel/uapi/drm/i915_drm.h @@ -25,6 +25,12 @@ extern "C" { #define I915_L3_PARITY_UEVENT "L3_PARITY_ERROR" #define I915_ERROR_UEVENT "ERROR" #define I915_RESET_UEVENT "RESET" +struct i915_user_extension { + __u64 next_extension; + __u32 name; + __u32 flags; + __u32 rsvd[4]; +}; enum i915_mocs_table_index { I915_MOCS_UNCACHED, I915_MOCS_PTE, @@ -37,6 +43,10 @@ enum drm_i915_gem_engine_class { I915_ENGINE_CLASS_VIDEO_ENHANCE = 3, I915_ENGINE_CLASS_INVALID = - 1 }; +struct i915_engine_class_instance { + __u16 engine_class; + __u16 engine_instance; +}; enum drm_i915_pmu_engine_sample { I915_SAMPLE_BUSY = 0, I915_SAMPLE_WAIT = 1, @@ -249,6 +259,7 @@ typedef struct _drm_i915_sarea { #define DRM_IOCTL_I915_GET_SPRITE_COLORKEY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_SPRITE_COLORKEY, struct drm_intel_sprite_colorkey) #define DRM_IOCTL_I915_GEM_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_WAIT, struct drm_i915_gem_wait) #define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create) +#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create_ext) #define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy) #define DRM_IOCTL_I915_REG_READ DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read) #define DRM_IOCTL_I915_GET_RESET_STATS DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_RESET_STATS, struct drm_i915_reset_stats) @@ -328,6 +339,7 @@ typedef struct drm_i915_irq_wait { #define I915_SCHEDULER_CAP_ENABLED (1ul << 0) #define I915_SCHEDULER_CAP_PRIORITY (1ul << 1) #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2) +#define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3) #define I915_PARAM_HUC_STATUS 42 #define I915_PARAM_HAS_EXEC_ASYNC 43 #define I915_PARAM_HAS_EXEC_FENCE 44 @@ -499,7 +511,7 @@ struct drm_i915_gem_execbuffer2 { __u32 DR4; __u32 num_cliprects; __u64 cliprects_ptr; -#define I915_EXEC_RING_MASK (7 << 0) +#define I915_EXEC_RING_MASK (0x3f) #define I915_EXEC_DEFAULT (0 << 0) #define I915_EXEC_RENDER (1 << 0) #define I915_EXEC_BSD (2 << 0) @@ -665,30 +677,12 @@ struct drm_i915_gem_context_create { __u32 ctx_id; __u32 pad; }; -struct drm_i915_gem_context_destroy { - __u32 ctx_id; - __u32 pad; -}; -struct drm_i915_reg_read { - __u64 offset; -#define I915_REG_READ_8B_WA (1ul << 0) - __u64 val; -}; -struct drm_i915_reset_stats { +struct drm_i915_gem_context_create_ext { __u32 ctx_id; __u32 flags; - __u32 reset_count; - __u32 batch_active; - __u32 batch_pending; - __u32 pad; -}; -struct drm_i915_gem_userptr { - __u64 user_ptr; - __u64 user_size; - __u32 flags; -#define I915_USERPTR_READ_ONLY 0x1 -#define I915_USERPTR_UNSYNCHRONIZED 0x80000000 - __u32 handle; +#define I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS (1u << 0) +#define I915_CONTEXT_CREATE_FLAGS_UNKNOWN (- (I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS << 1)) + __u64 extensions; }; struct drm_i915_gem_context_param { __u32 ctx_id; @@ -704,11 +698,11 @@ struct drm_i915_gem_context_param { #define I915_CONTEXT_DEFAULT_PRIORITY 0 #define I915_CONTEXT_MIN_USER_PRIORITY - 1023 #define I915_CONTEXT_PARAM_SSEU 0x7 +#define I915_CONTEXT_PARAM_RECOVERABLE 0x8 __u64 value; }; struct drm_i915_gem_context_param_sseu { - __u16 engine_class; - __u16 engine_instance; + struct i915_engine_class_instance engine; __u32 flags; __u64 slice_mask; __u64 subslice_mask; @@ -716,6 +710,41 @@ struct drm_i915_gem_context_param_sseu { __u16 max_eus_per_subslice; __u32 rsvd; }; +struct drm_i915_gem_context_create_ext_setparam { +#define I915_CONTEXT_CREATE_EXT_SETPARAM 0 + struct i915_user_extension base; + struct drm_i915_gem_context_param param; +}; +struct drm_i915_gem_context_destroy { + __u32 ctx_id; + __u32 pad; +}; +struct drm_i915_gem_vm_control { + __u64 extensions; + __u32 flags; + __u32 vm_id; +}; +struct drm_i915_reg_read { + __u64 offset; +#define I915_REG_READ_8B_WA (1ul << 0) + __u64 val; +}; +struct drm_i915_reset_stats { + __u32 ctx_id; + __u32 flags; + __u32 reset_count; + __u32 batch_active; + __u32 batch_pending; + __u32 pad; +}; +struct drm_i915_gem_userptr { + __u64 user_ptr; + __u64 user_size; + __u32 flags; +#define I915_USERPTR_READ_ONLY 0x1 +#define I915_USERPTR_UNSYNCHRONIZED 0x80000000 + __u32 handle; +}; enum drm_i915_oa_format { I915_OA_FORMAT_A13 = 1, I915_OA_FORMAT_A29, diff --git a/libc/kernel/uapi/drm/lima_drm.h b/libc/kernel/uapi/drm/lima_drm.h new file mode 100644 index 000000000..bb70cf79d --- /dev/null +++ b/libc/kernel/uapi/drm/lima_drm.h @@ -0,0 +1,129 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef __LIMA_DRM_H__ +#define __LIMA_DRM_H__ +#include "drm.h" +#ifdef __cplusplus +extern "C" { +#endif +enum drm_lima_param_gpu_id { + DRM_LIMA_PARAM_GPU_ID_UNKNOWN, + DRM_LIMA_PARAM_GPU_ID_MALI400, + DRM_LIMA_PARAM_GPU_ID_MALI450, +}; +enum drm_lima_param { + DRM_LIMA_PARAM_GPU_ID, + DRM_LIMA_PARAM_NUM_PP, + DRM_LIMA_PARAM_GP_VERSION, + DRM_LIMA_PARAM_PP_VERSION, +}; +struct drm_lima_get_param { + __u32 param; + __u32 pad; + __u64 value; +}; +struct drm_lima_gem_create { + __u32 size; + __u32 flags; + __u32 handle; + __u32 pad; +}; +struct drm_lima_gem_info { + __u32 handle; + __u32 va; + __u64 offset; +}; +#define LIMA_SUBMIT_BO_READ 0x01 +#define LIMA_SUBMIT_BO_WRITE 0x02 +struct drm_lima_gem_submit_bo { + __u32 handle; + __u32 flags; +}; +#define LIMA_GP_FRAME_REG_NUM 6 +struct drm_lima_gp_frame { + __u32 frame[LIMA_GP_FRAME_REG_NUM]; +}; +#define LIMA_PP_FRAME_REG_NUM 23 +#define LIMA_PP_WB_REG_NUM 12 +struct drm_lima_m400_pp_frame { + __u32 frame[LIMA_PP_FRAME_REG_NUM]; + __u32 num_pp; + __u32 wb[3 * LIMA_PP_WB_REG_NUM]; + __u32 plbu_array_address[4]; + __u32 fragment_stack_address[4]; +}; +struct drm_lima_m450_pp_frame { + __u32 frame[LIMA_PP_FRAME_REG_NUM]; + __u32 num_pp; + __u32 wb[3 * LIMA_PP_WB_REG_NUM]; + __u32 use_dlbu; + __u32 _pad; + union { + __u32 plbu_array_address[8]; + __u32 dlbu_regs[4]; + }; + __u32 fragment_stack_address[8]; +}; +#define LIMA_PIPE_GP 0x00 +#define LIMA_PIPE_PP 0x01 +#define LIMA_SUBMIT_FLAG_EXPLICIT_FENCE (1 << 0) +struct drm_lima_gem_submit { + __u32 ctx; + __u32 pipe; + __u32 nr_bos; + __u32 frame_size; + __u64 bos; + __u64 frame; + __u32 flags; + __u32 out_sync; + __u32 in_sync[2]; +}; +#define LIMA_GEM_WAIT_READ 0x01 +#define LIMA_GEM_WAIT_WRITE 0x02 +struct drm_lima_gem_wait { + __u32 handle; + __u32 op; + __s64 timeout_ns; +}; +struct drm_lima_ctx_create { + __u32 id; + __u32 _pad; +}; +struct drm_lima_ctx_free { + __u32 id; + __u32 _pad; +}; +#define DRM_LIMA_GET_PARAM 0x00 +#define DRM_LIMA_GEM_CREATE 0x01 +#define DRM_LIMA_GEM_INFO 0x02 +#define DRM_LIMA_GEM_SUBMIT 0x03 +#define DRM_LIMA_GEM_WAIT 0x04 +#define DRM_LIMA_CTX_CREATE 0x05 +#define DRM_LIMA_CTX_FREE 0x06 +#define DRM_IOCTL_LIMA_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_LIMA_GET_PARAM, struct drm_lima_get_param) +#define DRM_IOCTL_LIMA_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_LIMA_GEM_CREATE, struct drm_lima_gem_create) +#define DRM_IOCTL_LIMA_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_LIMA_GEM_INFO, struct drm_lima_gem_info) +#define DRM_IOCTL_LIMA_GEM_SUBMIT DRM_IOW(DRM_COMMAND_BASE + DRM_LIMA_GEM_SUBMIT, struct drm_lima_gem_submit) +#define DRM_IOCTL_LIMA_GEM_WAIT DRM_IOW(DRM_COMMAND_BASE + DRM_LIMA_GEM_WAIT, struct drm_lima_gem_wait) +#define DRM_IOCTL_LIMA_CTX_CREATE DRM_IOR(DRM_COMMAND_BASE + DRM_LIMA_CTX_CREATE, struct drm_lima_ctx_create) +#define DRM_IOCTL_LIMA_CTX_FREE DRM_IOW(DRM_COMMAND_BASE + DRM_LIMA_CTX_FREE, struct drm_lima_ctx_free) +#ifdef __cplusplus +} +#endif +#endif diff --git a/libc/kernel/uapi/drm/msm_drm.h b/libc/kernel/uapi/drm/msm_drm.h index f6bee3e32..3c1b734b2 100644 --- a/libc/kernel/uapi/drm/msm_drm.h +++ b/libc/kernel/uapi/drm/msm_drm.h @@ -40,6 +40,8 @@ struct drm_msm_timespec { #define MSM_PARAM_TIMESTAMP 0x05 #define MSM_PARAM_GMEM_BASE 0x06 #define MSM_PARAM_NR_RINGS 0x07 +#define MSM_PARAM_PP_PGTABLE 0x08 +#define MSM_PARAM_FAULTS 0x09 struct drm_msm_param { __u32 pipe; __u32 param; @@ -143,6 +145,14 @@ struct drm_msm_submitqueue { __u32 prio; __u32 id; }; +#define MSM_SUBMITQUEUE_PARAM_FAULTS 0 +struct drm_msm_submitqueue_query { + __u64 data; + __u32 id; + __u32 param; + __u32 len; + __u32 pad; +}; #define DRM_MSM_GET_PARAM 0x00 #define DRM_MSM_GEM_NEW 0x02 #define DRM_MSM_GEM_INFO 0x03 @@ -153,6 +163,7 @@ struct drm_msm_submitqueue { #define DRM_MSM_GEM_MADVISE 0x08 #define DRM_MSM_SUBMITQUEUE_NEW 0x0A #define DRM_MSM_SUBMITQUEUE_CLOSE 0x0B +#define DRM_MSM_SUBMITQUEUE_QUERY 0x0C #define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param) #define DRM_IOCTL_MSM_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new) #define DRM_IOCTL_MSM_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info) @@ -163,6 +174,7 @@ struct drm_msm_submitqueue { #define DRM_IOCTL_MSM_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_MADVISE, struct drm_msm_gem_madvise) #define DRM_IOCTL_MSM_SUBMITQUEUE_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue) #define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32) +#define DRM_IOCTL_MSM_SUBMITQUEUE_QUERY DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_QUERY, struct drm_msm_submitqueue_query) #ifdef __cplusplus } #endif diff --git a/libc/kernel/uapi/drm/panfrost_drm.h b/libc/kernel/uapi/drm/panfrost_drm.h new file mode 100644 index 000000000..17f093ba4 --- /dev/null +++ b/libc/kernel/uapi/drm/panfrost_drm.h @@ -0,0 +1,80 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 _PANFROST_DRM_H_ +#define _PANFROST_DRM_H_ +#include "drm.h" +#ifdef __cplusplus +extern "C" { +#endif +#define DRM_PANFROST_SUBMIT 0x00 +#define DRM_PANFROST_WAIT_BO 0x01 +#define DRM_PANFROST_CREATE_BO 0x02 +#define DRM_PANFROST_MMAP_BO 0x03 +#define DRM_PANFROST_GET_PARAM 0x04 +#define DRM_PANFROST_GET_BO_OFFSET 0x05 +#define DRM_IOCTL_PANFROST_SUBMIT DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_SUBMIT, struct drm_panfrost_submit) +#define DRM_IOCTL_PANFROST_WAIT_BO DRM_IOW(DRM_COMMAND_BASE + DRM_PANFROST_WAIT_BO, struct drm_panfrost_wait_bo) +#define DRM_IOCTL_PANFROST_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_CREATE_BO, struct drm_panfrost_create_bo) +#define DRM_IOCTL_PANFROST_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_MMAP_BO, struct drm_panfrost_mmap_bo) +#define DRM_IOCTL_PANFROST_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_GET_PARAM, struct drm_panfrost_get_param) +#define DRM_IOCTL_PANFROST_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_PANFROST_GET_BO_OFFSET, struct drm_panfrost_get_bo_offset) +#define PANFROST_JD_REQ_FS (1 << 0) +struct drm_panfrost_submit { + __u64 jc; + __u64 in_syncs; + __u32 in_sync_count; + __u32 out_sync; + __u64 bo_handles; + __u32 bo_handle_count; + __u32 requirements; +}; +struct drm_panfrost_wait_bo { + __u32 handle; + __u32 pad; + __s64 timeout_ns; +}; +struct drm_panfrost_create_bo { + __u32 size; + __u32 flags; + __u32 handle; + __u32 pad; + __u64 offset; +}; +struct drm_panfrost_mmap_bo { + __u32 handle; + __u32 flags; + __u64 offset; +}; +enum drm_panfrost_param { + DRM_PANFROST_PARAM_GPU_PROD_ID, +}; +struct drm_panfrost_get_param { + __u32 param; + __u32 pad; + __u64 value; +}; +struct drm_panfrost_get_bo_offset { + __u32 handle; + __u32 pad; + __u64 offset; +}; +#ifdef __cplusplus +} +#endif +#endif diff --git a/libc/kernel/uapi/linux/aspeed-p2a-ctrl.h b/libc/kernel/uapi/linux/aspeed-p2a-ctrl.h new file mode 100644 index 000000000..94e51326f --- /dev/null +++ b/libc/kernel/uapi/linux/aspeed-p2a-ctrl.h @@ -0,0 +1,33 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _UAPI_LINUX_ASPEED_P2A_CTRL_H +#define _UAPI_LINUX_ASPEED_P2A_CTRL_H +#include <linux/ioctl.h> +#include <linux/types.h> +#define ASPEED_P2A_CTRL_READ_ONLY 0 +#define ASPEED_P2A_CTRL_READWRITE 1 +struct aspeed_p2a_ctrl_mapping { + __u64 addr; + __u32 length; + __u32 flags; +}; +#define __ASPEED_P2A_CTRL_IOCTL_MAGIC 0xb3 +#define ASPEED_P2A_CTRL_IOCTL_SET_WINDOW _IOW(__ASPEED_P2A_CTRL_IOCTL_MAGIC, 0x00, struct aspeed_p2a_ctrl_mapping) +#define ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG _IOWR(__ASPEED_P2A_CTRL_IOCTL_MAGIC, 0x01, struct aspeed_p2a_ctrl_mapping) +#endif diff --git a/libc/kernel/uapi/linux/audit.h b/libc/kernel/uapi/linux/audit.h index 0698fc84c..509d734c8 100644 --- a/libc/kernel/uapi/linux/audit.h +++ b/libc/kernel/uapi/linux/audit.h @@ -79,6 +79,8 @@ #define AUDIT_REPLACE 1329 #define AUDIT_KERN_MODULE 1330 #define AUDIT_FANOTIFY 1331 +#define AUDIT_TIME_INJOFFSET 1332 +#define AUDIT_TIME_ADJNTPVAL 1333 #define AUDIT_AVC 1400 #define AUDIT_SELINUX_ERR 1401 #define AUDIT_AVC_PATH 1402 @@ -262,11 +264,19 @@ enum { #define __AUDIT_ARCH_LE 0x40000000 #define AUDIT_ARCH_AARCH64 (EM_AARCH64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE) #define AUDIT_ARCH_ALPHA (EM_ALPHA | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE) +#define AUDIT_ARCH_ARCOMPACT (EM_ARCOMPACT | __AUDIT_ARCH_LE) +#define AUDIT_ARCH_ARCOMPACTBE (EM_ARCOMPACT) +#define AUDIT_ARCH_ARCV2 (EM_ARCV2 | __AUDIT_ARCH_LE) +#define AUDIT_ARCH_ARCV2BE (EM_ARCV2) #define AUDIT_ARCH_ARM (EM_ARM | __AUDIT_ARCH_LE) #define AUDIT_ARCH_ARMEB (EM_ARM) +#define AUDIT_ARCH_C6X (EM_TI_C6000 | __AUDIT_ARCH_LE) +#define AUDIT_ARCH_C6XBE (EM_TI_C6000) #define AUDIT_ARCH_CRIS (EM_CRIS | __AUDIT_ARCH_LE) #define AUDIT_ARCH_CSKY (EM_CSKY | __AUDIT_ARCH_LE) #define AUDIT_ARCH_FRV (EM_FRV) +#define AUDIT_ARCH_H8300 (EM_H8_300) +#define AUDIT_ARCH_HEXAGON (EM_HEXAGON) #define AUDIT_ARCH_I386 (EM_386 | __AUDIT_ARCH_LE) #define AUDIT_ARCH_IA64 (EM_IA_64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE) #define AUDIT_ARCH_M32R (EM_M32R) @@ -278,6 +288,9 @@ enum { #define AUDIT_ARCH_MIPS64N32 (EM_MIPS | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_CONVENTION_MIPS64_N32) #define AUDIT_ARCH_MIPSEL64 (EM_MIPS | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE) #define AUDIT_ARCH_MIPSEL64N32 (EM_MIPS | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE | __AUDIT_ARCH_CONVENTION_MIPS64_N32) +#define AUDIT_ARCH_NDS32 (EM_NDS32 | __AUDIT_ARCH_LE) +#define AUDIT_ARCH_NDS32BE (EM_NDS32) +#define AUDIT_ARCH_NIOS2 (EM_ALTERA_NIOS2 | __AUDIT_ARCH_LE) #define AUDIT_ARCH_OPENRISC (EM_OPENRISC) #define AUDIT_ARCH_PARISC (EM_PARISC) #define AUDIT_ARCH_PARISC64 (EM_PARISC | __AUDIT_ARCH_64BIT) @@ -297,6 +310,7 @@ enum { #define AUDIT_ARCH_TILEGX (EM_TILEGX | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE) #define AUDIT_ARCH_TILEGX32 (EM_TILEGX | __AUDIT_ARCH_LE) #define AUDIT_ARCH_TILEPRO (EM_TILEPRO | __AUDIT_ARCH_LE) +#define AUDIT_ARCH_UNICORE (EM_UNICORE | __AUDIT_ARCH_LE) #define AUDIT_ARCH_X86_64 (EM_X86_64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE) #define AUDIT_ARCH_XTENSA (EM_XTENSA) #define AUDIT_PERM_EXEC 1 diff --git a/libc/kernel/uapi/linux/batman_adv.h b/libc/kernel/uapi/linux/batman_adv.h index 9cad20a15..96b259b23 100644 --- a/libc/kernel/uapi/linux/batman_adv.h +++ b/libc/kernel/uapi/linux/batman_adv.h @@ -104,6 +104,7 @@ enum batadv_nl_attrs { BATADV_ATTR_ORIG_INTERVAL, BATADV_ATTR_ELP_INTERVAL, BATADV_ATTR_THROUGHPUT_OVERRIDE, + BATADV_ATTR_MULTICAST_FANOUT, __BATADV_ATTR_AFTER_LAST, NUM_BATADV_ATTR = __BATADV_ATTR_AFTER_LAST, BATADV_ATTR_MAX = __BATADV_ATTR_AFTER_LAST - 1 diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h index edae89389..3f0942167 100644 --- a/libc/kernel/uapi/linux/bpf.h +++ b/libc/kernel/uapi/linux/bpf.h @@ -93,6 +93,7 @@ enum bpf_cmd { BPF_BTF_GET_FD_BY_ID, BPF_TASK_FD_QUERY, BPF_MAP_LOOKUP_AND_DELETE_ELEM, + BPF_MAP_FREEZE, }; enum bpf_map_type { BPF_MAP_TYPE_UNSPEC, @@ -119,6 +120,7 @@ enum bpf_map_type { BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE, BPF_MAP_TYPE_QUEUE, BPF_MAP_TYPE_STACK, + BPF_MAP_TYPE_SK_STORAGE, }; enum bpf_prog_type { BPF_PROG_TYPE_UNSPEC, @@ -144,6 +146,8 @@ enum bpf_prog_type { BPF_PROG_TYPE_LIRC_MODE2, BPF_PROG_TYPE_SK_REUSEPORT, BPF_PROG_TYPE_FLOW_DISSECTOR, + BPF_PROG_TYPE_CGROUP_SYSCTL, + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, }; enum bpf_attach_type { BPF_CGROUP_INET_INGRESS, @@ -164,6 +168,9 @@ enum bpf_attach_type { BPF_CGROUP_UDP6_SENDMSG, BPF_LIRC_MODE2, BPF_FLOW_DISSECTOR, + BPF_CGROUP_SYSCTL, + BPF_CGROUP_UDP4_RECVMSG, + BPF_CGROUP_UDP6_RECVMSG, __MAX_BPF_ATTACH_TYPE }; #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE @@ -172,6 +179,7 @@ enum bpf_attach_type { #define BPF_F_STRICT_ALIGNMENT (1U << 0) #define BPF_F_ANY_ALIGNMENT (1U << 1) #define BPF_PSEUDO_MAP_FD 1 +#define BPF_PSEUDO_MAP_VALUE 2 #define BPF_PSEUDO_CALL 1 #define BPF_ANY 0 #define BPF_NOEXIST 1 @@ -185,6 +193,8 @@ enum bpf_attach_type { #define BPF_F_WRONLY (1U << 4) #define BPF_F_STACK_BUILD_ID (1U << 5) #define BPF_F_ZERO_SEED (1U << 6) +#define BPF_F_RDONLY_PROG (1U << 7) +#define BPF_F_WRONLY_PROG (1U << 8) #define BPF_F_QUERY_EFFECTIVE (1U << 0) enum bpf_stack_build_id_status { BPF_STACK_BUILD_ID_EMPTY = 0, @@ -265,6 +275,10 @@ union bpf_attr { __aligned_u64 data_out; __u32 repeat; __u32 duration; + __u32 ctx_size_in; + __u32 ctx_size_out; + __aligned_u64 ctx_in; + __aligned_u64 ctx_out; } test; struct { union { @@ -312,7 +326,7 @@ union bpf_attr { __u64 probe_addr; } task_fd_query; } __attribute__((aligned(8))); -#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), 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), +#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), #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x enum bpf_func_id { __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID, @@ -338,8 +352,19 @@ enum bpf_func_id { #define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK #define BPF_F_CTXLEN_MASK (0xfffffULL << 32) #define BPF_F_CURRENT_NETNS (- 1L) +#define BPF_F_ADJ_ROOM_FIXED_GSO (1ULL << 0) +#define BPF_ADJ_ROOM_ENCAP_L2_MASK 0xff +#define BPF_ADJ_ROOM_ENCAP_L2_SHIFT 56 +#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 (1ULL << 1) +#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 (1ULL << 2) +#define BPF_F_ADJ_ROOM_ENCAP_L4_GRE (1ULL << 3) +#define BPF_F_ADJ_ROOM_ENCAP_L4_UDP (1ULL << 4) +#define BPF_F_ADJ_ROOM_ENCAP_L2(len) (((__u64) len & BPF_ADJ_ROOM_ENCAP_L2_MASK) << BPF_ADJ_ROOM_ENCAP_L2_SHIFT) +#define BPF_F_SYSCTL_BASE_NAME (1ULL << 0) +#define BPF_SK_STORAGE_GET_F_CREATE (1ULL << 0) enum bpf_adj_room_mode { BPF_ADJ_ROOM_NET, + BPF_ADJ_ROOM_MAC, }; enum bpf_hdr_start_off { BPF_HDR_START_MAC, @@ -523,6 +548,7 @@ struct bpf_prog_info { char name[BPF_OBJ_NAME_LEN]; __u32 ifindex; __u32 gpl_compatible : 1; + __u32 : 31; __u64 netns_dev; __u64 netns_ino; __u32 nr_jited_ksyms; @@ -670,8 +696,8 @@ struct bpf_cgroup_dev_ctx { struct bpf_raw_tracepoint_args { __u64 args[0]; }; -#define BPF_FIB_LOOKUP_DIRECT BIT(0) -#define BPF_FIB_LOOKUP_OUTPUT BIT(1) +#define BPF_FIB_LOOKUP_DIRECT (1U << 0) +#define BPF_FIB_LOOKUP_OUTPUT (1U << 1) enum { BPF_FIB_LKUP_RET_SUCCESS, BPF_FIB_LKUP_RET_BLACKHOLE, @@ -753,4 +779,8 @@ struct bpf_line_info { struct bpf_spin_lock { __u32 val; }; +struct bpf_sysctl { + __u32 write; + __u32 file_pos; +}; #endif diff --git a/libc/kernel/uapi/linux/btf.h b/libc/kernel/uapi/linux/btf.h index 6e1363151..475e2eb71 100644 --- a/libc/kernel/uapi/linux/btf.h +++ b/libc/kernel/uapi/linux/btf.h @@ -59,10 +59,12 @@ struct btf_type { #define BTF_KIND_RESTRICT 11 #define BTF_KIND_FUNC 12 #define BTF_KIND_FUNC_PROTO 13 -#define BTF_KIND_MAX 13 -#define NR_BTF_KINDS 14 +#define BTF_KIND_VAR 14 +#define BTF_KIND_DATASEC 15 +#define BTF_KIND_MAX BTF_KIND_DATASEC +#define NR_BTF_KINDS (BTF_KIND_MAX + 1) #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) -#define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16) +#define BTF_INT_OFFSET(VAL) (((VAL) & 0x00ff0000) >> 16) #define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff) #define BTF_INT_SIGNED (1 << 0) #define BTF_INT_CHAR (1 << 1) @@ -87,4 +89,16 @@ struct btf_param { __u32 name_off; __u32 type; }; +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED, +}; +struct btf_var { + __u32 linkage; +}; +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; +}; #endif diff --git a/libc/kernel/uapi/linux/elf-em.h b/libc/kernel/uapi/linux/elf-em.h index 99835aeca..d1ed1f6ce 100644 --- a/libc/kernel/uapi/linux/elf-em.h +++ b/libc/kernel/uapi/linux/elf-em.h @@ -45,14 +45,19 @@ #define EM_M32R 88 #define EM_MN10300 89 #define EM_OPENRISC 92 +#define EM_ARCOMPACT 93 #define EM_XTENSA 94 #define EM_BLACKFIN 106 +#define EM_UNICORE 110 #define EM_ALTERA_NIOS2 113 #define EM_TI_C6000 140 +#define EM_HEXAGON 164 +#define EM_NDS32 167 #define EM_AARCH64 183 #define EM_TILEPRO 188 #define EM_MICROBLAZE 189 #define EM_TILEGX 191 +#define EM_ARCV2 195 #define EM_RISCV 243 #define EM_BPF 247 #define EM_CSKY 252 diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h index 642af99f3..67a7efde0 100644 --- a/libc/kernel/uapi/linux/ethtool.h +++ b/libc/kernel/uapi/linux/ethtool.h @@ -101,9 +101,12 @@ struct ethtool_tunable { }; #define DOWNSHIFT_DEV_DEFAULT_COUNT 0xff #define DOWNSHIFT_DEV_DISABLE 0 +#define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0 +#define ETHTOOL_PHY_FAST_LINK_DOWN_OFF 0xff enum phy_tunable_id { ETHTOOL_PHY_ID_UNSPEC, ETHTOOL_PHY_DOWNSHIFT, + ETHTOOL_PHY_FAST_LINK_DOWN, __ETHTOOL_PHY_TUNABLE_COUNT, }; struct ethtool_regs { @@ -754,6 +757,8 @@ enum ethtool_link_mode_bit_indices { #define ETH_MODULE_SFF_8636_LEN 256 #define ETH_MODULE_SFF_8436 0x4 #define ETH_MODULE_SFF_8436_LEN 256 +#define ETH_MODULE_SFF_8636_MAX_LEN 640 +#define ETH_MODULE_SFF_8436_MAX_LEN 640 enum ethtool_reset_flags { ETH_RESET_MGMT = 1 << 0, ETH_RESET_IRQ = 1 << 1, diff --git a/libc/kernel/uapi/linux/fcntl.h b/libc/kernel/uapi/linux/fcntl.h index 66f27b659..e2045c8cf 100644 --- a/libc/kernel/uapi/linux/fcntl.h +++ b/libc/kernel/uapi/linux/fcntl.h @@ -60,4 +60,5 @@ #define AT_STATX_SYNC_AS_STAT 0x0000 #define AT_STATX_FORCE_SYNC 0x2000 #define AT_STATX_DONT_SYNC 0x4000 +#define AT_RECURSIVE 0x8000 #endif diff --git a/libc/kernel/uapi/linux/fou.h b/libc/kernel/uapi/linux/fou.h index 7e59bd026..a16b8c672 100644 --- a/libc/kernel/uapi/linux/fou.h +++ b/libc/kernel/uapi/linux/fou.h @@ -27,6 +27,12 @@ enum { FOU_ATTR_IPPROTO, FOU_ATTR_TYPE, FOU_ATTR_REMCSUM_NOPARTIAL, + FOU_ATTR_LOCAL_V4, + FOU_ATTR_LOCAL_V6, + FOU_ATTR_PEER_V4, + FOU_ATTR_PEER_V6, + FOU_ATTR_PEER_PORT, + FOU_ATTR_IFINDEX, __FOU_ATTR_MAX, }; #define FOU_ATTR_MAX (__FOU_ATTR_MAX - 1) diff --git a/libc/kernel/uapi/linux/fs.h b/libc/kernel/uapi/linux/fs.h index 84dc010ea..5edd66b78 100644 --- a/libc/kernel/uapi/linux/fs.h +++ b/libc/kernel/uapi/linux/fs.h @@ -219,6 +219,7 @@ struct fscrypt_key { #define SYNC_FILE_RANGE_WAIT_BEFORE 1 #define SYNC_FILE_RANGE_WRITE 2 #define SYNC_FILE_RANGE_WAIT_AFTER 4 +#define SYNC_FILE_RANGE_WRITE_AND_WAIT (SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WAIT_AFTER) typedef int __bitwise __kernel_rwf_t; #define RWF_HIPRI ((__force __kernel_rwf_t) 0x00000001) #define RWF_DSYNC ((__force __kernel_rwf_t) 0x00000002) diff --git a/libc/kernel/uapi/linux/fuse.h b/libc/kernel/uapi/linux/fuse.h index 4a76ae317..86b01f05a 100644 --- a/libc/kernel/uapi/linux/fuse.h +++ b/libc/kernel/uapi/linux/fuse.h @@ -20,7 +20,7 @@ #define _LINUX_FUSE_H #include <stdint.h> #define FUSE_KERNEL_VERSION 7 -#define FUSE_KERNEL_MINOR_VERSION 29 +#define FUSE_KERNEL_MINOR_VERSION 31 #define FUSE_ROOT_ID 1 struct fuse_attr { uint64_t ino; @@ -73,6 +73,7 @@ struct fuse_file_lock { #define FOPEN_KEEP_CACHE (1 << 1) #define FOPEN_NONSEEKABLE (1 << 2) #define FOPEN_CACHE_DIR (1 << 3) +#define FOPEN_STREAM (1 << 4) #define FUSE_ASYNC_READ (1 << 0) #define FUSE_POSIX_LOCKS (1 << 1) #define FUSE_FILE_OPS (1 << 2) @@ -98,6 +99,7 @@ struct fuse_file_lock { #define FUSE_MAX_PAGES (1 << 22) #define FUSE_CACHE_SYMLINKS (1 << 23) #define FUSE_NO_OPENDIR_SUPPORT (1 << 24) +#define FUSE_EXPLICIT_INVAL_DATA (1 << 25) #define CUSE_UNRESTRICTED_IOCTL (1 << 0) #define FUSE_RELEASE_FLUSH (1 << 0) #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1) @@ -105,14 +107,17 @@ struct fuse_file_lock { #define FUSE_LK_FLOCK (1 << 0) #define FUSE_WRITE_CACHE (1 << 0) #define FUSE_WRITE_LOCKOWNER (1 << 1) +#define FUSE_WRITE_KILL_PRIV (1 << 2) #define FUSE_READ_LOCKOWNER (1 << 1) #define FUSE_IOCTL_COMPAT (1 << 0) #define FUSE_IOCTL_UNRESTRICTED (1 << 1) #define FUSE_IOCTL_RETRY (1 << 2) #define FUSE_IOCTL_32BIT (1 << 3) #define FUSE_IOCTL_DIR (1 << 4) +#define FUSE_IOCTL_COMPAT_X32 (1 << 5) #define FUSE_IOCTL_MAX_IOV 256 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0) +#define FUSE_FSYNC_FDATASYNC (1 << 0) enum fuse_opcode { FUSE_LOOKUP = 1, FUSE_FORGET = 2, diff --git a/libc/kernel/uapi/linux/icmpv6.h b/libc/kernel/uapi/linux/icmpv6.h index ef73a7c18..798a94599 100644 --- a/libc/kernel/uapi/linux/icmpv6.h +++ b/libc/kernel/uapi/linux/icmpv6.h @@ -77,6 +77,7 @@ struct icmp6hdr { #define ICMPV6_PKT_TOOBIG 2 #define ICMPV6_TIME_EXCEED 3 #define ICMPV6_PARAMPROB 4 +#define ICMPV6_ERRMSG_MAX 127 #define ICMPV6_INFOMSG_MASK 0x80 #define ICMPV6_ECHO_REQUEST 128 #define ICMPV6_ECHO_REPLY 129 @@ -91,6 +92,7 @@ struct icmp6hdr { #define ICMPV6_MOBILE_PREFIX_SOL 146 #define ICMPV6_MOBILE_PREFIX_ADV 147 #define ICMPV6_MRDISC_ADV 151 +#define ICMPV6_MSG_MAX 255 #define ICMPV6_NOROUTE 0 #define ICMPV6_ADM_PROHIBITED 1 #define ICMPV6_NOT_NEIGHBOUR 2 diff --git a/libc/kernel/uapi/linux/if_ether.h b/libc/kernel/uapi/linux/if_ether.h index 4fb58f193..9e0b15c54 100644 --- a/libc/kernel/uapi/linux/if_ether.h +++ b/libc/kernel/uapi/linux/if_ether.h @@ -90,6 +90,7 @@ #define ETH_P_QINQ2 0x9200 #define ETH_P_QINQ3 0x9300 #define ETH_P_EDSA 0xDADA +#define ETH_P_DSA_8021Q 0xDADB #define ETH_P_IFE 0xED3E #define ETH_P_AF_IUCV 0xFBFB #define ETH_P_802_3_MIN 0x0600 diff --git a/libc/kernel/uapi/linux/if_tun.h b/libc/kernel/uapi/linux/if_tun.h index cb2d2d234..d1a8f9ecf 100644 --- a/libc/kernel/uapi/linux/if_tun.h +++ b/libc/kernel/uapi/linux/if_tun.h @@ -52,6 +52,7 @@ #define TUNSETSTEERINGEBPF _IOR('T', 224, int) #define TUNSETFILTEREBPF _IOR('T', 225, int) #define TUNSETCARRIER _IOW('T', 226, int) +#define TUNGETDEVNETNS _IO('T', 227) #define IFF_TUN 0x0001 #define IFF_TAP 0x0002 #define IFF_NAPI 0x0010 diff --git a/libc/kernel/uapi/linux/if_vlan.h b/libc/kernel/uapi/linux/if_vlan.h index 27403b639..8ca8900db 100644 --- a/libc/kernel/uapi/linux/if_vlan.h +++ b/libc/kernel/uapi/linux/if_vlan.h @@ -35,6 +35,7 @@ enum vlan_flags { VLAN_FLAG_GVRP = 0x2, VLAN_FLAG_LOOSE_BINDING = 0x4, VLAN_FLAG_MVRP = 0x8, + VLAN_FLAG_BRIDGE_BINDING = 0x10, }; enum vlan_name_types { VLAN_NAME_TYPE_PLUS_VID, diff --git a/libc/kernel/uapi/linux/input-event-codes.h b/libc/kernel/uapi/linux/input-event-codes.h index 7bbb2340e..5d20c2481 100644 --- a/libc/kernel/uapi/linux/input-event-codes.h +++ b/libc/kernel/uapi/linux/input-event-codes.h @@ -543,6 +543,7 @@ #define KEY_SCREENSAVER 0x245 #define KEY_VOICECOMMAND 0x246 #define KEY_ASSISTANT 0x247 +#define KEY_KBD_LAYOUT_NEXT 0x248 #define KEY_BRIGHTNESS_MIN 0x250 #define KEY_BRIGHTNESS_MAX 0x251 #define KEY_KBDINPUTASSIST_PREV 0x260 diff --git a/libc/kernel/uapi/linux/io_uring.h b/libc/kernel/uapi/linux/io_uring.h index fe2d0eb28..434b24bfa 100644 --- a/libc/kernel/uapi/linux/io_uring.h +++ b/libc/kernel/uapi/linux/io_uring.h @@ -32,6 +32,7 @@ struct io_uring_sqe { __kernel_rwf_t rw_flags; __u32 fsync_flags; __u16 poll_events; + __u32 sync_range_flags; }; __u64 user_data; union { @@ -40,6 +41,7 @@ struct io_uring_sqe { }; }; #define IOSQE_FIXED_FILE (1U << 0) +#define IOSQE_IO_DRAIN (1U << 1) #define IORING_SETUP_IOPOLL (1U << 0) #define IORING_SETUP_SQPOLL (1U << 1) #define IORING_SETUP_SQ_AFF (1U << 2) @@ -51,6 +53,7 @@ struct io_uring_sqe { #define IORING_OP_WRITE_FIXED 5 #define IORING_OP_POLL_ADD 6 #define IORING_OP_POLL_REMOVE 7 +#define IORING_OP_SYNC_FILE_RANGE 8 #define IORING_FSYNC_DATASYNC (1U << 0) struct io_uring_cqe { __u64 user_data; @@ -97,4 +100,6 @@ struct io_uring_params { #define IORING_UNREGISTER_BUFFERS 1 #define IORING_REGISTER_FILES 2 #define IORING_UNREGISTER_FILES 3 +#define IORING_REGISTER_EVENTFD 4 +#define IORING_UNREGISTER_EVENTFD 5 #endif diff --git a/libc/kernel/uapi/linux/ip_vs.h b/libc/kernel/uapi/linux/ip_vs.h index d89598d25..0230aae7a 100644 --- a/libc/kernel/uapi/linux/ip_vs.h +++ b/libc/kernel/uapi/linux/ip_vs.h @@ -85,6 +85,11 @@ #define IP_VS_PENAME_MAXLEN 16 #define IP_VS_IFNAME_MAXLEN 16 #define IP_VS_PEDATA_MAXLEN 255 +enum { + IP_VS_CONN_F_TUNNEL_TYPE_IPIP = 0, + IP_VS_CONN_F_TUNNEL_TYPE_GUE, + IP_VS_CONN_F_TUNNEL_TYPE_MAX, +}; struct ip_vs_service_user { __u16 protocol; __be32 addr; @@ -236,6 +241,8 @@ enum { IPVS_DEST_ATTR_STATS, IPVS_DEST_ATTR_ADDR_FAMILY, IPVS_DEST_ATTR_STATS64, + IPVS_DEST_ATTR_TUN_TYPE, + IPVS_DEST_ATTR_TUN_PORT, __IPVS_DEST_ATTR_MAX, }; #define IPVS_DEST_ATTR_MAX (__IPVS_DEST_ATTR_MAX - 1) diff --git a/libc/kernel/uapi/linux/kfd_ioctl.h b/libc/kernel/uapi/linux/kfd_ioctl.h index 5e2060617..400c4239d 100644 --- a/libc/kernel/uapi/linux/kfd_ioctl.h +++ b/libc/kernel/uapi/linux/kfd_ioctl.h @@ -148,6 +148,10 @@ struct kfd_ioctl_dbg_wave_control_args { #define KFD_HW_EXCEPTION_PER_ENGINE_RESET 1 #define KFD_HW_EXCEPTION_GPU_HANG 0 #define KFD_HW_EXCEPTION_ECC 1 +#define KFD_MEM_ERR_NO_RAS 0 +#define KFD_MEM_ERR_SRAM_ECC 1 +#define KFD_MEM_ERR_POISON_CONSUMED 2 +#define KFD_MEM_ERR_GPU_HANG 3 struct kfd_ioctl_create_event_args { __u64 event_page_offset; __u32 event_trigger_data; @@ -179,7 +183,7 @@ struct kfd_hsa_memory_exception_data { struct kfd_memory_exception_failure failure; __u64 va; __u32 gpu_id; - __u32 pad; + __u32 ErrorType; }; struct kfd_hsa_hw_exception_data { __u32 reset_type; diff --git a/libc/kernel/uapi/linux/kvm.h b/libc/kernel/uapi/linux/kvm.h index 8cfa34d76..374b0d15e 100644 --- a/libc/kernel/uapi/linux/kvm.h +++ b/libc/kernel/uapi/linux/kvm.h @@ -770,6 +770,11 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_ARM_VM_IPA_SIZE 165 #define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT 166 #define KVM_CAP_HYPERV_CPUID 167 +#define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 168 +#define KVM_CAP_PPC_IRQ_XIVE 169 +#define KVM_CAP_ARM_SVE 170 +#define KVM_CAP_ARM_PTRAUTH_ADDRESS 171 +#define KVM_CAP_ARM_PTRAUTH_GENERIC 172 #ifdef KVM_CAP_IRQ_ROUTING struct kvm_irq_routing_irqchip { __u32 irqchip; @@ -886,6 +891,7 @@ struct kvm_dirty_tlb { #define KVM_REG_SIZE_U256 0x0050000000000000ULL #define KVM_REG_SIZE_U512 0x0060000000000000ULL #define KVM_REG_SIZE_U1024 0x0070000000000000ULL +#define KVM_REG_SIZE_U2048 0x0080000000000000ULL struct kvm_reg_list { __u64 n; __u64 reg[0]; @@ -940,6 +946,8 @@ enum kvm_device_type { #define KVM_DEV_TYPE_ARM_VGIC_V3 KVM_DEV_TYPE_ARM_VGIC_V3 KVM_DEV_TYPE_ARM_VGIC_ITS, #define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS + KVM_DEV_TYPE_XIVE, +#define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_MAX, }; struct kvm_vfio_spapr_tce { @@ -1083,6 +1091,7 @@ struct kvm_enc_region { #define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state) #define KVM_CLEAR_DIRTY_LOG _IOWR(KVMIO, 0xc0, struct kvm_clear_dirty_log) #define KVM_GET_SUPPORTED_HV_CPUID _IOWR(KVMIO, 0xc1, struct kvm_cpuid2) +#define KVM_ARM_VCPU_FINALIZE _IOW(KVMIO, 0xc2, int) enum sev_cmd_id { KVM_SEV_INIT = 0, KVM_SEV_ES_INIT, diff --git a/libc/kernel/uapi/linux/lirc.h b/libc/kernel/uapi/linux/lirc.h index 515d8ce90..20b08e9ed 100644 --- a/libc/kernel/uapi/linux/lirc.h +++ b/libc/kernel/uapi/linux/lirc.h @@ -130,5 +130,6 @@ enum rc_proto { RC_PROTO_RCMM12 = 24, RC_PROTO_RCMM24 = 25, RC_PROTO_RCMM32 = 26, + RC_PROTO_XBOX_DVD = 27, }; #endif diff --git a/libc/kernel/uapi/linux/media-bus-format.h b/libc/kernel/uapi/linux/media-bus-format.h index 7c701b1ca..1b1300215 100644 --- a/libc/kernel/uapi/linux/media-bus-format.h +++ b/libc/kernel/uapi/linux/media-bus-format.h @@ -34,6 +34,7 @@ #define MEDIA_BUS_FMT_RGB666_1X24_CPADHI 0x1015 #define MEDIA_BUS_FMT_RGB666_1X7X3_SPWG 0x1010 #define MEDIA_BUS_FMT_BGR888_1X24 0x1013 +#define MEDIA_BUS_FMT_BGR888_3X8 0x101b #define MEDIA_BUS_FMT_GBR888_1X24 0x1014 #define MEDIA_BUS_FMT_RGB888_1X24 0x100a #define MEDIA_BUS_FMT_RGB888_2X12_BE 0x100b diff --git a/libc/kernel/uapi/linux/media.h b/libc/kernel/uapi/linux/media.h index 4ba0ef669..68821e70c 100644 --- a/libc/kernel/uapi/linux/media.h +++ b/libc/kernel/uapi/linux/media.h @@ -141,6 +141,10 @@ struct media_links_enum { #define MEDIA_INTF_T_V4L_SUBDEV (MEDIA_INTF_T_V4L_BASE + 3) #define MEDIA_INTF_T_V4L_SWRADIO (MEDIA_INTF_T_V4L_BASE + 4) #define MEDIA_INTF_T_V4L_TOUCH (MEDIA_INTF_T_V4L_BASE + 5) +#define MEDIA_INTF_T_ALSA_BASE 0x00000300 +#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE) +#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1) +#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2) #define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) ((media_version) >= ((4 << 16) | (19 << 8) | 0)) struct media_v2_entity { __u32 id; @@ -219,10 +223,6 @@ struct media_v2_topology { #define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER #define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER #define MEDIA_ENT_F_DTV_DECODER MEDIA_ENT_F_DV_DECODER -#define MEDIA_INTF_T_ALSA_BASE 0x00000300 -#define MEDIA_INTF_T_ALSA_PCM_CAPTURE (MEDIA_INTF_T_ALSA_BASE) -#define MEDIA_INTF_T_ALSA_PCM_PLAYBACK (MEDIA_INTF_T_ALSA_BASE + 1) -#define MEDIA_INTF_T_ALSA_CONTROL (MEDIA_INTF_T_ALSA_BASE + 2) #define MEDIA_INTF_T_ALSA_COMPRESS (MEDIA_INTF_T_ALSA_BASE + 3) #define MEDIA_INTF_T_ALSA_RAWMIDI (MEDIA_INTF_T_ALSA_BASE + 4) #define MEDIA_INTF_T_ALSA_HWDEP (MEDIA_INTF_T_ALSA_BASE + 5) diff --git a/libc/kernel/uapi/linux/mount.h b/libc/kernel/uapi/linux/mount.h index 54a471968..10c53a506 100644 --- a/libc/kernel/uapi/linux/mount.h +++ b/libc/kernel/uapi/linux/mount.h @@ -52,4 +52,38 @@ #define MS_RMT_MASK (MS_RDONLY | MS_SYNCHRONOUS | MS_MANDLOCK | MS_I_VERSION | MS_LAZYTIME) #define MS_MGC_VAL 0xC0ED0000 #define MS_MGC_MSK 0xffff0000 +#define OPEN_TREE_CLONE 1 +#define OPEN_TREE_CLOEXEC O_CLOEXEC +#define MOVE_MOUNT_F_SYMLINKS 0x00000001 +#define MOVE_MOUNT_F_AUTOMOUNTS 0x00000002 +#define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 +#define MOVE_MOUNT_T_SYMLINKS 0x00000010 +#define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020 +#define MOVE_MOUNT_T_EMPTY_PATH 0x00000040 +#define MOVE_MOUNT__MASK 0x00000077 +#define FSOPEN_CLOEXEC 0x00000001 +#define FSPICK_CLOEXEC 0x00000001 +#define FSPICK_SYMLINK_NOFOLLOW 0x00000002 +#define FSPICK_NO_AUTOMOUNT 0x00000004 +#define FSPICK_EMPTY_PATH 0x00000008 +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, +}; +#define FSMOUNT_CLOEXEC 0x00000001 +#define MOUNT_ATTR_RDONLY 0x00000001 +#define MOUNT_ATTR_NOSUID 0x00000002 +#define MOUNT_ATTR_NODEV 0x00000004 +#define MOUNT_ATTR_NOEXEC 0x00000008 +#define MOUNT_ATTR__ATIME 0x00000070 +#define MOUNT_ATTR_RELATIME 0x00000000 +#define MOUNT_ATTR_NOATIME 0x00000010 +#define MOUNT_ATTR_STRICTATIME 0x00000020 +#define MOUNT_ATTR_NODIRATIME 0x00000080 #endif diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables.h b/libc/kernel/uapi/linux/netfilter/nf_tables.h index 1043799a0..6869f58f8 100644 --- a/libc/kernel/uapi/linux/netfilter/nf_tables.h +++ b/libc/kernel/uapi/linux/netfilter/nf_tables.h @@ -496,7 +496,7 @@ enum nft_ct_keys { NFT_CT_DST_IP, NFT_CT_SRC_IP6, NFT_CT_DST_IP6, - NFT_CT_TIMEOUT, + NFT_CT_ID, __NFT_CT_MAX }; #define NFT_CT_MAX (__NFT_CT_MAX - 1) @@ -574,7 +574,7 @@ enum nft_log_level { NFT_LOGLEVEL_AUDIT, __NFT_LOGLEVEL_MAX }; -#define NFT_LOGLEVEL_MAX (__NFT_LOGLEVEL_MAX + 1) +#define NFT_LOGLEVEL_MAX (__NFT_LOGLEVEL_MAX - 1) enum nft_queue_attributes { NFTA_QUEUE_UNSPEC, NFTA_QUEUE_NUM, @@ -786,9 +786,13 @@ enum nft_osf_attributes { NFTA_OSF_UNSPEC, NFTA_OSF_DREG, NFTA_OSF_TTL, + NFTA_OSF_FLAGS, __NFTA_OSF_MAX, }; #define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1) +enum nft_osf_flags { + NFT_OSF_F_VERSION = (1 << 0), +}; enum nft_devices_attributes { NFTA_DEVICE_UNSPEC, NFTA_DEVICE_NAME, diff --git a/libc/kernel/uapi/linux/nfs_mount.h b/libc/kernel/uapi/linux/nfs_mount.h index ddd318abd..5b0022238 100644 --- a/libc/kernel/uapi/linux/nfs_mount.h +++ b/libc/kernel/uapi/linux/nfs_mount.h @@ -62,10 +62,4 @@ struct nfs_mount_data { #define NFS_MOUNT_NORDIRPLUS 0x4000 #define NFS_MOUNT_UNSHARED 0x8000 #define NFS_MOUNT_FLAGMASK 0xFFFF -#define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000 -#define NFS_MOUNT_LOOKUP_CACHE_NONE 0x20000 -#define NFS_MOUNT_NORESVPORT 0x40000 -#define NFS_MOUNT_LEGACY_INTERFACE 0x80000 -#define NFS_MOUNT_LOCAL_FLOCK 0x100000 -#define NFS_MOUNT_LOCAL_FCNTL 0x200000 #endif diff --git a/libc/kernel/uapi/linux/nfsd/cld.h b/libc/kernel/uapi/linux/nfsd/cld.h index 82651d13c..ed99e73bf 100644 --- a/libc/kernel/uapi/linux/nfsd/cld.h +++ b/libc/kernel/uapi/linux/nfsd/cld.h @@ -26,6 +26,7 @@ enum cld_command { Cld_Remove, Cld_Check, Cld_GraceDone, + Cld_GraceStart, }; struct cld_name { __u16 cn_len; diff --git a/libc/kernel/uapi/linux/nilfs2_ondisk.h b/libc/kernel/uapi/linux/nilfs2_ondisk.h index e9995a11a..a05e7b732 100644 --- a/libc/kernel/uapi/linux/nilfs2_ondisk.h +++ b/libc/kernel/uapi/linux/nilfs2_ondisk.h @@ -20,6 +20,7 @@ #define _LINUX_NILFS2_ONDISK_H #include <linux/types.h> #include <linux/magic.h> +#include <asm/byteorder.h> #define NILFS_INODE_BMAP_SIZE 7 struct nilfs_inode { __le64 i_blocks; @@ -248,11 +249,11 @@ enum { NILFS_CHECKPOINT_MINOR, }; #define NILFS_CHECKPOINT_FNS(flag,name) static inline void nilfs_checkpoint_set_ ##name(struct nilfs_checkpoint * cp) \ -{ cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) | (1UL << NILFS_CHECKPOINT_ ##flag)); \ +{ cp->cp_flags = __cpu_to_le32(__le32_to_cpu(cp->cp_flags) | (1UL << NILFS_CHECKPOINT_ ##flag)); \ } static inline void nilfs_checkpoint_clear_ ##name(struct nilfs_checkpoint * cp) \ -{ cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) & ~(1UL << NILFS_CHECKPOINT_ ##flag)); \ +{ cp->cp_flags = __cpu_to_le32(__le32_to_cpu(cp->cp_flags) & ~(1UL << NILFS_CHECKPOINT_ ##flag)); \ } static inline int nilfs_checkpoint_ ##name(const struct nilfs_checkpoint * cp) \ -{ return ! ! (le32_to_cpu(cp->cp_flags) & (1UL << NILFS_CHECKPOINT_ ##flag)); \ +{ return ! ! (__le32_to_cpu(cp->cp_flags) & (1UL << NILFS_CHECKPOINT_ ##flag)); \ } struct nilfs_cpfile_header { __le64 ch_ncheckpoints; @@ -272,11 +273,11 @@ enum { NILFS_SEGMENT_USAGE_ERROR, }; #define NILFS_SEGMENT_USAGE_FNS(flag,name) static inline void nilfs_segment_usage_set_ ##name(struct nilfs_segment_usage * su) \ -{ su->su_flags = cpu_to_le32(le32_to_cpu(su->su_flags) | (1UL << NILFS_SEGMENT_USAGE_ ##flag)); \ +{ su->su_flags = __cpu_to_le32(__le32_to_cpu(su->su_flags) | (1UL << NILFS_SEGMENT_USAGE_ ##flag)); \ } static inline void nilfs_segment_usage_clear_ ##name(struct nilfs_segment_usage * su) \ -{ su->su_flags = cpu_to_le32(le32_to_cpu(su->su_flags) & ~(1UL << NILFS_SEGMENT_USAGE_ ##flag)); \ +{ su->su_flags = __cpu_to_le32(__le32_to_cpu(su->su_flags) & ~(1UL << NILFS_SEGMENT_USAGE_ ##flag)); \ } static inline int nilfs_segment_usage_ ##name(const struct nilfs_segment_usage * su) \ -{ return ! ! (le32_to_cpu(su->su_flags) & (1UL << NILFS_SEGMENT_USAGE_ ##flag)); \ +{ return ! ! (__le32_to_cpu(su->su_flags) & (1UL << NILFS_SEGMENT_USAGE_ ##flag)); \ } struct nilfs_sufile_header { __le64 sh_ncleansegs; diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h index a7f63096e..93b219690 100644 --- a/libc/kernel/uapi/linux/nl80211.h +++ b/libc/kernel/uapi/linux/nl80211.h @@ -168,6 +168,8 @@ enum nl80211_commands { NL80211_CMD_PEER_MEASUREMENT_RESULT, NL80211_CMD_PEER_MEASUREMENT_COMPLETE, NL80211_CMD_NOTIFY_RADAR, + NL80211_CMD_UPDATE_OWE_INFO, + NL80211_CMD_PROBE_MESH_LINK, __NL80211_CMD_AFTER_LAST, NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 }; @@ -459,6 +461,8 @@ enum nl80211_attrs { NL80211_ATTR_TIMEOUT, NL80211_ATTR_PEER_MEASUREMENTS, NL80211_ATTR_AIRTIME_WEIGHT, + NL80211_ATTR_STA_TX_POWER_SETTING, + NL80211_ATTR_STA_TX_POWER, __NL80211_ATTR_AFTER_LAST, NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST, NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 @@ -491,7 +495,7 @@ enum nl80211_attrs { #define NL80211_WIPHY_NAME_MAXLEN 64 #define NL80211_MAX_SUPP_RATES 32 #define NL80211_MAX_SUPP_HT_RATES 77 -#define NL80211_MAX_SUPP_REG_RULES 64 +#define NL80211_MAX_SUPP_REG_RULES 128 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 @@ -631,6 +635,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_CONNECTED_TO_GATE, NL80211_STA_INFO_TX_DURATION, NL80211_STA_INFO_AIRTIME_WEIGHT, + NL80211_STA_INFO_AIRTIME_LINK_METRIC, __NL80211_STA_INFO_AFTER_LAST, NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 }; @@ -783,6 +788,7 @@ enum nl80211_sched_scan_match_attr { NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI, NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST, NL80211_SCHED_SCAN_MATCH_ATTR_BSSID, + NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI, __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, NL80211_SCHED_SCAN_MATCH_ATTR_MAX = __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1 }; @@ -935,6 +941,11 @@ enum nl80211_channel_type { NL80211_CHAN_HT40MINUS, NL80211_CHAN_HT40PLUS }; +enum nl80211_key_mode { + NL80211_KEY_RX_TX, + NL80211_KEY_NO_TX, + NL80211_KEY_SET_TX +}; enum nl80211_chan_width { NL80211_CHAN_WIDTH_20_NOHT, NL80211_CHAN_WIDTH_20, @@ -1023,6 +1034,7 @@ enum nl80211_key_attributes { NL80211_KEY_DEFAULT_MGMT, NL80211_KEY_TYPE, NL80211_KEY_DEFAULT_TYPES, + NL80211_KEY_MODE, __NL80211_KEY_AFTER_LAST, NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1 }; @@ -1311,6 +1323,9 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER, NL80211_EXT_FEATURE_AIRTIME_FAIRNESS, NL80211_EXT_FEATURE_AP_PMKSA_CACHING, + NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD, + NL80211_EXT_FEATURE_EXT_KEY_ID, + NL80211_EXT_FEATURE_STA_TX_PWR, NUM_NL80211_EXT_FEATURES, MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1 }; diff --git a/libc/kernel/uapi/linux/openvswitch.h b/libc/kernel/uapi/linux/openvswitch.h index 7e75ac6f6..2344ab19e 100644 --- a/libc/kernel/uapi/linux/openvswitch.h +++ b/libc/kernel/uapi/linux/openvswitch.h @@ -205,6 +205,7 @@ enum ovs_tunnel_key_attr { OVS_TUNNEL_KEY_ATTR_IPV6_DST, OVS_TUNNEL_KEY_ATTR_PAD, OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS, + OVS_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE, __OVS_TUNNEL_KEY_ATTR_MAX }; #define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1) @@ -384,6 +385,7 @@ enum ovs_ct_attr { OVS_CT_ATTR_NAT, OVS_CT_ATTR_FORCE_COMMIT, OVS_CT_ATTR_EVENTMASK, + OVS_CT_ATTR_TIMEOUT, __OVS_CT_ATTR_MAX }; #define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1) @@ -404,6 +406,14 @@ enum ovs_nat_attr { struct ovs_action_push_eth { struct ovs_key_ethernet addresses; }; +enum ovs_check_pkt_len_attr { + OVS_CHECK_PKT_LEN_ATTR_UNSPEC, + OVS_CHECK_PKT_LEN_ATTR_PKT_LEN, + OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER, + OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL, + __OVS_CHECK_PKT_LEN_ATTR_MAX, +}; +#define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1) enum ovs_action_attr { OVS_ACTION_ATTR_UNSPEC, OVS_ACTION_ATTR_OUTPUT, @@ -426,6 +436,7 @@ enum ovs_action_attr { OVS_ACTION_ATTR_POP_NSH, OVS_ACTION_ATTR_METER, OVS_ACTION_ATTR_CLONE, + OVS_ACTION_ATTR_CHECK_PKT_LEN, __OVS_ACTION_ATTR_MAX, }; #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h index d75d200e9..4c8cc9583 100644 --- a/libc/kernel/uapi/linux/pci_regs.h +++ b/libc/kernel/uapi/linux/pci_regs.h @@ -275,7 +275,7 @@ #define PCI_MSIX_ENTRY_UPPER_ADDR 4 #define PCI_MSIX_ENTRY_DATA 8 #define PCI_MSIX_ENTRY_VECTOR_CTRL 12 -#define PCI_MSIX_ENTRY_CTRL_MASKBIT 1 +#define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001 #define PCI_CHSWP_CSR 2 #define PCI_CHSWP_DHA 0x01 #define PCI_CHSWP_EIM 0x02 @@ -299,6 +299,9 @@ #define PCI_EA_FIRST_ENT_BRIDGE 8 #define PCI_EA_ES 0x00000007 #define PCI_EA_BEI 0x000000f0 +#define PCI_EA_SEC_BUS_MASK 0xff +#define PCI_EA_SUB_BUS_MASK 0xff00 +#define PCI_EA_SUB_BUS_SHIFT 8 #define PCI_EA_BEI_BAR0 0 #define PCI_EA_BEI_BAR5 5 #define PCI_EA_BEI_BRIDGE 6 @@ -746,12 +749,12 @@ #define PCI_ATS_MIN_STU 12 #define PCI_EXT_CAP_ATS_SIZEOF 8 #define PCI_PRI_CTRL 0x04 -#define PCI_PRI_CTRL_ENABLE 0x01 -#define PCI_PRI_CTRL_RESET 0x02 +#define PCI_PRI_CTRL_ENABLE 0x0001 +#define PCI_PRI_CTRL_RESET 0x0002 #define PCI_PRI_STATUS 0x06 -#define PCI_PRI_STATUS_RF 0x001 -#define PCI_PRI_STATUS_UPRGI 0x002 -#define PCI_PRI_STATUS_STOPPED 0x100 +#define PCI_PRI_STATUS_RF 0x0001 +#define PCI_PRI_STATUS_UPRGI 0x0002 +#define PCI_PRI_STATUS_STOPPED 0x0100 #define PCI_PRI_STATUS_PASID 0x8000 #define PCI_PRI_MAX_REQ 0x08 #define PCI_PRI_ALLOC_REQ 0x0c @@ -765,16 +768,16 @@ #define PCI_PASID_CTRL_PRIV 0x04 #define PCI_EXT_CAP_PASID_SIZEOF 8 #define PCI_SRIOV_CAP 0x04 -#define PCI_SRIOV_CAP_VFM 0x01 +#define PCI_SRIOV_CAP_VFM 0x00000001 #define PCI_SRIOV_CAP_INTR(x) ((x) >> 21) #define PCI_SRIOV_CTRL 0x08 -#define PCI_SRIOV_CTRL_VFE 0x01 -#define PCI_SRIOV_CTRL_VFM 0x02 -#define PCI_SRIOV_CTRL_INTR 0x04 -#define PCI_SRIOV_CTRL_MSE 0x08 -#define PCI_SRIOV_CTRL_ARI 0x10 +#define PCI_SRIOV_CTRL_VFE 0x0001 +#define PCI_SRIOV_CTRL_VFM 0x0002 +#define PCI_SRIOV_CTRL_INTR 0x0004 +#define PCI_SRIOV_CTRL_MSE 0x0008 +#define PCI_SRIOV_CTRL_ARI 0x0010 #define PCI_SRIOV_STATUS 0x0a -#define PCI_SRIOV_STATUS_VFM 0x01 +#define PCI_SRIOV_STATUS_VFM 0x0001 #define PCI_SRIOV_INITIAL_VF 0x0c #define PCI_SRIOV_TOTAL_VF 0x0e #define PCI_SRIOV_NUM_VF 0x10 @@ -801,13 +804,13 @@ #define PCI_LTR_SCALE_SHIFT 10 #define PCI_EXT_CAP_LTR_SIZEOF 8 #define PCI_ACS_CAP 0x04 -#define PCI_ACS_SV 0x01 -#define PCI_ACS_TB 0x02 -#define PCI_ACS_RR 0x04 -#define PCI_ACS_CR 0x08 -#define PCI_ACS_UF 0x10 -#define PCI_ACS_EC 0x20 -#define PCI_ACS_DT 0x40 +#define PCI_ACS_SV 0x0001 +#define PCI_ACS_TB 0x0002 +#define PCI_ACS_RR 0x0004 +#define PCI_ACS_CR 0x0008 +#define PCI_ACS_UF 0x0010 +#define PCI_ACS_EC 0x0020 +#define PCI_ACS_DT 0x0040 #define PCI_ACS_EGRESS_BITS 0x05 #define PCI_ACS_CTRL 0x06 #define PCI_ACS_EGRESS_CTL_V 0x08 diff --git a/libc/kernel/uapi/linux/pkt_sched.h b/libc/kernel/uapi/linux/pkt_sched.h index 6adc01307..2e1f24b7d 100644 --- a/libc/kernel/uapi/linux/pkt_sched.h +++ b/libc/kernel/uapi/linux/pkt_sched.h @@ -883,6 +883,9 @@ enum { TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, TCA_TAPRIO_ATTR_SCHED_CLOCKID, TCA_TAPRIO_PAD, + TCA_TAPRIO_ATTR_ADMIN_SCHED, + TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, + TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, __TCA_TAPRIO_ATTR_MAX, }; #define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1) diff --git a/libc/kernel/uapi/linux/psci.h b/libc/kernel/uapi/linux/psci.h index 658552a6f..bc522e78f 100644 --- a/libc/kernel/uapi/linux/psci.h +++ b/libc/kernel/uapi/linux/psci.h @@ -40,7 +40,10 @@ #define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7) #define PSCI_1_0_FN_PSCI_FEATURES PSCI_0_2_FN(10) #define PSCI_1_0_FN_SYSTEM_SUSPEND PSCI_0_2_FN(14) +#define PSCI_1_0_FN_SET_SUSPEND_MODE PSCI_0_2_FN(15) +#define PSCI_1_1_FN_SYSTEM_RESET2 PSCI_0_2_FN(18) #define PSCI_1_0_FN64_SYSTEM_SUSPEND PSCI_0_2_FN64(14) +#define PSCI_1_1_FN64_SYSTEM_RESET2 PSCI_0_2_FN64(18) #define PSCI_0_2_POWER_STATE_ID_MASK 0xffff #define PSCI_0_2_POWER_STATE_ID_SHIFT 0 #define PSCI_0_2_POWER_STATE_TYPE_SHIFT 16 @@ -65,6 +68,9 @@ #define PSCI_VERSION(maj,min) ((((maj) << PSCI_VERSION_MAJOR_SHIFT) & PSCI_VERSION_MAJOR_MASK) | ((min) & PSCI_VERSION_MINOR_MASK)) #define PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT 1 #define PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK (0x1 << PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT) +#define PSCI_1_0_OS_INITIATED BIT(0) +#define PSCI_1_0_SUSPEND_MODE_PC 0 +#define PSCI_1_0_SUSPEND_MODE_OSI 1 #define PSCI_RET_SUCCESS 0 #define PSCI_RET_NOT_SUPPORTED - 1 #define PSCI_RET_INVALID_PARAMS - 2 diff --git a/libc/kernel/uapi/linux/psp-sev.h b/libc/kernel/uapi/linux/psp-sev.h index 10582d48a..b3f88dc2f 100644 --- a/libc/kernel/uapi/linux/psp-sev.h +++ b/libc/kernel/uapi/linux/psp-sev.h @@ -28,6 +28,7 @@ enum { SEV_PDH_CERT_EXPORT, SEV_PEK_CERT_IMPORT, SEV_GET_ID, + SEV_GET_ID2, SEV_MAX, }; typedef enum { @@ -83,6 +84,10 @@ struct sev_user_data_get_id { __u8 socket1[64]; __u8 socket2[64]; } __packed; +struct sev_user_data_get_id2 { + __u64 address; + __u32 length; +} __packed; struct sev_issue_cmd { __u32 cmd; __u64 data; diff --git a/libc/kernel/uapi/linux/sched.h b/libc/kernel/uapi/linux/sched.h index 20d4956a7..046008391 100644 --- a/libc/kernel/uapi/linux/sched.h +++ b/libc/kernel/uapi/linux/sched.h @@ -23,6 +23,7 @@ #define CLONE_FS 0x00000200 #define CLONE_FILES 0x00000400 #define CLONE_SIGHAND 0x00000800 +#define CLONE_PIDFD 0x00001000 #define CLONE_PTRACE 0x00002000 #define CLONE_VFORK 0x00004000 #define CLONE_PARENT 0x00008000 diff --git a/libc/kernel/uapi/linux/serial_core.h b/libc/kernel/uapi/linux/serial_core.h index 791f5d7f6..c5ce9fe02 100644 --- a/libc/kernel/uapi/linux/serial_core.h +++ b/libc/kernel/uapi/linux/serial_core.h @@ -136,4 +136,6 @@ #define PORT_MPS2UART 116 #define PORT_MTK_BTIF 117 #define PORT_RDA 118 +#define PORT_MLB_USIO 119 +#define PORT_SIFIVE_V0 120 #endif diff --git a/libc/kernel/uapi/linux/snmp.h b/libc/kernel/uapi/linux/snmp.h index 75dea5495..2a48541fc 100644 --- a/libc/kernel/uapi/linux/snmp.h +++ b/libc/kernel/uapi/linux/snmp.h @@ -250,6 +250,7 @@ enum { LINUX_MIB_TCPACKCOMPRESSED, LINUX_MIB_TCPZEROWINDOWDROP, LINUX_MIB_TCPRCVQDROP, + LINUX_MIB_TCPWQUEUETOOBIG, __LINUX_MIB_MAX }; enum { diff --git a/libc/kernel/uapi/linux/sockios.h b/libc/kernel/uapi/linux/sockios.h index c68a5b137..2d13d9380 100644 --- a/libc/kernel/uapi/linux/sockios.h +++ b/libc/kernel/uapi/linux/sockios.h @@ -18,10 +18,20 @@ ****************************************************************************/ #ifndef _LINUX_SOCKIOS_H #define _LINUX_SOCKIOS_H +#include <asm/bitsperlong.h> #include <asm/sockios.h> #define SIOCINQ FIONREAD #define SIOCOUTQ TIOCOUTQ #define SOCK_IOC_TYPE 0x89 +#define SIOCGSTAMP_NEW _IOR(SOCK_IOC_TYPE, 0x06, long long[2]) +#define SIOCGSTAMPNS_NEW _IOR(SOCK_IOC_TYPE, 0x07, long long[2]) +#if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__) +#define SIOCGSTAMP SIOCGSTAMP_OLD +#define SIOCGSTAMPNS SIOCGSTAMPNS_OLD +#else +#define SIOCGSTAMP ((sizeof(struct timeval)) == 8 ? SIOCGSTAMP_OLD : SIOCGSTAMP_NEW) +#define SIOCGSTAMPNS ((sizeof(struct timespec)) == 8 ? SIOCGSTAMPNS_OLD : SIOCGSTAMPNS_NEW) +#endif #define SIOCADDRT 0x890B #define SIOCDELRT 0x890C #define SIOCRTMSG 0x890D diff --git a/libc/kernel/uapi/linux/spi/spidev.h b/libc/kernel/uapi/linux/spi/spidev.h index 2fe826445..343285b20 100644 --- a/libc/kernel/uapi/linux/spi/spidev.h +++ b/libc/kernel/uapi/linux/spi/spidev.h @@ -47,7 +47,8 @@ struct spi_ioc_transfer { __u8 cs_change; __u8 tx_nbits; __u8 rx_nbits; - __u16 pad; + __u8 word_delay_usecs; + __u8 pad; }; #define SPI_MSGSIZE(N) ((((N) * (sizeof(struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) ? ((N) * (sizeof(struct spi_ioc_transfer))) : 0) #define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)]) diff --git a/libc/kernel/uapi/linux/switchtec_ioctl.h b/libc/kernel/uapi/linux/switchtec_ioctl.h index 09cf9cdba..2143148e6 100644 --- a/libc/kernel/uapi/linux/switchtec_ioctl.h +++ b/libc/kernel/uapi/linux/switchtec_ioctl.h @@ -46,7 +46,7 @@ struct switchtec_ioctl_flash_part_info { __u32 length; __u32 active; }; -struct switchtec_ioctl_event_summary { +struct switchtec_ioctl_event_summary_legacy { __u64 global; __u64 part_bitmap; __u32 local_part; @@ -54,6 +54,14 @@ struct switchtec_ioctl_event_summary { __u32 part[48]; __u32 pff[48]; }; +struct switchtec_ioctl_event_summary { + __u64 global; + __u64 part_bitmap; + __u32 local_part; + __u32 padding; + __u32 part[48]; + __u32 pff[255]; +}; #define SWITCHTEC_IOCTL_EVENT_STACK_ERROR 0 #define SWITCHTEC_IOCTL_EVENT_PPU_ERROR 1 #define SWITCHTEC_IOCTL_EVENT_ISP_ERROR 2 @@ -114,6 +122,7 @@ struct switchtec_ioctl_pff_port { #define SWITCHTEC_IOCTL_FLASH_INFO _IOR('W', 0x40, struct switchtec_ioctl_flash_info) #define SWITCHTEC_IOCTL_FLASH_PART_INFO _IOWR('W', 0x41, struct switchtec_ioctl_flash_part_info) #define SWITCHTEC_IOCTL_EVENT_SUMMARY _IOR('W', 0x42, struct switchtec_ioctl_event_summary) +#define SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY _IOR('W', 0x42, struct switchtec_ioctl_event_summary_legacy) #define SWITCHTEC_IOCTL_EVENT_CTL _IOWR('W', 0x43, struct switchtec_ioctl_event_ctl) #define SWITCHTEC_IOCTL_PFF_TO_PORT _IOWR('W', 0x44, struct switchtec_ioctl_pff_port) #define SWITCHTEC_IOCTL_PORT_TO_PFF _IOWR('W', 0x45, struct switchtec_ioctl_pff_port) diff --git a/libc/kernel/uapi/linux/tipc.h b/libc/kernel/uapi/linux/tipc.h index 72bcad97d..b66b3400d 100644 --- a/libc/kernel/uapi/linux/tipc.h +++ b/libc/kernel/uapi/linux/tipc.h @@ -111,6 +111,7 @@ struct sockaddr_tipc { #define TIPC_MCAST_REPLICAST 134 #define TIPC_GROUP_JOIN 135 #define TIPC_GROUP_LEAVE 136 +#define TIPC_SOCK_RECVQ_USED 137 #define TIPC_GROUP_LOOPBACK 0x1 #define TIPC_GROUP_MEMBER_EVTS 0x2 struct tipc_group_req { diff --git a/libc/kernel/uapi/linux/tipc_netlink.h b/libc/kernel/uapi/linux/tipc_netlink.h index 911bbdea1..372111819 100644 --- a/libc/kernel/uapi/linux/tipc_netlink.h +++ b/libc/kernel/uapi/linux/tipc_netlink.h @@ -212,6 +212,8 @@ enum { TIPC_NLA_PROP_TOL, TIPC_NLA_PROP_WIN, TIPC_NLA_PROP_MTU, + TIPC_NLA_PROP_BROADCAST, + TIPC_NLA_PROP_BROADCAST_RATIO, __TIPC_NLA_PROP_MAX, TIPC_NLA_PROP_MAX = __TIPC_NLA_PROP_MAX - 1 }; diff --git a/libc/kernel/uapi/linux/tls.h b/libc/kernel/uapi/linux/tls.h index 96bb3a56e..e18882634 100644 --- a/libc/kernel/uapi/linux/tls.h +++ b/libc/kernel/uapi/linux/tls.h @@ -42,6 +42,12 @@ #define TLS_CIPHER_AES_GCM_256_SALT_SIZE 4 #define TLS_CIPHER_AES_GCM_256_TAG_SIZE 16 #define TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE 8 +#define TLS_CIPHER_AES_CCM_128 53 +#define TLS_CIPHER_AES_CCM_128_IV_SIZE 8 +#define TLS_CIPHER_AES_CCM_128_KEY_SIZE 16 +#define TLS_CIPHER_AES_CCM_128_SALT_SIZE 4 +#define TLS_CIPHER_AES_CCM_128_TAG_SIZE 16 +#define TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE 8 #define TLS_SET_RECORD_TYPE 1 #define TLS_GET_RECORD_TYPE 2 struct tls_crypto_info { @@ -62,4 +68,11 @@ struct tls12_crypto_info_aes_gcm_256 { unsigned char salt[TLS_CIPHER_AES_GCM_256_SALT_SIZE]; unsigned char rec_seq[TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE]; }; +struct tls12_crypto_info_aes_ccm_128 { + struct tls_crypto_info info; + unsigned char iv[TLS_CIPHER_AES_CCM_128_IV_SIZE]; + unsigned char key[TLS_CIPHER_AES_CCM_128_KEY_SIZE]; + unsigned char salt[TLS_CIPHER_AES_CCM_128_SALT_SIZE]; + unsigned char rec_seq[TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE]; +}; #endif diff --git a/libc/kernel/uapi/linux/v4l2-controls.h b/libc/kernel/uapi/linux/v4l2-controls.h index e8108dd10..7a133f538 100644 --- a/libc/kernel/uapi/linux/v4l2-controls.h +++ b/libc/kernel/uapi/linux/v4l2-controls.h @@ -310,6 +310,8 @@ enum v4l2_mpeg_video_multi_slice_mode { #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE + 227) #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE + 228) #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE + 229) +#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE + 290) +#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE + 291) #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE + 300) #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE + 301) #define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE + 302) @@ -441,6 +443,10 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type { #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE + 382) #define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE + 383) #define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE + 384) +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 385) +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 386) +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 387) +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 388) #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE + 400) #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE + 401) #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE + 402) diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h index 5905e81de..94bf4ba5e 100644 --- a/libc/kernel/uapi/linux/version.h +++ b/libc/kernel/uapi/linux/version.h @@ -16,5 +16,5 @@ *** **************************************************************************** ****************************************************************************/ -#define LINUX_VERSION_CODE 327939 +#define LINUX_VERSION_CODE 328198 #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 b947abce2..62cd970ab 100644 --- a/libc/kernel/uapi/linux/vfio.h +++ b/libc/kernel/uapi/linux/vfio.h @@ -114,6 +114,8 @@ struct vfio_region_gfx_edid { #define VFIO_DEVICE_GFX_LINK_STATE_UP 1 #define VFIO_DEVICE_GFX_LINK_STATE_DOWN 2 }; +#define VFIO_REGION_TYPE_CCW (2) +#define VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD (1) #define VFIO_REGION_SUBTYPE_NVIDIA_NVLINK2_RAM (1) #define VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD (1) #define VFIO_REGION_INFO_CAP_MSIX_MAPPABLE 3 diff --git a/libc/kernel/uapi/linux/vfio_ccw.h b/libc/kernel/uapi/linux/vfio_ccw.h index 047862fd9..6ed6830e4 100644 --- a/libc/kernel/uapi/linux/vfio_ccw.h +++ b/libc/kernel/uapi/linux/vfio_ccw.h @@ -28,4 +28,10 @@ struct ccw_io_region { __u8 irb_area[IRB_AREA_SIZE]; __u32 ret_code; } __packed; +#define VFIO_CCW_ASYNC_CMD_HSCH (1 << 0) +#define VFIO_CCW_ASYNC_CMD_CSCH (1 << 1) +struct ccw_cmd_region { + __u32 command; + __u32 ret_code; +} __packed; #endif diff --git a/libc/kernel/uapi/linux/videodev2.h b/libc/kernel/uapi/linux/videodev2.h index 3bd71381f..f77c6bda5 100644 --- a/libc/kernel/uapi/linux/videodev2.h +++ b/libc/kernel/uapi/linux/videodev2.h @@ -206,9 +206,21 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') #define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') #define V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2') +#define V4L2_PIX_FMT_RGBA444 v4l2_fourcc('R', 'A', '1', '2') +#define V4L2_PIX_FMT_RGBX444 v4l2_fourcc('R', 'X', '1', '2') +#define V4L2_PIX_FMT_ABGR444 v4l2_fourcc('A', 'B', '1', '2') +#define V4L2_PIX_FMT_XBGR444 v4l2_fourcc('X', 'B', '1', '2') +#define V4L2_PIX_FMT_BGRA444 v4l2_fourcc('G', 'A', '1', '2') +#define V4L2_PIX_FMT_BGRX444 v4l2_fourcc('B', 'X', '1', '2') #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') #define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') #define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') +#define V4L2_PIX_FMT_RGBA555 v4l2_fourcc('R', 'A', '1', '5') +#define V4L2_PIX_FMT_RGBX555 v4l2_fourcc('R', 'X', '1', '5') +#define V4L2_PIX_FMT_ABGR555 v4l2_fourcc('A', 'B', '1', '5') +#define V4L2_PIX_FMT_XBGR555 v4l2_fourcc('X', 'B', '1', '5') +#define V4L2_PIX_FMT_BGRA555 v4l2_fourcc('B', 'A', '1', '5') +#define V4L2_PIX_FMT_BGRX555 v4l2_fourcc('B', 'X', '1', '5') #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') #define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') @@ -220,7 +232,11 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') #define V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4') #define V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4') +#define V4L2_PIX_FMT_BGRA32 v4l2_fourcc('R', 'A', '2', '4') +#define V4L2_PIX_FMT_BGRX32 v4l2_fourcc('R', 'X', '2', '4') #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') +#define V4L2_PIX_FMT_RGBA32 v4l2_fourcc('A', 'B', '2', '4') +#define V4L2_PIX_FMT_RGBX32 v4l2_fourcc('X', 'B', '2', '4') #define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') #define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') @@ -332,6 +348,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') +#define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H') #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') #define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') diff --git a/libc/kernel/uapi/misc/habanalabs.h b/libc/kernel/uapi/misc/habanalabs.h index c2e25de6d..1029a672d 100644 --- a/libc/kernel/uapi/misc/habanalabs.h +++ b/libc/kernel/uapi/misc/habanalabs.h @@ -39,10 +39,16 @@ enum goya_queue_id { GOYA_QUEUE_ID_TPC7, GOYA_QUEUE_ID_SIZE }; +enum hl_device_status { + HL_DEVICE_STATUS_OPERATIONAL, + HL_DEVICE_STATUS_IN_RESET, + HL_DEVICE_STATUS_MALFUNCTION +}; #define HL_INFO_HW_IP_INFO 0 #define HL_INFO_HW_EVENTS 1 #define HL_INFO_DRAM_USAGE 2 #define HL_INFO_HW_IDLE 3 +#define HL_INFO_DEVICE_STATUS 4 #define HL_INFO_VERSION_MAX_LEN 128 struct hl_info_hw_ip_info { __u64 sram_base_address; @@ -70,6 +76,10 @@ struct hl_info_hw_idle { __u32 is_idle; __u32 pad; }; +struct hl_info_device_status { + __u32 status; + __u32 pad; +}; struct hl_info_args { __u64 return_pointer; __u32 return_size; @@ -183,11 +193,64 @@ union hl_mem_args { struct hl_mem_in in; struct hl_mem_out out; }; +#define HL_DEBUG_MAX_AUX_VALUES 10 +struct hl_debug_params_etr { + __u64 buffer_address; + __u64 buffer_size; + __u32 sink_mode; + __u32 pad; +}; +struct hl_debug_params_etf { + __u64 buffer_address; + __u64 buffer_size; + __u32 sink_mode; + __u32 pad; +}; +struct hl_debug_params_stm { + __u64 he_mask; + __u64 sp_mask; + __u32 id; + __u32 frequency; +}; +struct hl_debug_params_bmon { + __u64 start_addr0; + __u64 addr_mask0; + __u64 start_addr1; + __u64 addr_mask1; + __u32 bw_win; + __u32 win_capture; + __u32 id; + __u32 pad; +}; +struct hl_debug_params_spmu { + __u64 event_types[HL_DEBUG_MAX_AUX_VALUES]; + __u32 event_types_num; + __u32 pad; +}; +#define HL_DEBUG_OP_ETR 0 +#define HL_DEBUG_OP_ETF 1 +#define HL_DEBUG_OP_STM 2 +#define HL_DEBUG_OP_FUNNEL 3 +#define HL_DEBUG_OP_BMON 4 +#define HL_DEBUG_OP_SPMU 5 +#define HL_DEBUG_OP_TIMESTAMP 6 +#define HL_DEBUG_OP_SET_MODE 7 +struct hl_debug_args { + __u64 input_ptr; + __u64 output_ptr; + __u32 input_size; + __u32 output_size; + __u32 op; + __u32 reg_idx; + __u32 enable; + __u32 ctx_id; +}; #define HL_IOCTL_INFO _IOWR('H', 0x01, struct hl_info_args) #define HL_IOCTL_CB _IOWR('H', 0x02, union hl_cb_args) #define HL_IOCTL_CS _IOWR('H', 0x03, union hl_cs_args) #define HL_IOCTL_WAIT_CS _IOWR('H', 0x04, union hl_wait_cs_args) #define HL_IOCTL_MEMORY _IOWR('H', 0x05, union hl_mem_args) +#define HL_IOCTL_DEBUG _IOWR('H', 0x06, struct hl_debug_args) #define HL_COMMAND_START 0x01 -#define HL_COMMAND_END 0x06 +#define HL_COMMAND_END 0x07 #endif diff --git a/libc/kernel/uapi/rdma/efa-abi.h b/libc/kernel/uapi/rdma/efa-abi.h new file mode 100644 index 000000000..1445c9c2a --- /dev/null +++ b/libc/kernel/uapi/rdma/efa-abi.h @@ -0,0 +1,88 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef EFA_ABI_USER_H +#define EFA_ABI_USER_H +#include <linux/types.h> +#define EFA_UVERBS_ABI_VERSION 1 +enum efa_ibv_user_cmds_supp_udata { + EFA_USER_CMDS_SUPP_UDATA_QUERY_DEVICE = 1 << 0, + EFA_USER_CMDS_SUPP_UDATA_CREATE_AH = 1 << 1, +}; +struct efa_ibv_alloc_ucontext_resp { + __u32 comp_mask; + __u32 cmds_supp_udata_mask; + __u16 sub_cqs_per_cq; + __u16 inline_buf_size; + __u32 max_llq_size; +}; +struct efa_ibv_alloc_pd_resp { + __u32 comp_mask; + __u16 pdn; + __u8 reserved_30[2]; +}; +struct efa_ibv_create_cq { + __u32 comp_mask; + __u32 cq_entry_size; + __u16 num_sub_cqs; + __u8 reserved_50[6]; +}; +struct efa_ibv_create_cq_resp { + __u32 comp_mask; + __u8 reserved_20[4]; + __aligned_u64 q_mmap_key; + __aligned_u64 q_mmap_size; + __u16 cq_idx; + __u8 reserved_d0[6]; +}; +enum { + EFA_QP_DRIVER_TYPE_SRD = 0, +}; +struct efa_ibv_create_qp { + __u32 comp_mask; + __u32 rq_ring_size; + __u32 sq_ring_size; + __u32 driver_qp_type; +}; +struct efa_ibv_create_qp_resp { + __u32 comp_mask; + __u32 rq_db_offset; + __u32 sq_db_offset; + __u32 llq_desc_offset; + __aligned_u64 rq_mmap_key; + __aligned_u64 rq_mmap_size; + __aligned_u64 rq_db_mmap_key; + __aligned_u64 sq_db_mmap_key; + __aligned_u64 llq_desc_mmap_key; + __u16 send_sub_cq_idx; + __u16 recv_sub_cq_idx; + __u8 reserved_1e0[4]; +}; +struct efa_ibv_create_ah_resp { + __u32 comp_mask; + __u16 efa_address_handle; + __u8 reserved_30[2]; +}; +struct efa_ibv_ex_query_device_resp { + __u32 comp_mask; + __u32 max_sq_wr; + __u32 max_rq_wr; + __u16 max_sq_sge; + __u16 max_rq_sge; +}; +#endif diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h index f1ab1474e..e01b6d377 100644 --- a/libc/kernel/uapi/rdma/mlx5-abi.h +++ b/libc/kernel/uapi/rdma/mlx5-abi.h @@ -263,6 +263,7 @@ enum mlx5_ib_create_qp_resp_mask { MLX5_IB_CREATE_QP_RESP_MASK_TISN = 1UL << 1, MLX5_IB_CREATE_QP_RESP_MASK_RQN = 1UL << 2, MLX5_IB_CREATE_QP_RESP_MASK_SQN = 1UL << 3, + MLX5_IB_CREATE_QP_RESP_MASK_TIR_ICM_ADDR = 1UL << 4, }; struct mlx5_ib_create_qp_resp { __u32 bfreg_index; @@ -273,6 +274,7 @@ struct mlx5_ib_create_qp_resp { __u32 rqn; __u32 sqn; __u32 reserved1; + __u64 tir_icm_addr; }; struct mlx5_ib_alloc_mw { __u32 comp_mask; diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h index 88b84c29c..66bd6663f 100644 --- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h +++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h @@ -26,6 +26,7 @@ enum mlx5_ib_create_flow_action_attrs { enum mlx5_ib_alloc_dm_attrs { MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT), MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX, + MLX5_IB_ATTR_ALLOC_DM_REQ_TYPE, }; enum mlx5_ib_devx_methods { MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT), @@ -109,6 +110,7 @@ enum mlx5_ib_flow_matcher_create_attrs { MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS, + MLX5_IB_ATTR_FLOW_MATCHER_FT_TYPE, }; enum mlx5_ib_flow_matcher_destroy_attrs { MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h index e83b9e2dd..a75368d49 100644 --- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h +++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h @@ -25,6 +25,7 @@ enum mlx5_ib_uapi_flow_action_flags { enum mlx5_ib_uapi_flow_table_type { MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_RX = 0x0, MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX = 0x1, + MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB = 0x2, }; enum mlx5_ib_uapi_flow_action_packet_reformat_type { MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TUNNEL_TO_L2 = 0x0, @@ -36,4 +37,9 @@ struct mlx5_ib_uapi_devx_async_cmd_hdr { __aligned_u64 wr_id; __u8 out_data[]; }; +enum mlx5_ib_uapi_dm_type { + MLX5_IB_UAPI_DM_TYPE_MEMIC, + MLX5_IB_UAPI_DM_TYPE_STEERING_SW_ICM, + MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM, +}; #endif diff --git a/libc/kernel/uapi/rdma/rdma_netlink.h b/libc/kernel/uapi/rdma/rdma_netlink.h index 7730edfc7..bbb18227d 100644 --- a/libc/kernel/uapi/rdma/rdma_netlink.h +++ b/libc/kernel/uapi/rdma/rdma_netlink.h @@ -51,16 +51,6 @@ enum { RDMA_NL_IWPM_HELLO, RDMA_NL_IWPM_NUM_OPS }; -struct rdma_cm_id_stats { - __u32 qp_num; - __u32 bound_dev_if; - __u32 port_space; - __s32 pid; - __u8 cm_state; - __u8 node_type; - __u8 port_num; - __u8 qp_type; -}; enum { IWPM_NLA_REG_PID_UNSPEC = 0, IWPM_NLA_REG_PID_SEQ, @@ -193,6 +183,8 @@ enum rdma_nldev_command { RDMA_NLDEV_CMD_NEWLINK, RDMA_NLDEV_CMD_DELLINK, RDMA_NLDEV_CMD_PORT_GET, + RDMA_NLDEV_CMD_SYS_GET, + RDMA_NLDEV_CMD_SYS_SET, RDMA_NLDEV_CMD_RES_GET = 9, RDMA_NLDEV_CMD_RES_QP_GET, RDMA_NLDEV_CMD_RES_CM_ID_GET, @@ -276,6 +268,9 @@ enum rdma_nldev_attr { RDMA_NLDEV_ATTR_RES_CM_IDN, RDMA_NLDEV_ATTR_RES_CTXN, RDMA_NLDEV_ATTR_LINK_TYPE, + RDMA_NLDEV_SYS_ATTR_NETNS_MODE, + RDMA_NLDEV_ATTR_DEV_PROTOCOL, + RDMA_NLDEV_NET_NS_FD, RDMA_NLDEV_ATTR_MAX }; #endif diff --git a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h index 7cd6cd0c1..2692e3ae5 100644 --- a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h +++ b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h @@ -70,5 +70,6 @@ enum rdma_driver_id { RDMA_DRIVER_RXE, RDMA_DRIVER_HFI1, RDMA_DRIVER_QIB, + RDMA_DRIVER_EFA, }; #endif diff --git a/libc/kernel/uapi/scsi/fc/fc_els.h b/libc/kernel/uapi/scsi/fc/fc_els.h index 7e9409ad0..1cabaddfa 100644 --- a/libc/kernel/uapi/scsi/fc/fc_els.h +++ b/libc/kernel/uapi/scsi/fc/fc_els.h @@ -40,6 +40,7 @@ enum fc_els_cmd { ELS_RRQ = 0x12, ELS_REC = 0x13, ELS_SRR = 0x14, + ELS_FPIN = 0x16, ELS_PRLI = 0x20, ELS_PRLO = 0x21, ELS_SCN = 0x22, @@ -81,7 +82,7 @@ enum fc_els_cmd { ELS_LKA = 0x80, ELS_AUTH_ELS = 0x90, }; -#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \ +#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \ } struct fc_els_ls_acc { __u8 la_cmd; @@ -542,4 +543,20 @@ enum fc_els_clid_ic { ELS_CLID_IC_LOOP_TO = 7, ELS_CLID_IC_LIP = 8, }; +enum fc_fn_dtag { + ELS_FN_DTAG_LNK_INTEGRITY = 0x00020001, + ELS_FN_DTAG_PEER_CONGEST = 0x00020003, + ELS_FN_DTAG_CONGESTION = 0x00020004, +}; +struct fc_fn_desc { + __be32 fn_desc_tag; + __be32 fn_desc_value_len; + __u8 fn_desc_value[0]; +}; +struct fc_els_fpin { + __u8 fpin_cmd; + __u8 fpin_zero[3]; + __be32 fpin_desc_cnt; + struct fc_fn_desc fpin_desc[0]; +}; #endif diff --git a/libc/kernel/uapi/sound/sof/abi.h b/libc/kernel/uapi/sound/sof/abi.h new file mode 100644 index 000000000..2111f5c37 --- /dev/null +++ b/libc/kernel/uapi/sound/sof/abi.h @@ -0,0 +1,37 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 __INCLUDE_UAPI_SOUND_SOF_ABI_H__ +#define __INCLUDE_UAPI_SOUND_SOF_ABI_H__ +#define SOF_ABI_MAJOR 3 +#define SOF_ABI_MINOR 6 +#define SOF_ABI_PATCH 0 +#define SOF_ABI_MAJOR_SHIFT 24 +#define SOF_ABI_MAJOR_MASK 0xff +#define SOF_ABI_MINOR_SHIFT 12 +#define SOF_ABI_MINOR_MASK 0xfff +#define SOF_ABI_PATCH_SHIFT 0 +#define SOF_ABI_PATCH_MASK 0xfff +#define SOF_ABI_VER(major,minor,patch) (((major) << SOF_ABI_MAJOR_SHIFT) | ((minor) << SOF_ABI_MINOR_SHIFT) | ((patch) << SOF_ABI_PATCH_SHIFT)) +#define SOF_ABI_VERSION_MAJOR(version) (((version) >> SOF_ABI_MAJOR_SHIFT) & SOF_ABI_MAJOR_MASK) +#define SOF_ABI_VERSION_MINOR(version) (((version) >> SOF_ABI_MINOR_SHIFT) & SOF_ABI_MINOR_MASK) +#define SOF_ABI_VERSION_PATCH(version) (((version) >> SOF_ABI_PATCH_SHIFT) & SOF_ABI_PATCH_MASK) +#define SOF_ABI_VERSION_INCOMPATIBLE(sof_ver,client_ver) (SOF_ABI_VERSION_MAJOR((sof_ver)) != SOF_ABI_VERSION_MAJOR((client_ver))) +#define SOF_ABI_VERSION SOF_ABI_VER(SOF_ABI_MAJOR, SOF_ABI_MINOR, SOF_ABI_PATCH) +#define SOF_ABI_MAGIC 0x00464F53 +#endif diff --git a/libc/kernel/uapi/sound/sof/eq.h b/libc/kernel/uapi/sound/sof/eq.h new file mode 100644 index 000000000..c45ba3554 --- /dev/null +++ b/libc/kernel/uapi/sound/sof/eq.h @@ -0,0 +1,67 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 __INCLUDE_UAPI_SOUND_SOF_USER_EQ_H__ +#define __INCLUDE_UAPI_SOUND_SOF_USER_EQ_H__ +#define SOF_EQ_FIR_IDX_SWITCH 0 +#define SOF_EQ_FIR_MAX_SIZE 4096 +#define SOF_EQ_FIR_MAX_LENGTH 192 +#define SOF_EQ_FIR_MAX_RESPONSES 8 +struct sof_eq_fir_config { + uint32_t size; + uint16_t channels_in_config; + uint16_t number_of_responses; + uint32_t reserved[4]; + int16_t data[]; +} __packed; +struct sof_eq_fir_coef_data { + int16_t length; + int16_t out_shift; + uint32_t reserved[4]; + int16_t coef[]; +} __packed; +#define SOF_EQ_FIR_COEF_NHEADER (sizeof(struct sof_eq_fir_coef_data) / sizeof(int16_t)) +#define SOF_EQ_IIR_IDX_SWITCH 0 +#define SOF_EQ_IIR_MAX_SIZE 1024 +#define SOF_EQ_IIR_MAX_RESPONSES 8 +struct sof_eq_iir_config { + uint32_t size; + uint32_t channels_in_config; + uint32_t number_of_responses; + uint32_t reserved[4]; + int32_t data[]; +} __packed; +struct sof_eq_iir_header_df2t { + uint32_t num_sections; + uint32_t num_sections_in_series; + uint32_t reserved[4]; + int32_t biquads[]; +} __packed; +struct sof_eq_iir_biquad_df2t { + int32_t a2; + int32_t a1; + int32_t b2; + int32_t b1; + int32_t b0; + int32_t output_shift; + int32_t output_gain; +} __packed; +#define SOF_EQ_IIR_DF2T_BIQUADS_MAX 11 +#define SOF_EQ_IIR_NHEADER_DF2T (sizeof(struct sof_eq_iir_header_df2t) / sizeof(int32_t)) +#define SOF_EQ_IIR_NBIQUAD_DF2T (sizeof(struct sof_eq_iir_biquad_df2t) / sizeof(int32_t)) +#endif diff --git a/libc/kernel/uapi/sound/sof/fw.h b/libc/kernel/uapi/sound/sof/fw.h new file mode 100644 index 000000000..72bb31c21 --- /dev/null +++ b/libc/kernel/uapi/sound/sof/fw.h @@ -0,0 +1,64 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef __INCLUDE_UAPI_SOF_FW_H__ +#define __INCLUDE_UAPI_SOF_FW_H__ +#define SND_SOF_FW_SIG_SIZE 4 +#define SND_SOF_FW_ABI 1 +#define SND_SOF_FW_SIG "Reef" +enum snd_sof_fw_blk_type { + SOF_FW_BLK_TYPE_INVALID = - 1, + SOF_FW_BLK_TYPE_START = 0, + SOF_FW_BLK_TYPE_RSRVD0 = SOF_FW_BLK_TYPE_START, + SOF_FW_BLK_TYPE_IRAM = 1, + SOF_FW_BLK_TYPE_DRAM = 2, + SOF_FW_BLK_TYPE_SRAM = 3, + SOF_FW_BLK_TYPE_ROM = 4, + SOF_FW_BLK_TYPE_IMR = 5, + SOF_FW_BLK_TYPE_RSRVD6 = 6, + SOF_FW_BLK_TYPE_RSRVD7 = 7, + SOF_FW_BLK_TYPE_RSRVD8 = 8, + SOF_FW_BLK_TYPE_RSRVD9 = 9, + SOF_FW_BLK_TYPE_RSRVD10 = 10, + SOF_FW_BLK_TYPE_RSRVD11 = 11, + SOF_FW_BLK_TYPE_RSRVD12 = 12, + SOF_FW_BLK_TYPE_RSRVD13 = 13, + SOF_FW_BLK_TYPE_RSRVD14 = 14, + SOF_FW_BLK_TYPE_NUM +}; +struct snd_sof_blk_hdr { + enum snd_sof_fw_blk_type type; + uint32_t size; + uint32_t offset; +} __packed; +enum snd_sof_fw_mod_type { + SOF_FW_BASE = 0, + SOF_FW_MODULE = 1, +}; +struct snd_sof_mod_hdr { + enum snd_sof_fw_mod_type type; + uint32_t size; + uint32_t num_blocks; +} __packed; +struct snd_sof_fw_header { + unsigned char sig[SND_SOF_FW_SIG_SIZE]; + uint32_t file_size; + uint32_t num_modules; + uint32_t abi; +} __packed; +#endif diff --git a/libc/kernel/uapi/sound/sof/header.h b/libc/kernel/uapi/sound/sof/header.h new file mode 100644 index 000000000..cf90e9bcc --- /dev/null +++ b/libc/kernel/uapi/sound/sof/header.h @@ -0,0 +1,29 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__ +#define __INCLUDE_UAPI_SOUND_SOF_USER_HEADER_H__ +struct sof_abi_hdr { + uint32_t magic; + uint32_t type; + uint32_t size; + uint32_t abi; + uint32_t reserved[4]; + uint32_t data[0]; +} __packed; +#endif diff --git a/libc/kernel/uapi/sound/sof/manifest.h b/libc/kernel/uapi/sound/sof/manifest.h new file mode 100644 index 000000000..b8bd3e5dd --- /dev/null +++ b/libc/kernel/uapi/sound/sof/manifest.h @@ -0,0 +1,128 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 __INCLUDE_UAPI_SOUND_SOF_USER_MANIFEST_H__ +#define __INCLUDE_UAPI_SOUND_SOF_USER_MANIFEST_H__ +#define SOF_MAN_ELF_TEXT_OFFSET 0x2000 +#define SOF_MAN_EXT_HEADER_MAGIC 0x31454124 +#define SOF_MAN_MOD_TYPE_BUILTIN 0 +#define SOF_MAN_MOD_TYPE_MODULE 1 +struct sof_man_module_type { + uint32_t load_type : 4; + uint32_t auto_start : 1; + uint32_t domain_ll : 1; + uint32_t domain_dp : 1; + uint32_t rsvd_ : 25; +}; +#define SOF_MAN_SEGMENT_TEXT 0 +#define SOF_MAN_SEGMENT_RODATA 1 +#define SOF_MAN_SEGMENT_DATA 1 +#define SOF_MAN_SEGMENT_BSS 2 +#define SOF_MAN_SEGMENT_EMPTY 15 +union sof_man_segment_flags { + uint32_t ul; + struct { + uint32_t contents : 1; + uint32_t alloc : 1; + uint32_t load : 1; + uint32_t readonly : 1; + uint32_t code : 1; + uint32_t data : 1; + uint32_t _rsvd0 : 2; + uint32_t type : 4; + uint32_t _rsvd1 : 4; + uint32_t length : 16; + } r; +} __packed; +struct sof_man_segment_desc { + union sof_man_segment_flags flags; + uint32_t v_base_addr; + uint32_t file_offset; +} __packed; +#define SOF_MAN_MOD_ID_LEN 4 +#define SOF_MAN_MOD_NAME_LEN 8 +#define SOF_MAN_MOD_SHA256_LEN 32 +#define SOF_MAN_MOD_ID { '$', 'A', 'M', 'E' } +struct sof_man_module { + uint8_t struct_id[SOF_MAN_MOD_ID_LEN]; + uint8_t name[SOF_MAN_MOD_NAME_LEN]; + uint8_t uuid[16]; + struct sof_man_module_type type; + uint8_t hash[SOF_MAN_MOD_SHA256_LEN]; + uint32_t entry_point; + uint16_t cfg_offset; + uint16_t cfg_count; + uint32_t affinity_mask; + uint16_t instance_max_count; + uint16_t instance_bss_size; + struct sof_man_segment_desc segment[3]; +} __packed; +struct sof_man_mod_config { + uint32_t par[4]; + uint32_t is_pages; + uint32_t cps; + uint32_t ibs; + uint32_t obs; + uint32_t module_flags; + uint32_t cpc; + uint32_t obls; +} __packed; +#define SOF_MAN_FW_HDR_FW_NAME_LEN 8 +#define SOF_MAN_FW_HDR_ID { '$', 'A', 'M', '1' } +#define SOF_MAN_FW_HDR_NAME "ADSPFW" +#define SOF_MAN_FW_HDR_FLAGS 0x0 +#define SOF_MAN_FW_HDR_FEATURES 0xff +struct sof_man_fw_header { + uint8_t header_id[4]; + uint32_t header_len; + uint8_t name[SOF_MAN_FW_HDR_FW_NAME_LEN]; + uint32_t preload_page_count; + uint32_t fw_image_flags; + uint32_t feature_mask; + uint16_t major_version; + uint16_t minor_version; + uint16_t hotfix_version; + uint16_t build_version; + uint32_t num_module_entries; + uint32_t hw_buf_base_addr; + uint32_t hw_buf_length; + uint32_t load_offset; +} __packed; +struct sof_man_fw_desc { + struct sof_man_fw_header header; +} __packed; +struct sof_man_component_desc { + uint32_t reserved[2]; + uint32_t version; + uint8_t hash[SOF_MAN_MOD_SHA256_LEN]; + uint32_t base_offset; + uint32_t limit_offset; + uint32_t attributes[4]; +} __packed; +struct sof_man_adsp_meta_file_ext { + uint32_t ext_type; + uint32_t ext_len; + uint32_t imr_type; + uint8_t reserved[16]; + struct sof_man_component_desc comp_desc[1]; +} __packed; +struct sof_man_module_manifest { + struct sof_man_module module; + uint32_t text_size; +} __packed; +#endif diff --git a/libc/kernel/uapi/sound/sof/tokens.h b/libc/kernel/uapi/sound/sof/tokens.h new file mode 100644 index 000000000..748c5fecb --- /dev/null +++ b/libc/kernel/uapi/sound/sof/tokens.h @@ -0,0 +1,68 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef __INCLUDE_UAPI_SOF_TOPOLOGY_H__ +#define __INCLUDE_UAPI_SOF_TOPOLOGY_H__ +#define SOF_TPLG_KCTL_VOL_ID 256 +#define SOF_TPLG_KCTL_ENUM_ID 257 +#define SOF_TPLG_KCTL_BYTES_ID 258 +#define SOF_TPLG_KCTL_SWITCH_ID 259 +#define SOF_TKN_BUF_SIZE 100 +#define SOF_TKN_BUF_CAPS 101 +#define SOF_TKN_DAI_TYPE 154 +#define SOF_TKN_DAI_INDEX 155 +#define SOF_TKN_DAI_DIRECTION 156 +#define SOF_TKN_SCHED_PERIOD 200 +#define SOF_TKN_SCHED_PRIORITY 201 +#define SOF_TKN_SCHED_MIPS 202 +#define SOF_TKN_SCHED_CORE 203 +#define SOF_TKN_SCHED_FRAMES 204 +#define SOF_TKN_SCHED_TIME_DOMAIN 205 +#define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250 +#define SOF_TKN_VOLUME_RAMP_STEP_MS 251 +#define SOF_TKN_SRC_RATE_IN 300 +#define SOF_TKN_SRC_RATE_OUT 301 +#define SOF_TKN_PCM_DMAC_CONFIG 353 +#define SOF_TKN_COMP_PERIOD_SINK_COUNT 400 +#define SOF_TKN_COMP_PERIOD_SOURCE_COUNT 401 +#define SOF_TKN_COMP_FORMAT 402 +#define SOF_TKN_INTEL_SSP_CLKS_CONTROL 500 +#define SOF_TKN_INTEL_SSP_MCLK_ID 501 +#define SOF_TKN_INTEL_SSP_SAMPLE_BITS 502 +#define SOF_TKN_INTEL_SSP_FRAME_PULSE_WIDTH 503 +#define SOF_TKN_INTEL_SSP_QUIRKS 504 +#define SOF_TKN_INTEL_SSP_TDM_PADDING_PER_SLOT 505 +#define SOF_TKN_INTEL_DMIC_DRIVER_VERSION 600 +#define SOF_TKN_INTEL_DMIC_CLK_MIN 601 +#define SOF_TKN_INTEL_DMIC_CLK_MAX 602 +#define SOF_TKN_INTEL_DMIC_DUTY_MIN 603 +#define SOF_TKN_INTEL_DMIC_DUTY_MAX 604 +#define SOF_TKN_INTEL_DMIC_NUM_PDM_ACTIVE 605 +#define SOF_TKN_INTEL_DMIC_SAMPLE_RATE 608 +#define SOF_TKN_INTEL_DMIC_FIFO_WORD_LENGTH 609 +#define SOF_TKN_INTEL_DMIC_PDM_CTRL_ID 700 +#define SOF_TKN_INTEL_DMIC_PDM_MIC_A_Enable 701 +#define SOF_TKN_INTEL_DMIC_PDM_MIC_B_Enable 702 +#define SOF_TKN_INTEL_DMIC_PDM_POLARITY_A 703 +#define SOF_TKN_INTEL_DMIC_PDM_POLARITY_B 704 +#define SOF_TKN_INTEL_DMIC_PDM_CLK_EDGE 705 +#define SOF_TKN_INTEL_DMIC_PDM_SKEW 706 +#define SOF_TKN_TONE_SAMPLE_RATE 800 +#define SOF_TKN_PROCESS_TYPE 900 +#define SOF_TKN_EFFECT_TYPE SOF_TKN_PROCESS_TYPE +#endif diff --git a/libc/kernel/uapi/sound/sof/tone.h b/libc/kernel/uapi/sound/sof/tone.h new file mode 100644 index 000000000..a4b745ef7 --- /dev/null +++ b/libc/kernel/uapi/sound/sof/tone.h @@ -0,0 +1,29 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef __INCLUDE_UAPI_SOUND_SOF_USER_TONE_H__ +#define __INCLUDE_UAPI_SOUND_SOF_USER_TONE_H__ +#define SOF_TONE_IDX_FREQUENCY 0 +#define SOF_TONE_IDX_AMPLITUDE 1 +#define SOF_TONE_IDX_FREQ_MULT 2 +#define SOF_TONE_IDX_AMPL_MULT 3 +#define SOF_TONE_IDX_LENGTH 4 +#define SOF_TONE_IDX_PERIOD 5 +#define SOF_TONE_IDX_REPEATS 6 +#define SOF_TONE_IDX_LIN_RAMP_STEP 7 +#endif diff --git a/libc/kernel/uapi/sound/sof/trace.h b/libc/kernel/uapi/sound/sof/trace.h new file mode 100644 index 000000000..a5eed43e0 --- /dev/null +++ b/libc/kernel/uapi/sound/sof/trace.h @@ -0,0 +1,45 @@ +/**************************************************************************** + **************************************************************************** + *** + *** 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 __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__ +#define __INCLUDE_UAPI_SOUND_SOF_USER_TRACE_H__ +struct system_time { + uint32_t val_l; + uint32_t val_u; +} __packed; +#define LOG_ENABLE 1 +#define LOG_DISABLE 0 +#define LOG_LEVEL_CRITICAL 1 +#define LOG_LEVEL_VERBOSE 2 +struct log_buffer_layout { + uint32_t read_ptr; + uint32_t write_ptr; + uint32_t buffer[0]; +} __packed; +struct log_buffer_status { + uint32_t core_id; +} __packed; +#define TRACE_ID_LENGTH 12 +struct log_entry_header { + uint32_t id_0 : TRACE_ID_LENGTH; + uint32_t id_1 : TRACE_ID_LENGTH; + uint32_t core_id : 8; + uint64_t timestamp; + uint32_t log_entry_address; +} __packed; +#endif |