diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-04-08 16:00:58 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-04-08 16:00:58 +0000 |
commit | b53b3c71a251da5f24334eb18c53d73913d24d46 (patch) | |
tree | ff7e91617ae17824dfdcbe8e53b3e61b2e464c33 | |
parent | bf216fe38e1484460a5c23990afe5133a90d103c (diff) | |
parent | 98de591de8a89211e0d97ce6da031ec142ee8b86 (diff) | |
download | kernel-headers-android12-mainline-tzdata2-release.tar.gz |
Snap for 8426163 from 98de591de8a89211e0d97ce6da031ec142ee8b86 to mainline-tzdata2-releaseandroid-mainline-12.0.0_r112aml_tz2_305400500aml_tz2_305400300aml_tz2_305400100aml_tz2_304500300aml_tz2_303900110aml_tz2_303900102aml_tz2_303800002aml_tz2_303800001aml_tz2_303200001android12-mainline-tzdata2-releaseaml_tz2_305400100
Change-Id: I64ab53464fafcd6e315bc563818cfcb5e211f9ca
341 files changed, 3973 insertions, 17768 deletions
diff --git a/METADATA b/METADATA deleted file mode 100644 index 6d8601b..0000000 --- a/METADATA +++ /dev/null @@ -1,3 +0,0 @@ -third_party { - license_type: RESTRICTED -} diff --git a/modified/scsi/scsi.h b/modified/scsi/scsi.h index 04b4e1c..0ca0e12 100644 --- a/modified/scsi/scsi.h +++ b/modified/scsi/scsi.h @@ -123,7 +123,6 @@ static inline int scsi_is_wlun(u64 lun) #define CLEAR_TASK_SET 0x0e #define INITIATE_RECOVERY 0x0f /* SCSI-II only */ #define RELEASE_RECOVERY 0x10 /* SCSI-II only */ -#define TERMINATE_IO_PROC 0x11 /* SCSI-II only */ #define CLEAR_ACA 0x16 #define LOGICAL_UNIT_RESET 0x17 #define SIMPLE_QUEUE_TAG 0x20 @@ -168,7 +167,6 @@ static inline int scsi_is_wlun(u64 lun) * paths might yield different results */ #define DID_ALLOC_FAILURE 0x12 /* Space allocation on the device failed */ #define DID_MEDIUM_ERROR 0x13 /* Medium error */ -#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */ #define DRIVER_OK 0x00 /* Driver status */ /* diff --git a/original/scsi/scsi.h b/original/scsi/scsi.h index e75cca2..5339baa 100644 --- a/original/scsi/scsi.h +++ b/original/scsi/scsi.h @@ -116,7 +116,6 @@ static inline int scsi_is_wlun(u64 lun) #define CLEAR_TASK_SET 0x0e #define INITIATE_RECOVERY 0x0f /* SCSI-II only */ #define RELEASE_RECOVERY 0x10 /* SCSI-II only */ -#define TERMINATE_IO_PROC 0x11 /* SCSI-II only */ #define CLEAR_ACA 0x16 #define LOGICAL_UNIT_RESET 0x17 #define SIMPLE_QUEUE_TAG 0x20 @@ -160,7 +159,6 @@ static inline int scsi_is_wlun(u64 lun) * paths might yield different results */ #define DID_ALLOC_FAILURE 0x12 /* Space allocation on the device failed */ #define DID_MEDIUM_ERROR 0x13 /* Medium error */ -#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */ #define DRIVER_OK 0x00 /* Driver status */ /* diff --git a/original/scsi/scsi_ioctl.h b/original/scsi/scsi_ioctl.h index b465799..5101e98 100644 --- a/original/scsi/scsi_ioctl.h +++ b/original/scsi/scsi_ioctl.h @@ -27,7 +27,7 @@ struct scsi_device; typedef struct scsi_ioctl_command { unsigned int inlen; unsigned int outlen; - unsigned char data[]; + unsigned char data[0]; } Scsi_Ioctl_Command; typedef struct scsi_idlun { @@ -44,7 +44,6 @@ typedef struct scsi_fctargaddress { int scsi_ioctl_block_when_processing_errors(struct scsi_device *sdev, int cmd, bool ndelay); extern int scsi_ioctl(struct scsi_device *, int, void __user *); -extern int scsi_compat_ioctl(struct scsi_device *sdev, int cmd, void __user *arg); #endif /* __KERNEL__ */ #endif /* _SCSI_IOCTL_H */ diff --git a/original/scsi/sg.h b/original/scsi/sg.h index 7327e12..f91bcca 100644 --- a/original/scsi/sg.h +++ b/original/scsi/sg.h @@ -24,7 +24,7 @@ * http://sg.danny.cz/sg [alternatively check the MAINTAINERS file] * The documentation for the sg version 3 driver can be found at: * http://sg.danny.cz/sg/p/sg_v3_ho.html - * Also see: <kernel_source>/Documentation/scsi/scsi-generic.rst + * Also see: <kernel_source>/Documentation/scsi/scsi-generic.txt * * For utility and test programs see: http://sg.danny.cz/sg/sg3_utils.html */ @@ -68,36 +68,6 @@ typedef struct sg_io_hdr unsigned int info; /* [o] auxiliary information */ } sg_io_hdr_t; /* 64 bytes long (on i386) */ -#if defined(__KERNEL__) -#include <linux/compat.h> - -struct compat_sg_io_hdr { - compat_int_t interface_id; /* [i] 'S' for SCSI generic (required) */ - compat_int_t dxfer_direction; /* [i] data transfer direction */ - unsigned char cmd_len; /* [i] SCSI command length ( <= 16 bytes) */ - unsigned char mx_sb_len; /* [i] max length to write to sbp */ - unsigned short iovec_count; /* [i] 0 implies no scatter gather */ - compat_uint_t dxfer_len; /* [i] byte count of data transfer */ - compat_uint_t dxferp; /* [i], [*io] points to data transfer memory - or scatter gather list */ - compat_uptr_t cmdp; /* [i], [*i] points to command to perform */ - compat_uptr_t sbp; /* [i], [*o] points to sense_buffer memory */ - compat_uint_t timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */ - compat_uint_t flags; /* [i] 0 -> default, see SG_FLAG... */ - compat_int_t pack_id; /* [i->o] unused internally (normally) */ - compat_uptr_t usr_ptr; /* [i->o] unused internally */ - unsigned char status; /* [o] scsi status */ - unsigned char masked_status; /* [o] shifted, masked scsi status */ - unsigned char msg_status; /* [o] messaging level data (optional) */ - unsigned char sb_len_wr; /* [o] byte count actually written to sbp */ - unsigned short host_status; /* [o] errors from host adapter */ - unsigned short driver_status; /* [o] errors from software driver */ - compat_int_t resid; /* [o] dxfer_len - actual_transferred */ - compat_uint_t duration; /* [o] time taken by cmd (unit: millisec) */ - compat_uint_t info; /* [o] auxiliary information */ -}; -#endif - #define SG_INTERFACE_ID_ORIG 'S' /* Use negative values to flag difference from original sg_header structure */ diff --git a/original/uapi/asm-arm/asm/kvm.h b/original/uapi/asm-arm/asm/kvm.h new file mode 100644 index 0000000..03cd7c1 --- /dev/null +++ b/original/uapi/asm-arm/asm/kvm.h @@ -0,0 +1,314 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Copyright (C) 2012 - Virtual Open Systems and Columbia University + * Author: Christoffer Dall <c.dall@virtualopensystems.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __ARM_KVM_H__ +#define __ARM_KVM_H__ + +#include <linux/types.h> +#include <linux/psci.h> +#include <asm/ptrace.h> + +#define __KVM_HAVE_GUEST_DEBUG +#define __KVM_HAVE_IRQ_LINE +#define __KVM_HAVE_READONLY_MEM +#define __KVM_HAVE_VCPU_EVENTS + +#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 + +#define KVM_REG_SIZE(id) \ + (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) + +/* Valid for svc_regs, abt_regs, und_regs, irq_regs in struct kvm_regs */ +#define KVM_ARM_SVC_sp svc_regs[0] +#define KVM_ARM_SVC_lr svc_regs[1] +#define KVM_ARM_SVC_spsr svc_regs[2] +#define KVM_ARM_ABT_sp abt_regs[0] +#define KVM_ARM_ABT_lr abt_regs[1] +#define KVM_ARM_ABT_spsr abt_regs[2] +#define KVM_ARM_UND_sp und_regs[0] +#define KVM_ARM_UND_lr und_regs[1] +#define KVM_ARM_UND_spsr und_regs[2] +#define KVM_ARM_IRQ_sp irq_regs[0] +#define KVM_ARM_IRQ_lr irq_regs[1] +#define KVM_ARM_IRQ_spsr irq_regs[2] + +/* Valid only for fiq_regs in struct kvm_regs */ +#define KVM_ARM_FIQ_r8 fiq_regs[0] +#define KVM_ARM_FIQ_r9 fiq_regs[1] +#define KVM_ARM_FIQ_r10 fiq_regs[2] +#define KVM_ARM_FIQ_fp fiq_regs[3] +#define KVM_ARM_FIQ_ip fiq_regs[4] +#define KVM_ARM_FIQ_sp fiq_regs[5] +#define KVM_ARM_FIQ_lr fiq_regs[6] +#define KVM_ARM_FIQ_spsr fiq_regs[7] + +struct kvm_regs { + struct pt_regs usr_regs; /* R0_usr - R14_usr, PC, CPSR */ + unsigned long svc_regs[3]; /* SP_svc, LR_svc, SPSR_svc */ + unsigned long abt_regs[3]; /* SP_abt, LR_abt, SPSR_abt */ + unsigned long und_regs[3]; /* SP_und, LR_und, SPSR_und */ + unsigned long irq_regs[3]; /* SP_irq, LR_irq, SPSR_irq */ + unsigned long fiq_regs[8]; /* R8_fiq - R14_fiq, SPSR_fiq */ +}; + +/* Supported Processor Types */ +#define KVM_ARM_TARGET_CORTEX_A15 0 +#define KVM_ARM_TARGET_CORTEX_A7 1 +#define KVM_ARM_NUM_TARGETS 2 + +/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */ +#define KVM_ARM_DEVICE_TYPE_SHIFT 0 +#define KVM_ARM_DEVICE_TYPE_MASK (0xffff << KVM_ARM_DEVICE_TYPE_SHIFT) +#define KVM_ARM_DEVICE_ID_SHIFT 16 +#define KVM_ARM_DEVICE_ID_MASK (0xffff << KVM_ARM_DEVICE_ID_SHIFT) + +/* Supported device IDs */ +#define KVM_ARM_DEVICE_VGIC_V2 0 + +/* Supported VGIC address types */ +#define KVM_VGIC_V2_ADDR_TYPE_DIST 0 +#define KVM_VGIC_V2_ADDR_TYPE_CPU 1 + +#define KVM_VGIC_V2_DIST_SIZE 0x1000 +#define KVM_VGIC_V2_CPU_SIZE 0x2000 + +/* Supported VGICv3 address types */ +#define KVM_VGIC_V3_ADDR_TYPE_DIST 2 +#define KVM_VGIC_V3_ADDR_TYPE_REDIST 3 +#define KVM_VGIC_ITS_ADDR_TYPE 4 +#define KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION 5 + +#define KVM_VGIC_V3_DIST_SIZE SZ_64K +#define KVM_VGIC_V3_REDIST_SIZE (2 * SZ_64K) +#define KVM_VGIC_V3_ITS_SIZE (2 * SZ_64K) + +#define KVM_ARM_VCPU_POWER_OFF 0 /* CPU is started in OFF state */ +#define KVM_ARM_VCPU_PSCI_0_2 1 /* CPU uses PSCI v0.2 */ + +struct kvm_vcpu_init { + __u32 target; + __u32 features[7]; +}; + +struct kvm_sregs { +}; + +struct kvm_fpu { +}; + +struct kvm_guest_debug_arch { +}; + +struct kvm_debug_exit_arch { +}; + +struct kvm_sync_regs { + /* Used with KVM_CAP_ARM_USER_IRQ */ + __u64 device_irq_level; +}; + +struct kvm_arch_memory_slot { +}; + +/* for KVM_GET/SET_VCPU_EVENTS */ +struct kvm_vcpu_events { + struct { + __u8 serror_pending; + __u8 serror_has_esr; + __u8 ext_dabt_pending; + /* Align it to 8 bytes */ + __u8 pad[5]; + __u64 serror_esr; + } exception; + __u32 reserved[12]; +}; + +/* If you need to interpret the index values, here is the key: */ +#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 +#define KVM_REG_ARM_COPROC_SHIFT 16 +#define KVM_REG_ARM_32_OPC2_MASK 0x0000000000000007 +#define KVM_REG_ARM_32_OPC2_SHIFT 0 +#define KVM_REG_ARM_OPC1_MASK 0x0000000000000078 +#define KVM_REG_ARM_OPC1_SHIFT 3 +#define KVM_REG_ARM_CRM_MASK 0x0000000000000780 +#define KVM_REG_ARM_CRM_SHIFT 7 +#define KVM_REG_ARM_32_CRN_MASK 0x0000000000007800 +#define KVM_REG_ARM_32_CRN_SHIFT 11 +/* + * For KVM currently all guest registers are nonsecure, but we reserve a bit + * in the encoding to distinguish secure from nonsecure for AArch32 system + * registers that are banked by security. This is 1 for the secure banked + * register, and 0 for the nonsecure banked register or if the register is + * not banked by security. + */ +#define KVM_REG_ARM_SECURE_MASK 0x0000000010000000 +#define KVM_REG_ARM_SECURE_SHIFT 28 + +#define ARM_CP15_REG_SHIFT_MASK(x,n) \ + (((x) << KVM_REG_ARM_ ## n ## _SHIFT) & KVM_REG_ARM_ ## n ## _MASK) + +#define __ARM_CP15_REG(op1,crn,crm,op2) \ + (KVM_REG_ARM | (15 << KVM_REG_ARM_COPROC_SHIFT) | \ + ARM_CP15_REG_SHIFT_MASK(op1, OPC1) | \ + ARM_CP15_REG_SHIFT_MASK(crn, 32_CRN) | \ + ARM_CP15_REG_SHIFT_MASK(crm, CRM) | \ + ARM_CP15_REG_SHIFT_MASK(op2, 32_OPC2)) + +#define ARM_CP15_REG32(...) (__ARM_CP15_REG(__VA_ARGS__) | KVM_REG_SIZE_U32) + +#define __ARM_CP15_REG64(op1,crm) \ + (__ARM_CP15_REG(op1, 0, crm, 0) | KVM_REG_SIZE_U64) +#define ARM_CP15_REG64(...) __ARM_CP15_REG64(__VA_ARGS__) + +/* PL1 Physical Timer Registers */ +#define KVM_REG_ARM_PTIMER_CTL ARM_CP15_REG32(0, 14, 2, 1) +#define KVM_REG_ARM_PTIMER_CNT ARM_CP15_REG64(0, 14) +#define KVM_REG_ARM_PTIMER_CVAL ARM_CP15_REG64(2, 14) + +/* Virtual Timer Registers */ +#define KVM_REG_ARM_TIMER_CTL ARM_CP15_REG32(0, 14, 3, 1) +#define KVM_REG_ARM_TIMER_CNT ARM_CP15_REG64(1, 14) +#define KVM_REG_ARM_TIMER_CVAL ARM_CP15_REG64(3, 14) + +/* Normal registers are mapped as coprocessor 16. */ +#define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_CORE_REG(name) (offsetof(struct kvm_regs, name) / 4) + +/* Some registers need more space to represent values. */ +#define KVM_REG_ARM_DEMUX (0x0011 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_DEMUX_ID_MASK 0x000000000000FF00 +#define KVM_REG_ARM_DEMUX_ID_SHIFT 8 +#define KVM_REG_ARM_DEMUX_ID_CCSIDR (0x00 << KVM_REG_ARM_DEMUX_ID_SHIFT) +#define KVM_REG_ARM_DEMUX_VAL_MASK 0x00000000000000FF +#define KVM_REG_ARM_DEMUX_VAL_SHIFT 0 + +/* VFP registers: we could overload CP10 like ARM does, but that's ugly. */ +#define KVM_REG_ARM_VFP (0x0012 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_VFP_MASK 0x000000000000FFFF +#define KVM_REG_ARM_VFP_BASE_REG 0x0 +#define KVM_REG_ARM_VFP_FPSID 0x1000 +#define KVM_REG_ARM_VFP_FPSCR 0x1001 +#define KVM_REG_ARM_VFP_MVFR1 0x1006 +#define KVM_REG_ARM_VFP_MVFR0 0x1007 +#define KVM_REG_ARM_VFP_FPEXC 0x1008 +#define KVM_REG_ARM_VFP_FPINST 0x1009 +#define KVM_REG_ARM_VFP_FPINST2 0x100A + +/* KVM-as-firmware specific pseudo-registers */ +#define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT) +#define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM | KVM_REG_SIZE_U64 | \ + KVM_REG_ARM_FW | ((r) & 0xffff)) +#define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0) +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1 KVM_REG_ARM_FW_REG(1) + /* Higher values mean better protection. */ +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL 0 +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL 1 +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED 2 +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2 KVM_REG_ARM_FW_REG(2) + /* Higher values mean better protection. */ +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL 0 +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN 1 +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2 +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3 +#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4) + +/* Device Control API: ARM VGIC */ +#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 +#define KVM_DEV_ARM_VGIC_CPUID_SHIFT 32 +#define KVM_DEV_ARM_VGIC_CPUID_MASK (0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT) +#define KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT 32 +#define KVM_DEV_ARM_VGIC_V3_MPIDR_MASK \ + (0xffffffffULL << KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT) +#define KVM_DEV_ARM_VGIC_OFFSET_SHIFT 0 +#define KVM_DEV_ARM_VGIC_OFFSET_MASK (0xffffffffULL << KVM_DEV_ARM_VGIC_OFFSET_SHIFT) +#define KVM_DEV_ARM_VGIC_SYSREG_INSTR_MASK (0xffff) +#define KVM_DEV_ARM_VGIC_GRP_NR_IRQS 3 +#define KVM_DEV_ARM_VGIC_GRP_CTRL 4 +#define KVM_DEV_ARM_VGIC_GRP_REDIST_REGS 5 +#define KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS 6 +#define KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO 7 +#define KVM_DEV_ARM_VGIC_GRP_ITS_REGS 8 +#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT 10 +#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_MASK \ + (0x3fffffULL << KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_SHIFT) +#define KVM_DEV_ARM_VGIC_LINE_LEVEL_INTID_MASK 0x3ff +#define VGIC_LEVEL_INFO_LINE_LEVEL 0 + +/* Device Control API on vcpu fd */ +#define KVM_ARM_VCPU_PMU_V3_CTRL 0 +#define KVM_ARM_VCPU_PMU_V3_IRQ 0 +#define KVM_ARM_VCPU_PMU_V3_INIT 1 +#define KVM_ARM_VCPU_TIMER_CTRL 1 +#define KVM_ARM_VCPU_TIMER_IRQ_VTIMER 0 +#define KVM_ARM_VCPU_TIMER_IRQ_PTIMER 1 + +#define KVM_DEV_ARM_VGIC_CTRL_INIT 0 +#define KVM_DEV_ARM_ITS_SAVE_TABLES 1 +#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2 +#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3 +#define KVM_DEV_ARM_ITS_CTRL_RESET 4 + +/* KVM_IRQ_LINE irq field index values */ +#define KVM_ARM_IRQ_VCPU2_SHIFT 28 +#define KVM_ARM_IRQ_VCPU2_MASK 0xf +#define KVM_ARM_IRQ_TYPE_SHIFT 24 +#define KVM_ARM_IRQ_TYPE_MASK 0xf +#define KVM_ARM_IRQ_VCPU_SHIFT 16 +#define KVM_ARM_IRQ_VCPU_MASK 0xff +#define KVM_ARM_IRQ_NUM_SHIFT 0 +#define KVM_ARM_IRQ_NUM_MASK 0xffff + +/* irq_type field */ +#define KVM_ARM_IRQ_TYPE_CPU 0 +#define KVM_ARM_IRQ_TYPE_SPI 1 +#define KVM_ARM_IRQ_TYPE_PPI 2 + +/* out-of-kernel GIC cpu interrupt injection irq_number field */ +#define KVM_ARM_IRQ_CPU_IRQ 0 +#define KVM_ARM_IRQ_CPU_FIQ 1 + +/* + * This used to hold the highest supported SPI, but it is now obsolete + * and only here to provide source code level compatibility with older + * userland. The highest SPI number can be set via KVM_DEV_ARM_VGIC_GRP_NR_IRQS. + */ +#ifndef __KERNEL__ +#define KVM_ARM_IRQ_GIC_MAX 127 +#endif + +/* One single KVM irqchip, ie. the VGIC */ +#define KVM_NR_IRQCHIPS 1 + +/* PSCI interface */ +#define KVM_PSCI_FN_BASE 0x95c1ba5e +#define KVM_PSCI_FN(n) (KVM_PSCI_FN_BASE + (n)) + +#define KVM_PSCI_FN_CPU_SUSPEND KVM_PSCI_FN(0) +#define KVM_PSCI_FN_CPU_OFF KVM_PSCI_FN(1) +#define KVM_PSCI_FN_CPU_ON KVM_PSCI_FN(2) +#define KVM_PSCI_FN_MIGRATE KVM_PSCI_FN(3) + +#define KVM_PSCI_RET_SUCCESS PSCI_RET_SUCCESS +#define KVM_PSCI_RET_NI PSCI_RET_NOT_SUPPORTED +#define KVM_PSCI_RET_INVAL PSCI_RET_INVALID_PARAMS +#define KVM_PSCI_RET_DENIED PSCI_RET_DENIED + +#endif /* __ARM_KVM_H__ */ diff --git a/original/uapi/asm-arm/asm/setup.h b/original/uapi/asm-arm/asm/setup.h index 345bf0a..25ceda6 100644 --- a/original/uapi/asm-arm/asm/setup.h +++ b/original/uapi/asm-arm/asm/setup.h @@ -17,7 +17,7 @@ #include <linux/types.h> -#define COMMAND_LINE_SIZE 2048 +#define COMMAND_LINE_SIZE 1024 /* The list ends with an ATAG_NONE node. */ #define ATAG_NONE 0x00000000 diff --git a/original/uapi/asm-arm/asm/signal.h b/original/uapi/asm-arm/asm/signal.h index c9a3ea1..9b4185b 100644 --- a/original/uapi/asm-arm/asm/signal.h +++ b/original/uapi/asm-arm/asm/signal.h @@ -60,12 +60,33 @@ typedef unsigned long sigset_t; #define SIGSWI 32 /* - * SA_THIRTYTWO historically meant deliver the signal in 32-bit mode, even if - * the task is running in 26-bit. But since the kernel no longer supports - * 26-bit mode, the flag has no effect. + * SA_FLAGS values: + * + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_SIGINFO deliver the signal with SIGINFO structs + * SA_THIRTYTWO delivers the signal in 32-bit mode, even if the task + * is running in 26-bit. + * SA_ONSTACK allows alternate signal stacks (see sigaltstack(2)). + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NODEFER prevents the current signal from being masked in the handler. + * SA_RESETHAND clears the handler when the signal is delivered. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. */ +#define SA_NOCLDSTOP 0x00000001 +#define SA_NOCLDWAIT 0x00000002 +#define SA_SIGINFO 0x00000004 #define SA_THIRTYTWO 0x02000000 #define SA_RESTORER 0x04000000 +#define SA_ONSTACK 0x08000000 +#define SA_RESTART 0x10000000 +#define SA_NODEFER 0x40000000 +#define SA_RESETHAND 0x80000000 + +#define SA_NOMASK SA_NODEFER +#define SA_ONESHOT SA_RESETHAND #define MINSIGSTKSZ 2048 #define SIGSTKSZ 8192 diff --git a/original/uapi/asm-arm/asm/types.h b/original/uapi/asm-arm/asm/types.h index 1a667bc..dfaa50d 100644 --- a/original/uapi/asm-arm/asm/types.h +++ b/original/uapi/asm-arm/asm/types.h @@ -1,41 +1,9 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_ASM_TYPES_H -#define _UAPI_ASM_TYPES_H - -#include <asm-generic/int-ll64.h> - +#ifndef _ASM_GENERIC_TYPES_H +#define _ASM_GENERIC_TYPES_H /* - * The C99 types uintXX_t that are usually defined in 'stdint.h' are not as - * unambiguous on ARM as you would expect. For the types below, there is a - * difference on ARM between GCC built for bare metal ARM, GCC built for glibc - * and the kernel itself, which results in build errors if you try to build with - * -ffreestanding and include 'stdint.h' (such as when you include 'arm_neon.h' - * in order to use NEON intrinsics) - * - * As the typedefs for these types in 'stdint.h' are based on builtin defines - * supplied by GCC, we can tweak these to align with the kernel's idea of those - * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same - * source file (provided that -ffreestanding is used). - * - * int32_t uint32_t uintptr_t - * bare metal GCC long unsigned long unsigned int - * glibc GCC int unsigned int unsigned int - * kernel int unsigned int unsigned long + * int-ll64 is used everywhere now. */ +#include <asm-generic/int-ll64.h> -#ifdef __INT32_TYPE__ -#undef __INT32_TYPE__ -#define __INT32_TYPE__ int -#endif - -#ifdef __UINT32_TYPE__ -#undef __UINT32_TYPE__ -#define __UINT32_TYPE__ unsigned int -#endif - -#ifdef __UINTPTR_TYPE__ -#undef __UINTPTR_TYPE__ -#define __UINTPTR_TYPE__ unsigned long -#endif - -#endif /* _UAPI_ASM_TYPES_H */ +#endif /* _ASM_GENERIC_TYPES_H */ diff --git a/original/uapi/asm-arm/asm/unistd-common.h b/original/uapi/asm-arm/asm/unistd-common.h index e38b11c..555b51b 100644 --- a/original/uapi/asm-arm/asm/unistd-common.h +++ b/original/uapi/asm-arm/asm/unistd-common.h @@ -390,12 +390,5 @@ #define __NR_fspick (__NR_SYSCALL_BASE + 433) #define __NR_pidfd_open (__NR_SYSCALL_BASE + 434) #define __NR_clone3 (__NR_SYSCALL_BASE + 435) -#define __NR_close_range (__NR_SYSCALL_BASE + 436) -#define __NR_openat2 (__NR_SYSCALL_BASE + 437) -#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438) -#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439) -#define __NR_process_madvise (__NR_SYSCALL_BASE + 440) -#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441) -#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442) #endif /* _UAPI_ASM_ARM_UNISTD_COMMON_H */ diff --git a/original/uapi/asm-arm64/asm/hwcap.h b/original/uapi/asm-arm64/asm/hwcap.h index b8f41aa..a1e7288 100644 --- a/original/uapi/asm-arm64/asm/hwcap.h +++ b/original/uapi/asm-arm64/asm/hwcap.h @@ -65,15 +65,5 @@ #define HWCAP2_SVESM4 (1 << 6) #define HWCAP2_FLAGM2 (1 << 7) #define HWCAP2_FRINT (1 << 8) -#define HWCAP2_SVEI8MM (1 << 9) -#define HWCAP2_SVEF32MM (1 << 10) -#define HWCAP2_SVEF64MM (1 << 11) -#define HWCAP2_SVEBF16 (1 << 12) -#define HWCAP2_I8MM (1 << 13) -#define HWCAP2_BF16 (1 << 14) -#define HWCAP2_DGH (1 << 15) -#define HWCAP2_RNG (1 << 16) -#define HWCAP2_BTI (1 << 17) -#define HWCAP2_MTE (1 << 18) #endif /* _UAPI__ASM_HWCAP_H */ diff --git a/original/uapi/asm-arm64/asm/kvm.h b/original/uapi/asm-arm64/asm/kvm.h index 24223ad..820e575 100644 --- a/original/uapi/asm-arm64/asm/kvm.h +++ b/original/uapi/asm-arm64/asm/kvm.h @@ -156,19 +156,7 @@ struct kvm_sync_regs { __u64 device_irq_level; }; -/* - * PMU filter structure. Describe a range of events with a particular - * action. To be used with KVM_ARM_VCPU_PMU_V3_FILTER. - */ -struct kvm_pmu_event_filter { - __u16 base_event; - __u16 nevents; - -#define KVM_PMU_EVENT_ALLOW 0 -#define KVM_PMU_EVENT_DENY 1 - - __u8 action; - __u8 pad[3]; +struct kvm_arch_memory_slot { }; /* for KVM_GET/SET_VCPU_EVENTS */ @@ -232,18 +220,10 @@ struct kvm_vcpu_events { #define KVM_REG_ARM_PTIMER_CVAL ARM64_SYS_REG(3, 3, 14, 2, 2) #define KVM_REG_ARM_PTIMER_CNT ARM64_SYS_REG(3, 3, 14, 0, 1) -/* - * EL0 Virtual Timer Registers - * - * WARNING: - * KVM_REG_ARM_TIMER_CVAL and KVM_REG_ARM_TIMER_CNT are not defined - * with the appropriate register encodings. Their values have been - * accidentally swapped. As this is set API, the definitions here - * must be used, rather than ones derived from the encodings. - */ +/* EL0 Virtual Timer Registers */ #define KVM_REG_ARM_TIMER_CTL ARM64_SYS_REG(3, 3, 14, 3, 1) -#define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2) #define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2) +#define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2) /* KVM-as-firmware specific pseudo-registers */ #define KVM_REG_ARM_FW (0x0014 << KVM_REG_ARM_COPROC_SHIFT) @@ -254,15 +234,6 @@ struct kvm_vcpu_events { #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL 0 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL 1 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED 2 - -/* - * Only two states can be presented by the host kernel: - * - NOT_REQUIRED: the guest doesn't need to do anything - * - NOT_AVAIL: the guest isn't mitigated (it can still use SSBS if available) - * - * All the other values are deprecated. The host still accepts all - * values (they are ABI), but will narrow them to the above two. - */ #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2 KVM_REG_ARM_FW_REG(2) #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL 0 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN 1 @@ -350,7 +321,6 @@ struct kvm_vcpu_events { #define KVM_ARM_VCPU_PMU_V3_CTRL 0 #define KVM_ARM_VCPU_PMU_V3_IRQ 0 #define KVM_ARM_VCPU_PMU_V3_INIT 1 -#define KVM_ARM_VCPU_PMU_V3_FILTER 2 #define KVM_ARM_VCPU_TIMER_CTRL 1 #define KVM_ARM_VCPU_TIMER_IRQ_VTIMER 0 #define KVM_ARM_VCPU_TIMER_IRQ_PTIMER 1 diff --git a/original/uapi/asm-arm64/asm/mman.h b/original/uapi/asm-arm64/asm/mman.h index 1e6482a..8eebf89 100644 --- a/original/uapi/asm-arm64/asm/mman.h +++ b/original/uapi/asm-arm64/asm/mman.h @@ -1,10 +1 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI__ASM_MMAN_H -#define _UAPI__ASM_MMAN_H - #include <asm-generic/mman.h> - -#define PROT_BTI 0x10 /* BTI guarded page */ -#define PROT_MTE 0x20 /* Normal Tagged mapping */ - -#endif /* ! _UAPI__ASM_MMAN_H */ diff --git a/original/uapi/asm-arm64/asm/ptrace.h b/original/uapi/asm-arm64/asm/ptrace.h index 758ae98..7ed9294 100644 --- a/original/uapi/asm-arm64/asm/ptrace.h +++ b/original/uapi/asm-arm64/asm/ptrace.h @@ -46,19 +46,14 @@ #define PSR_I_BIT 0x00000080 #define PSR_A_BIT 0x00000100 #define PSR_D_BIT 0x00000200 -#define PSR_BTYPE_MASK 0x00000c00 #define PSR_SSBS_BIT 0x00001000 #define PSR_PAN_BIT 0x00400000 #define PSR_UAO_BIT 0x00800000 -#define PSR_DIT_BIT 0x01000000 -#define PSR_TCO_BIT 0x02000000 #define PSR_V_BIT 0x10000000 #define PSR_C_BIT 0x20000000 #define PSR_Z_BIT 0x40000000 #define PSR_N_BIT 0x80000000 -#define PSR_BTYPE_SHIFT 10 - /* * Groups of PSR bits */ @@ -67,18 +62,9 @@ #define PSR_x 0x0000ff00 /* Extension */ #define PSR_c 0x000000ff /* Control */ -/* Convenience names for the values of PSTATE.BTYPE */ -#define PSR_BTYPE_NONE (0b00 << PSR_BTYPE_SHIFT) -#define PSR_BTYPE_JC (0b01 << PSR_BTYPE_SHIFT) -#define PSR_BTYPE_C (0b10 << PSR_BTYPE_SHIFT) -#define PSR_BTYPE_J (0b11 << PSR_BTYPE_SHIFT) - /* syscall emulation path in ptrace */ #define PTRACE_SYSEMU 31 #define PTRACE_SYSEMU_SINGLESTEP 32 -/* MTE allocation tag access */ -#define PTRACE_PEEKMTETAGS 33 -#define PTRACE_POKEMTETAGS 34 #ifndef __ASSEMBLY__ diff --git a/original/uapi/asm-arm64/asm/sigcontext.h b/original/uapi/asm-arm64/asm/sigcontext.h index 0c796c7..8b0ebce 100644 --- a/original/uapi/asm-arm64/asm/sigcontext.h +++ b/original/uapi/asm-arm64/asm/sigcontext.h @@ -179,7 +179,7 @@ struct sve_context { * The same convention applies when returning from a signal: a caller * will need to remove or resize the sve_context block if it wants to * make the SVE registers live when they were previously non-live or - * vice-versa. This may require the caller to allocate fresh + * vice-versa. This may require the the caller to allocate fresh * memory and/or move other context blocks in the signal frame. * * Changing the vector length during signal return is not permitted: diff --git a/original/uapi/asm-generic/hugetlb_encode.h b/original/uapi/asm-generic/hugetlb_encode.h index 4f3d5aa..b0f8e87 100644 --- a/original/uapi/asm-generic/hugetlb_encode.h +++ b/original/uapi/asm-generic/hugetlb_encode.h @@ -20,7 +20,6 @@ #define HUGETLB_FLAG_ENCODE_SHIFT 26 #define HUGETLB_FLAG_ENCODE_MASK 0x3f -#define HUGETLB_FLAG_ENCODE_16KB (14 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT) #define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT) diff --git a/original/uapi/asm-generic/mman-common.h b/original/uapi/asm-generic/mman-common.h index f94f65d..c160a53 100644 --- a/original/uapi/asm-generic/mman-common.h +++ b/original/uapi/asm-generic/mman-common.h @@ -11,8 +11,6 @@ #define PROT_WRITE 0x2 /* page can be written */ #define PROT_EXEC 0x4 /* page can be executed */ #define PROT_SEM 0x8 /* page may be used for atomic ops */ -/* 0x10 reserved for arch-specific use */ -/* 0x20 reserved for arch-specific use */ #define PROT_NONE 0x0 /* page can not be accessed */ #define PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */ #define PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */ diff --git a/original/uapi/asm-generic/posix_types.h b/original/uapi/asm-generic/posix_types.h index b5f7594..2f9c805 100644 --- a/original/uapi/asm-generic/posix_types.h +++ b/original/uapi/asm-generic/posix_types.h @@ -87,9 +87,7 @@ typedef struct { typedef __kernel_long_t __kernel_off_t; typedef long long __kernel_loff_t; typedef __kernel_long_t __kernel_old_time_t; -#ifndef __KERNEL__ typedef __kernel_long_t __kernel_time_t; -#endif typedef long long __kernel_time64_t; typedef __kernel_long_t __kernel_clock_t; typedef int __kernel_timer_t; diff --git a/original/uapi/asm-generic/sembuf.h b/original/uapi/asm-generic/sembuf.h index f54e48f..0e709bd 100644 --- a/original/uapi/asm-generic/sembuf.h +++ b/original/uapi/asm-generic/sembuf.h @@ -6,9 +6,9 @@ #include <asm/ipcbuf.h> /* - * The semid64_ds structure for most architectures (though it came from x86_32 - * originally). Note extra padding because this structure is passed back and - * forth between kernel and user space. + * The semid64_ds structure for x86 architecture. + * Note extra padding because this structure is passed back and forth + * between kernel and user space. * * semid64_ds was originally meant to be architecture specific, but * everyone just ended up making identical copies without specific diff --git a/original/uapi/asm-generic/siginfo.h b/original/uapi/asm-generic/siginfo.h index d259700..cb3d6c2 100644 --- a/original/uapi/asm-generic/siginfo.h +++ b/original/uapi/asm-generic/siginfo.h @@ -229,9 +229,7 @@ typedef struct siginfo { #define SEGV_ACCADI 5 /* ADI not enabled for mapped object */ #define SEGV_ADIDERR 6 /* Disrupting MCD error */ #define SEGV_ADIPERR 7 /* Precise MCD exception */ -#define SEGV_MTEAERR 8 /* Asynchronous ARM MTE error */ -#define SEGV_MTESERR 9 /* Synchronous ARM MTE exception */ -#define NSIGSEGV 9 +#define NSIGSEGV 7 /* * SIGBUS si_codes @@ -286,8 +284,7 @@ typedef struct siginfo { * SIGSYS si_codes */ #define SYS_SECCOMP 1 /* seccomp triggered */ -#define SYS_USER_DISPATCH 2 /* syscall user dispatch triggered */ -#define NSIGSYS 2 +#define NSIGSYS 1 /* * SIGEMT si_codes diff --git a/original/uapi/asm-generic/signal-defs.h b/original/uapi/asm-generic/signal-defs.h index fe929e7..e9304c9 100644 --- a/original/uapi/asm-generic/signal-defs.h +++ b/original/uapi/asm-generic/signal-defs.h @@ -4,69 +4,6 @@ #include <linux/compiler.h> -/* - * SA_FLAGS values: - * - * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. - * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. - * SA_SIGINFO delivers the signal with SIGINFO structs. - * SA_ONSTACK indicates that a registered stack_t will be used. - * SA_RESTART flag to get restarting signals (which were the default long ago) - * SA_NODEFER prevents the current signal from being masked in the handler. - * SA_RESETHAND clears the handler when the signal is delivered. - * SA_UNSUPPORTED is a flag bit that will never be supported. Kernels from - * before the introduction of SA_UNSUPPORTED did not clear unknown bits from - * sa_flags when read using the oldact argument to sigaction and rt_sigaction, - * so this bit allows flag bit support to be detected from userspace while - * allowing an old kernel to be distinguished from a kernel that supports every - * flag bit. - * SA_EXPOSE_TAGBITS exposes an architecture-defined set of tag bits in - * siginfo.si_addr. - * - * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single - * Unix names RESETHAND and NODEFER respectively. - */ -#ifndef SA_NOCLDSTOP -#define SA_NOCLDSTOP 0x00000001 -#endif -#ifndef SA_NOCLDWAIT -#define SA_NOCLDWAIT 0x00000002 -#endif -#ifndef SA_SIGINFO -#define SA_SIGINFO 0x00000004 -#endif -/* 0x00000008 used on alpha, mips, parisc */ -/* 0x00000010 used on alpha, parisc */ -/* 0x00000020 used on alpha, parisc, sparc */ -/* 0x00000040 used on alpha, parisc */ -/* 0x00000080 used on parisc */ -/* 0x00000100 used on sparc */ -/* 0x00000200 used on sparc */ -#define SA_UNSUPPORTED 0x00000400 -#define SA_EXPOSE_TAGBITS 0x00000800 -/* 0x00010000 used on mips */ -/* 0x01000000 used on x86 */ -/* 0x02000000 used on x86 */ -/* - * New architectures should not define the obsolete - * SA_RESTORER 0x04000000 - */ -#ifndef SA_ONSTACK -#define SA_ONSTACK 0x08000000 -#endif -#ifndef SA_RESTART -#define SA_RESTART 0x10000000 -#endif -#ifndef SA_NODEFER -#define SA_NODEFER 0x40000000 -#endif -#ifndef SA_RESETHAND -#define SA_RESETHAND 0x80000000 -#endif - -#define SA_NOMASK SA_NODEFER -#define SA_ONESHOT SA_RESETHAND - #ifndef SIG_BLOCK #define SIG_BLOCK 0 /* for blocking signals */ #endif diff --git a/original/uapi/asm-generic/signal.h b/original/uapi/asm-generic/signal.h index f634822..5c716a9 100644 --- a/original/uapi/asm-generic/signal.h +++ b/original/uapi/asm-generic/signal.h @@ -52,6 +52,35 @@ #define SIGRTMAX _NSIG #endif +/* + * SA_FLAGS values: + * + * SA_ONSTACK indicates that a registered stack_t will be used. + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_RESETHAND clears the handler when the signal is delivered. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_NODEFER prevents the current signal from being masked in the handler. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ +#define SA_NOCLDSTOP 0x00000001 +#define SA_NOCLDWAIT 0x00000002 +#define SA_SIGINFO 0x00000004 +#define SA_ONSTACK 0x08000000 +#define SA_RESTART 0x10000000 +#define SA_NODEFER 0x40000000 +#define SA_RESETHAND 0x80000000 + +#define SA_NOMASK SA_NODEFER +#define SA_ONESHOT SA_RESETHAND + +/* + * New architectures should not define the obsolete + * SA_RESTORER 0x04000000 + */ + #if !defined MINSIGSTKSZ || !defined SIGSTKSZ #define MINSIGSTKSZ 2048 #define SIGSTKSZ 8192 diff --git a/original/uapi/asm-generic/socket.h b/original/uapi/asm-generic/socket.h index 4dcd13d..77f7c16 100644 --- a/original/uapi/asm-generic/socket.h +++ b/original/uapi/asm-generic/socket.h @@ -119,9 +119,6 @@ #define SO_DETACH_REUSEPORT_BPF 68 -#define SO_PREFER_BUSY_POLL 69 -#define SO_BUSY_POLL_BUDGET 70 - #if !defined(__KERNEL__) #if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__)) diff --git a/original/uapi/asm-generic/unistd.h b/original/uapi/asm-generic/unistd.h index ce58cff..1fc8faa 100644 --- a/original/uapi/asm-generic/unistd.h +++ b/original/uapi/asm-generic/unistd.h @@ -140,7 +140,7 @@ __SYSCALL(__NR_renameat, sys_renameat) #define __NR_umount2 39 __SYSCALL(__NR_umount2, sys_umount) #define __NR_mount 40 -__SYSCALL(__NR_mount, sys_mount) +__SC_COMP(__NR_mount, sys_mount, compat_sys_mount) #define __NR_pivot_root 41 __SYSCALL(__NR_pivot_root, sys_pivot_root) @@ -207,9 +207,9 @@ __SYSCALL(__NR_read, sys_read) #define __NR_write 64 __SYSCALL(__NR_write, sys_write) #define __NR_readv 65 -__SC_COMP(__NR_readv, sys_readv, sys_readv) +__SC_COMP(__NR_readv, sys_readv, compat_sys_readv) #define __NR_writev 66 -__SC_COMP(__NR_writev, sys_writev, sys_writev) +__SC_COMP(__NR_writev, sys_writev, compat_sys_writev) #define __NR_pread64 67 __SC_COMP(__NR_pread64, sys_pread64, compat_sys_pread64) #define __NR_pwrite64 68 @@ -237,7 +237,7 @@ __SC_COMP(__NR_signalfd4, sys_signalfd4, compat_sys_signalfd4) /* fs/splice.c */ #define __NR_vmsplice 75 -__SYSCALL(__NR_vmsplice, sys_vmsplice) +__SC_COMP(__NR_vmsplice, sys_vmsplice, compat_sys_vmsplice) #define __NR_splice 76 __SYSCALL(__NR_splice, sys_splice) #define __NR_tee 77 @@ -517,7 +517,7 @@ __SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday) __SC_3264(__NR_adjtimex, sys_adjtimex_time32, sys_adjtimex) #endif -/* kernel/sys.c */ +/* kernel/timer.c */ #define __NR_getpid 172 __SYSCALL(__NR_getpid, sys_getpid) #define __NR_getppid 173 @@ -606,9 +606,9 @@ __SYSCALL(__NR_sendto, sys_sendto) #define __NR_recvfrom 207 __SC_COMP(__NR_recvfrom, sys_recvfrom, compat_sys_recvfrom) #define __NR_setsockopt 208 -__SC_COMP(__NR_setsockopt, sys_setsockopt, sys_setsockopt) +__SC_COMP(__NR_setsockopt, sys_setsockopt, compat_sys_setsockopt) #define __NR_getsockopt 209 -__SC_COMP(__NR_getsockopt, sys_getsockopt, sys_getsockopt) +__SC_COMP(__NR_getsockopt, sys_getsockopt, compat_sys_getsockopt) #define __NR_shutdown 210 __SYSCALL(__NR_shutdown, sys_shutdown) #define __NR_sendmsg 211 @@ -727,9 +727,11 @@ __SYSCALL(__NR_setns, sys_setns) #define __NR_sendmmsg 269 __SC_COMP(__NR_sendmmsg, sys_sendmmsg, compat_sys_sendmmsg) #define __NR_process_vm_readv 270 -__SYSCALL(__NR_process_vm_readv, sys_process_vm_readv) +__SC_COMP(__NR_process_vm_readv, sys_process_vm_readv, \ + compat_sys_process_vm_readv) #define __NR_process_vm_writev 271 -__SYSCALL(__NR_process_vm_writev, sys_process_vm_writev) +__SC_COMP(__NR_process_vm_writev, sys_process_vm_writev, \ + compat_sys_process_vm_writev) #define __NR_kcmp 272 __SYSCALL(__NR_kcmp, sys_kcmp) #define __NR_finit_module 273 @@ -848,24 +850,9 @@ __SYSCALL(__NR_pidfd_open, sys_pidfd_open) #define __NR_clone3 435 __SYSCALL(__NR_clone3, sys_clone3) #endif -#define __NR_close_range 436 -__SYSCALL(__NR_close_range, sys_close_range) - -#define __NR_openat2 437 -__SYSCALL(__NR_openat2, sys_openat2) -#define __NR_pidfd_getfd 438 -__SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd) -#define __NR_faccessat2 439 -__SYSCALL(__NR_faccessat2, sys_faccessat2) -#define __NR_process_madvise 440 -__SYSCALL(__NR_process_madvise, sys_process_madvise) -#define __NR_epoll_pwait2 441 -__SC_COMP(__NR_epoll_pwait2, sys_epoll_pwait2, compat_sys_epoll_pwait2) -#define __NR_mount_setattr 442 -__SYSCALL(__NR_mount_setattr, sys_mount_setattr) #undef __NR_syscalls -#define __NR_syscalls 443 +#define __NR_syscalls 436 /* * 32 bit systems traditionally used different diff --git a/original/uapi/asm-x86/asm/bootparam.h b/original/uapi/asm-x86/asm/bootparam.h index 600a141..8669c6b 100644 --- a/original/uapi/asm-x86/asm/bootparam.h +++ b/original/uapi/asm-x86/asm/bootparam.h @@ -255,7 +255,7 @@ struct boot_params { * currently supportd through this PV boot path. * @X86_SUBARCH_INTEL_MID: Used for Intel MID (Mobile Internet Device) platform * systems which do not have the PCI legacy interfaces. - * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC + * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC for * for settop boxes and media devices, the use of a subarch for CE4100 * is more of a hack... */ diff --git a/original/uapi/asm-x86/asm/hwcap2.h b/original/uapi/asm-x86/asm/hwcap2.h index 5fdfcb4..8b2effe 100644 --- a/original/uapi/asm-x86/asm/hwcap2.h +++ b/original/uapi/asm-x86/asm/hwcap2.h @@ -5,7 +5,4 @@ /* MONITOR/MWAIT enabled in Ring 3 */ #define HWCAP2_RING3MWAIT (1 << 0) -/* Kernel allows FSGSBASE instructions available in Ring 3 */ -#define HWCAP2_FSGSBASE BIT(1) - #endif diff --git a/original/uapi/asm-x86/asm/kvm.h b/original/uapi/asm-x86/asm/kvm.h index 5a3022c..503d3f4 100644 --- a/original/uapi/asm-x86/asm/kvm.h +++ b/original/uapi/asm-x86/asm/kvm.h @@ -12,7 +12,6 @@ #define KVM_PIO_PAGE_OFFSET 1 #define KVM_COALESCED_MMIO_PAGE_OFFSET 2 -#define KVM_DIRTY_LOG_PAGE_OFFSET 64 #define DE_VECTOR 0 #define DB_VECTOR 1 @@ -112,7 +111,6 @@ struct kvm_ioapic_state { #define KVM_NR_IRQCHIPS 3 #define KVM_RUN_X86_SMM (1 << 0) -#define KVM_RUN_X86_BUS_LOCK (1 << 1) /* for KVM_GET_REGS and KVM_SET_REGS */ struct kvm_regs { @@ -194,26 +192,6 @@ struct kvm_msr_list { __u32 indices[0]; }; -/* Maximum size of any access bitmap in bytes */ -#define KVM_MSR_FILTER_MAX_BITMAP_SIZE 0x600 - -/* for KVM_X86_SET_MSR_FILTER */ -struct kvm_msr_filter_range { -#define KVM_MSR_FILTER_READ (1 << 0) -#define KVM_MSR_FILTER_WRITE (1 << 1) - __u32 flags; - __u32 nmsrs; /* number of msrs in bitmap */ - __u32 base; /* MSR index the bitmap starts at */ - __u8 *bitmap; /* a 1 bit allows the operations in flags, 0 denies */ -}; - -#define KVM_MSR_FILTER_MAX_RANGES 16 -struct kvm_msr_filter { -#define KVM_MSR_FILTER_DEFAULT_ALLOW (0 << 0) -#define KVM_MSR_FILTER_DEFAULT_DENY (1 << 0) - __u32 flags; - struct kvm_msr_filter_range ranges[KVM_MSR_FILTER_MAX_RANGES]; -}; struct kvm_cpuid_entry { __u32 function; @@ -407,23 +385,17 @@ struct kvm_sync_regs { #define KVM_X86_QUIRK_MISC_ENABLE_NO_MWAIT (1 << 4) #define KVM_STATE_NESTED_FORMAT_VMX 0 -#define KVM_STATE_NESTED_FORMAT_SVM 1 +#define KVM_STATE_NESTED_FORMAT_SVM 1 /* unused */ #define KVM_STATE_NESTED_GUEST_MODE 0x00000001 #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 #define KVM_STATE_NESTED_EVMCS 0x00000004 -#define KVM_STATE_NESTED_MTF_PENDING 0x00000008 -#define KVM_STATE_NESTED_GIF_SET 0x00000100 #define KVM_STATE_NESTED_SMM_GUEST_MODE 0x00000001 #define KVM_STATE_NESTED_SMM_VMXON 0x00000002 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000 -#define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000 - -#define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001 - struct kvm_vmx_nested_state_data { __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; @@ -436,18 +408,6 @@ struct kvm_vmx_nested_state_hdr { struct { __u16 flags; } smm; - - __u32 flags; - __u64 preemption_timer_deadline; -}; - -struct kvm_svm_nested_state_data { - /* Save area only used if KVM_STATE_NESTED_RUN_PENDING. */ - __u8 vmcb12[KVM_STATE_NESTED_SVM_VMCB_SIZE]; -}; - -struct kvm_svm_nested_state_hdr { - __u64 vmcb_pa; }; /* for KVM_CAP_NESTED_STATE */ @@ -458,7 +418,6 @@ struct kvm_nested_state { union { struct kvm_vmx_nested_state_hdr vmx; - struct kvm_svm_nested_state_hdr svm; /* Pad the header to 128 bytes. */ __u8 pad[120]; @@ -471,7 +430,6 @@ struct kvm_nested_state { */ union { struct kvm_vmx_nested_state_data vmx[0]; - struct kvm_svm_nested_state_data svm[0]; } data; }; diff --git a/original/uapi/asm-x86/asm/kvm_para.h b/original/uapi/asm-x86/asm/kvm_para.h index 950afeb..2a8e0b6 100644 --- a/original/uapi/asm-x86/asm/kvm_para.h +++ b/original/uapi/asm-x86/asm/kvm_para.h @@ -31,8 +31,6 @@ #define KVM_FEATURE_PV_SEND_IPI 11 #define KVM_FEATURE_POLL_CONTROL 12 #define KVM_FEATURE_PV_SCHED_YIELD 13 -#define KVM_FEATURE_ASYNC_PF_INT 14 -#define KVM_FEATURE_MSI_EXT_DEST_ID 15 #define KVM_HINTS_REALTIME 0 @@ -52,8 +50,6 @@ #define MSR_KVM_STEAL_TIME 0x4b564d03 #define MSR_KVM_PV_EOI_EN 0x4b564d04 #define MSR_KVM_POLL_CONTROL 0x4b564d05 -#define MSR_KVM_ASYNC_PF_INT 0x4b564d06 -#define MSR_KVM_ASYNC_PF_ACK 0x4b564d07 struct kvm_steal_time { __u64 steal; @@ -85,11 +81,6 @@ struct kvm_clock_pairing { #define KVM_ASYNC_PF_ENABLED (1 << 0) #define KVM_ASYNC_PF_SEND_ALWAYS (1 << 1) #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2) -#define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3) - -/* MSR_KVM_ASYNC_PF_INT */ -#define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0) - /* Operations for KVM_HC_MMU_OP */ #define KVM_MMU_OP_WRITE_PTE 1 @@ -121,13 +112,8 @@ struct kvm_mmu_op_release_pt { #define KVM_PV_REASON_PAGE_READY 2 struct kvm_vcpu_pv_apf_data { - /* Used for 'page not present' events delivered via #PF */ - __u32 flags; - - /* Used for 'page ready' events delivered via interrupt notification */ - __u32 token; - - __u8 pad[56]; + __u32 reason; + __u8 pad[60]; __u32 enabled; }; diff --git a/original/uapi/asm-x86/asm/mce.h b/original/uapi/asm-x86/asm/mce.h index db9adc0..955c2a2 100644 --- a/original/uapi/asm-x86/asm/mce.h +++ b/original/uapi/asm-x86/asm/mce.h @@ -35,7 +35,6 @@ struct mce { __u64 ipid; /* MCA_IPID MSR: only valid on SMCA systems */ __u64 ppin; /* Protected Processor Inventory Number */ __u32 microcode; /* Microcode revision */ - __u64 kflags; /* Internal kernel use */ }; #define MCE_GET_RECORD_LEN _IOR('M', 1, int) diff --git a/original/uapi/asm-x86/asm/sgx.h b/original/uapi/asm-x86/asm/sgx.h deleted file mode 100644 index 9034f30..0000000 --- a/original/uapi/asm-x86/asm/sgx.h +++ /dev/null @@ -1,168 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Copyright(c) 2016-20 Intel Corporation. - */ -#ifndef _UAPI_ASM_X86_SGX_H -#define _UAPI_ASM_X86_SGX_H - -#include <linux/types.h> -#include <linux/ioctl.h> - -/** - * enum sgx_page_flags - page control flags - * %SGX_PAGE_MEASURE: Measure the page contents with a sequence of - * ENCLS[EEXTEND] operations. - */ -enum sgx_page_flags { - SGX_PAGE_MEASURE = 0x01, -}; - -#define SGX_MAGIC 0xA4 - -#define SGX_IOC_ENCLAVE_CREATE \ - _IOW(SGX_MAGIC, 0x00, struct sgx_enclave_create) -#define SGX_IOC_ENCLAVE_ADD_PAGES \ - _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages) -#define SGX_IOC_ENCLAVE_INIT \ - _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init) -#define SGX_IOC_ENCLAVE_PROVISION \ - _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision) - -/** - * struct sgx_enclave_create - parameter structure for the - * %SGX_IOC_ENCLAVE_CREATE ioctl - * @src: address for the SECS page data - */ -struct sgx_enclave_create { - __u64 src; -}; - -/** - * struct sgx_enclave_add_pages - parameter structure for the - * %SGX_IOC_ENCLAVE_ADD_PAGE ioctl - * @src: start address for the page data - * @offset: starting page offset - * @length: length of the data (multiple of the page size) - * @secinfo: address for the SECINFO data - * @flags: page control flags - * @count: number of bytes added (multiple of the page size) - */ -struct sgx_enclave_add_pages { - __u64 src; - __u64 offset; - __u64 length; - __u64 secinfo; - __u64 flags; - __u64 count; -}; - -/** - * struct sgx_enclave_init - parameter structure for the - * %SGX_IOC_ENCLAVE_INIT ioctl - * @sigstruct: address for the SIGSTRUCT data - */ -struct sgx_enclave_init { - __u64 sigstruct; -}; - -/** - * struct sgx_enclave_provision - parameter structure for the - * %SGX_IOC_ENCLAVE_PROVISION ioctl - * @fd: file handle of /dev/sgx_provision - */ -struct sgx_enclave_provision { - __u64 fd; -}; - -struct sgx_enclave_run; - -/** - * typedef sgx_enclave_user_handler_t - Exit handler function accepted by - * __vdso_sgx_enter_enclave() - * @run: The run instance given by the caller - * - * The register parameters contain the snapshot of their values at enclave - * exit. An invalid ENCLU function number will cause -EINVAL to be returned - * to the caller. - * - * Return: - * - <= 0: The given value is returned back to the caller. - * - > 0: ENCLU function to invoke, either EENTER or ERESUME. - */ -typedef int (*sgx_enclave_user_handler_t)(long rdi, long rsi, long rdx, - long rsp, long r8, long r9, - struct sgx_enclave_run *run); - -/** - * struct sgx_enclave_run - the execution context of __vdso_sgx_enter_enclave() - * @tcs: TCS used to enter the enclave - * @function: The last seen ENCLU function (EENTER, ERESUME or EEXIT) - * @exception_vector: The interrupt vector of the exception - * @exception_error_code: The exception error code pulled out of the stack - * @exception_addr: The address that triggered the exception - * @user_handler: User provided callback run on exception - * @user_data: Data passed to the user handler - * @reserved Reserved for future extensions - * - * If @user_handler is provided, the handler will be invoked on all return paths - * of the normal flow. The user handler may transfer control, e.g. via a - * longjmp() call or a C++ exception, without returning to - * __vdso_sgx_enter_enclave(). - */ -struct sgx_enclave_run { - __u64 tcs; - __u32 function; - __u16 exception_vector; - __u16 exception_error_code; - __u64 exception_addr; - __u64 user_handler; - __u64 user_data; - __u8 reserved[216]; -}; - -/** - * typedef vdso_sgx_enter_enclave_t - Prototype for __vdso_sgx_enter_enclave(), - * a vDSO function to enter an SGX enclave. - * @rdi: Pass-through value for RDI - * @rsi: Pass-through value for RSI - * @rdx: Pass-through value for RDX - * @function: ENCLU function, must be EENTER or ERESUME - * @r8: Pass-through value for R8 - * @r9: Pass-through value for R9 - * @run: struct sgx_enclave_run, must be non-NULL - * - * NOTE: __vdso_sgx_enter_enclave() does not ensure full compliance with the - * x86-64 ABI, e.g. doesn't handle XSAVE state. Except for non-volatile - * general purpose registers, EFLAGS.DF, and RSP alignment, preserving/setting - * state in accordance with the x86-64 ABI is the responsibility of the enclave - * and its runtime, i.e. __vdso_sgx_enter_enclave() cannot be called from C - * code without careful consideration by both the enclave and its runtime. - * - * All general purpose registers except RAX, RBX and RCX are passed as-is to the - * enclave. RAX, RBX and RCX are consumed by EENTER and ERESUME and are loaded - * with @function, asynchronous exit pointer, and @run.tcs respectively. - * - * RBP and the stack are used to anchor __vdso_sgx_enter_enclave() to the - * pre-enclave state, e.g. to retrieve @run.exception and @run.user_handler - * after an enclave exit. All other registers are available for use by the - * enclave and its runtime, e.g. an enclave can push additional data onto the - * stack (and modify RSP) to pass information to the optional user handler (see - * below). - * - * Most exceptions reported on ENCLU, including those that occur within the - * enclave, are fixed up and reported synchronously instead of being delivered - * via a standard signal. Debug Exceptions (#DB) and Breakpoints (#BP) are - * never fixed up and are always delivered via standard signals. On synchrously - * reported exceptions, -EFAULT is returned and details about the exception are - * recorded in @run.exception, the optional sgx_enclave_exception struct. - * - * Return: - * - 0: ENCLU function was successfully executed. - * - -EINVAL: Invalid ENCL number (neither EENTER nor ERESUME). - */ -typedef int (*vdso_sgx_enter_enclave_t)(unsigned long rdi, unsigned long rsi, - unsigned long rdx, unsigned int function, - unsigned long r8, unsigned long r9, - struct sgx_enclave_run *run); - -#endif /* _UAPI_ASM_X86_SGX_H */ diff --git a/original/uapi/asm-x86/asm/signal.h b/original/uapi/asm-x86/asm/signal.h index 164a22a..e5745d5 100644 --- a/original/uapi/asm-x86/asm/signal.h +++ b/original/uapi/asm-x86/asm/signal.h @@ -62,6 +62,30 @@ typedef unsigned long sigset_t; #define SIGRTMIN 32 #define SIGRTMAX _NSIG +/* + * SA_FLAGS values: + * + * SA_ONSTACK indicates that a registered stack_t will be used. + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_RESETHAND clears the handler when the signal is delivered. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_NODEFER prevents the current signal from being masked in the handler. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ +#define SA_NOCLDSTOP 0x00000001u +#define SA_NOCLDWAIT 0x00000002u +#define SA_SIGINFO 0x00000004u +#define SA_ONSTACK 0x08000000u +#define SA_RESTART 0x10000000u +#define SA_NODEFER 0x40000000u +#define SA_RESETHAND 0x80000000u + +#define SA_NOMASK SA_NODEFER +#define SA_ONESHOT SA_RESETHAND + #define SA_RESTORER 0x04000000 #define MINSIGSTKSZ 2048 diff --git a/original/uapi/asm-x86/asm/svm.h b/original/uapi/asm-x86/asm/svm.h index 554f75f..2e8a30f 100644 --- a/original/uapi/asm-x86/asm/svm.h +++ b/original/uapi/asm-x86/asm/svm.h @@ -29,7 +29,6 @@ #define SVM_EXIT_WRITE_DR6 0x036 #define SVM_EXIT_WRITE_DR7 0x037 #define SVM_EXIT_EXCP_BASE 0x040 -#define SVM_EXIT_LAST_EXCP 0x05f #define SVM_EXIT_INTR 0x060 #define SVM_EXIT_NMI 0x061 #define SVM_EXIT_SMI 0x062 @@ -77,38 +76,9 @@ #define SVM_EXIT_MWAIT_COND 0x08c #define SVM_EXIT_XSETBV 0x08d #define SVM_EXIT_RDPRU 0x08e -#define SVM_EXIT_EFER_WRITE_TRAP 0x08f -#define SVM_EXIT_CR0_WRITE_TRAP 0x090 -#define SVM_EXIT_CR1_WRITE_TRAP 0x091 -#define SVM_EXIT_CR2_WRITE_TRAP 0x092 -#define SVM_EXIT_CR3_WRITE_TRAP 0x093 -#define SVM_EXIT_CR4_WRITE_TRAP 0x094 -#define SVM_EXIT_CR5_WRITE_TRAP 0x095 -#define SVM_EXIT_CR6_WRITE_TRAP 0x096 -#define SVM_EXIT_CR7_WRITE_TRAP 0x097 -#define SVM_EXIT_CR8_WRITE_TRAP 0x098 -#define SVM_EXIT_CR9_WRITE_TRAP 0x099 -#define SVM_EXIT_CR10_WRITE_TRAP 0x09a -#define SVM_EXIT_CR11_WRITE_TRAP 0x09b -#define SVM_EXIT_CR12_WRITE_TRAP 0x09c -#define SVM_EXIT_CR13_WRITE_TRAP 0x09d -#define SVM_EXIT_CR14_WRITE_TRAP 0x09e -#define SVM_EXIT_CR15_WRITE_TRAP 0x09f -#define SVM_EXIT_INVPCID 0x0a2 #define SVM_EXIT_NPF 0x400 #define SVM_EXIT_AVIC_INCOMPLETE_IPI 0x401 #define SVM_EXIT_AVIC_UNACCELERATED_ACCESS 0x402 -#define SVM_EXIT_VMGEXIT 0x403 - -/* SEV-ES software-defined VMGEXIT events */ -#define SVM_VMGEXIT_MMIO_READ 0x80000001 -#define SVM_VMGEXIT_MMIO_WRITE 0x80000002 -#define SVM_VMGEXIT_NMI_COMPLETE 0x80000003 -#define SVM_VMGEXIT_AP_HLT_LOOP 0x80000004 -#define SVM_VMGEXIT_AP_JUMP_TABLE 0x80000005 -#define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0 -#define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1 -#define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff #define SVM_EXIT_ERR -1 @@ -201,20 +171,9 @@ { SVM_EXIT_MONITOR, "monitor" }, \ { SVM_EXIT_MWAIT, "mwait" }, \ { SVM_EXIT_XSETBV, "xsetbv" }, \ - { SVM_EXIT_EFER_WRITE_TRAP, "write_efer_trap" }, \ - { SVM_EXIT_CR0_WRITE_TRAP, "write_cr0_trap" }, \ - { SVM_EXIT_CR4_WRITE_TRAP, "write_cr4_trap" }, \ - { SVM_EXIT_CR8_WRITE_TRAP, "write_cr8_trap" }, \ - { SVM_EXIT_INVPCID, "invpcid" }, \ { SVM_EXIT_NPF, "npf" }, \ { SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, \ { SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, \ - { SVM_EXIT_VMGEXIT, "vmgexit" }, \ - { SVM_VMGEXIT_MMIO_READ, "vmgexit_mmio_read" }, \ - { SVM_VMGEXIT_MMIO_WRITE, "vmgexit_mmio_write" }, \ - { SVM_VMGEXIT_NMI_COMPLETE, "vmgexit_nmi_complete" }, \ - { SVM_VMGEXIT_AP_HLT_LOOP, "vmgexit_ap_hlt_loop" }, \ - { SVM_VMGEXIT_AP_JUMP_TABLE, "vmgexit_ap_jump_table" }, \ { SVM_EXIT_ERR, "invalid_guest_state" } diff --git a/original/uapi/asm-x86/asm/unistd.h b/original/uapi/asm-x86/asm/unistd.h index be5e2e7..196fdd0 100644 --- a/original/uapi/asm-x86/asm/unistd.h +++ b/original/uapi/asm-x86/asm/unistd.h @@ -2,15 +2,8 @@ #ifndef _UAPI_ASM_X86_UNISTD_H #define _UAPI_ASM_X86_UNISTD_H -/* - * x32 syscall flag bit. Some user programs expect syscall NR macros - * and __X32_SYSCALL_BIT to have type int, even though syscall numbers - * are, for practical purposes, unsigned long. - * - * Fortunately, expressions like (nr & ~__X32_SYSCALL_BIT) do the right - * thing regardless. - */ -#define __X32_SYSCALL_BIT 0x40000000 +/* x32 syscall flag bit */ +#define __X32_SYSCALL_BIT 0x40000000UL #ifndef __KERNEL__ # ifdef __i386__ diff --git a/original/uapi/asm-x86/asm/unistd_32.h b/original/uapi/asm-x86/asm/unistd_32.h index e3d32ca..e8ebec1 100644 --- a/original/uapi/asm-x86/asm/unistd_32.h +++ b/original/uapi/asm-x86/asm/unistd_32.h @@ -426,16 +426,5 @@ #define __NR_fspick 433 #define __NR_pidfd_open 434 #define __NR_clone3 435 -#define __NR_close_range 436 -#define __NR_openat2 437 -#define __NR_pidfd_getfd 438 -#define __NR_faccessat2 439 -#define __NR_process_madvise 440 -#define __NR_epoll_pwait2 441 -#define __NR_mount_setattr 442 - -#ifdef __KERNEL__ -#define __NR_syscall_max 442 -#endif #endif /* _ASM_X86_UNISTD_32_H */ diff --git a/original/uapi/asm-x86/asm/unistd_64.h b/original/uapi/asm-x86/asm/unistd_64.h index ffbe094..a2f863d 100644 --- a/original/uapi/asm-x86/asm/unistd_64.h +++ b/original/uapi/asm-x86/asm/unistd_64.h @@ -348,16 +348,5 @@ #define __NR_fspick 433 #define __NR_pidfd_open 434 #define __NR_clone3 435 -#define __NR_close_range 436 -#define __NR_openat2 437 -#define __NR_pidfd_getfd 438 -#define __NR_faccessat2 439 -#define __NR_process_madvise 440 -#define __NR_epoll_pwait2 441 -#define __NR_mount_setattr 442 - -#ifdef __KERNEL__ -#define __NR_syscall_max 442 -#endif #endif /* _ASM_X86_UNISTD_64_H */ diff --git a/original/uapi/asm-x86/asm/unistd_x32.h b/original/uapi/asm-x86/asm/unistd_x32.h index 7b7ee98..4cdc67d 100644 --- a/original/uapi/asm-x86/asm/unistd_x32.h +++ b/original/uapi/asm-x86/asm/unistd_x32.h @@ -301,13 +301,6 @@ #define __NR_fspick (__X32_SYSCALL_BIT + 433) #define __NR_pidfd_open (__X32_SYSCALL_BIT + 434) #define __NR_clone3 (__X32_SYSCALL_BIT + 435) -#define __NR_close_range (__X32_SYSCALL_BIT + 436) -#define __NR_openat2 (__X32_SYSCALL_BIT + 437) -#define __NR_pidfd_getfd (__X32_SYSCALL_BIT + 438) -#define __NR_faccessat2 (__X32_SYSCALL_BIT + 439) -#define __NR_process_madvise (__X32_SYSCALL_BIT + 440) -#define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441) -#define __NR_mount_setattr (__X32_SYSCALL_BIT + 442) #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) #define __NR_ioctl (__X32_SYSCALL_BIT + 514) @@ -345,8 +338,4 @@ #define __NR_preadv2 (__X32_SYSCALL_BIT + 546) #define __NR_pwritev2 (__X32_SYSCALL_BIT + 547) -#ifdef __KERNEL__ -#define __NR_syscall_max 547 -#endif - #endif /* _ASM_X86_UNISTD_X32_H */ diff --git a/original/uapi/asm-x86/asm/vm86.h b/original/uapi/asm-x86/asm/vm86.h index 18909b8..d2ee4e3 100644 --- a/original/uapi/asm-x86/asm/vm86.h +++ b/original/uapi/asm-x86/asm/vm86.h @@ -97,7 +97,7 @@ struct revectored_struct { struct vm86_struct { struct vm86_regs regs; unsigned long flags; - unsigned long screen_bitmap; /* unused, preserved by vm86() */ + unsigned long screen_bitmap; unsigned long cpu_type; struct revectored_struct int_revectored; struct revectored_struct int21_revectored; @@ -106,7 +106,7 @@ struct vm86_struct { /* * flags masks */ -#define VM86_SCREEN_BITMAP 0x0001 /* no longer supported */ +#define VM86_SCREEN_BITMAP 0x0001 struct vm86plus_info_struct { unsigned long force_return_for_pic:1; diff --git a/original/uapi/asm-x86/asm/vmx.h b/original/uapi/asm-x86/asm/vmx.h index b8e650a..3eb8411 100644 --- a/original/uapi/asm-x86/asm/vmx.h +++ b/original/uapi/asm-x86/asm/vmx.h @@ -32,9 +32,8 @@ #define EXIT_REASON_EXTERNAL_INTERRUPT 1 #define EXIT_REASON_TRIPLE_FAULT 2 #define EXIT_REASON_INIT_SIGNAL 3 -#define EXIT_REASON_SIPI_SIGNAL 4 -#define EXIT_REASON_INTERRUPT_WINDOW 7 +#define EXIT_REASON_PENDING_INTERRUPT 7 #define EXIT_REASON_NMI_WINDOW 8 #define EXIT_REASON_TASK_SWITCH 9 #define EXIT_REASON_CPUID 10 @@ -89,15 +88,13 @@ #define EXIT_REASON_XRSTORS 64 #define EXIT_REASON_UMWAIT 67 #define EXIT_REASON_TPAUSE 68 -#define EXIT_REASON_BUS_LOCK 74 #define VMX_EXIT_REASONS \ { EXIT_REASON_EXCEPTION_NMI, "EXCEPTION_NMI" }, \ { EXIT_REASON_EXTERNAL_INTERRUPT, "EXTERNAL_INTERRUPT" }, \ { EXIT_REASON_TRIPLE_FAULT, "TRIPLE_FAULT" }, \ { EXIT_REASON_INIT_SIGNAL, "INIT_SIGNAL" }, \ - { EXIT_REASON_SIPI_SIGNAL, "SIPI_SIGNAL" }, \ - { EXIT_REASON_INTERRUPT_WINDOW, "INTERRUPT_WINDOW" }, \ + { EXIT_REASON_PENDING_INTERRUPT, "PENDING_INTERRUPT" }, \ { EXIT_REASON_NMI_WINDOW, "NMI_WINDOW" }, \ { EXIT_REASON_TASK_SWITCH, "TASK_SWITCH" }, \ { EXIT_REASON_CPUID, "CPUID" }, \ @@ -151,11 +148,7 @@ { EXIT_REASON_XSAVES, "XSAVES" }, \ { EXIT_REASON_XRSTORS, "XRSTORS" }, \ { EXIT_REASON_UMWAIT, "UMWAIT" }, \ - { EXIT_REASON_TPAUSE, "TPAUSE" }, \ - { EXIT_REASON_BUS_LOCK, "BUS_LOCK" } - -#define VMX_EXIT_REASON_FLAGS \ - { VMX_EXIT_REASONS_FAILED_VMENTRY, "FAILED_VMENTRY" } + { EXIT_REASON_TPAUSE, "TPAUSE" } #define VMX_ABORT_SAVE_GUEST_MSR_FAIL 1 #define VMX_ABORT_LOAD_HOST_PDPTE_FAIL 2 diff --git a/original/uapi/drm/amdgpu_drm.h b/original/uapi/drm/amdgpu_drm.h index 7fb9c09..bbdad86 100644 --- a/original/uapi/drm/amdgpu_drm.h +++ b/original/uapi/drm/amdgpu_drm.h @@ -125,19 +125,13 @@ extern "C" { /* Flag that BO sharing will be explicitly synchronized */ #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7) /* Flag that indicates allocating MQD gart on GFX9, where the mtype - * for the second page onward should be set to NC. It should never - * be used by user space applications. + * for the second page onward should be set to NC. */ -#define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8) +#define AMDGPU_GEM_CREATE_MQD_GFX9 (1 << 8) /* Flag that BO may contain sensitive data that must be wiped before * releasing the memory */ #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9) -/* Flag that BO will be encrypted and that the TMZ bit should be - * set in the PTEs when mapping this buffer via GPUVM or - * accessing it with various hw blocks - */ -#define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10) struct drm_amdgpu_gem_create_in { /** the requested memory size */ @@ -351,10 +345,6 @@ struct drm_amdgpu_gem_userptr { #define AMDGPU_TILING_DCC_PITCH_MAX_MASK 0x3FFF #define AMDGPU_TILING_DCC_INDEPENDENT_64B_SHIFT 43 #define AMDGPU_TILING_DCC_INDEPENDENT_64B_MASK 0x1 -#define AMDGPU_TILING_DCC_INDEPENDENT_128B_SHIFT 44 -#define AMDGPU_TILING_DCC_INDEPENDENT_128B_MASK 0x1 -#define AMDGPU_TILING_SCANOUT_SHIFT 63 -#define AMDGPU_TILING_SCANOUT_MASK 0x1 /* Set/Get helpers for tiling flags. */ #define AMDGPU_TILING_SET(field, value) \ @@ -502,15 +492,15 @@ struct drm_amdgpu_gem_op { #define AMDGPU_VM_MTYPE_MASK (0xf << 5) /* Default MTYPE. Pre-AI must use this. Recommended for newer ASICs. */ #define AMDGPU_VM_MTYPE_DEFAULT (0 << 5) -/* Use Non Coherent MTYPE instead of default MTYPE */ +/* Use NC MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_NC (1 << 5) -/* Use Write Combine MTYPE instead of default MTYPE */ +/* Use WC MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_WC (2 << 5) -/* Use Cache Coherent MTYPE instead of default MTYPE */ +/* Use CC MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_CC (3 << 5) -/* Use UnCached MTYPE instead of default MTYPE */ +/* Use UC MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_UC (4 << 5) -/* Use Read Write MTYPE instead of default MTYPE */ +/* Use RW MTYPE instead of default MTYPE */ #define AMDGPU_VM_MTYPE_RW (5 << 5) struct drm_amdgpu_gem_va { @@ -564,7 +554,7 @@ struct drm_amdgpu_cs_in { /** Handle of resource list associated with CS */ __u32 bo_list_handle; __u32 num_chunks; - __u32 flags; + __u32 _pad; /** this points to __u64 * which point to cs chunks */ __u64 chunks; }; @@ -598,14 +588,6 @@ union drm_amdgpu_cs { */ #define AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID (1 << 4) -/* Flag the IB as secure (TMZ) - */ -#define AMDGPU_IB_FLAGS_SECURE (1 << 5) - -/* Tell KMD to flush and invalidate caches - */ -#define AMDGPU_IB_FLAG_EMIT_MEM_SYNC (1 << 6) - struct drm_amdgpu_cs_chunk_ib { __u32 _pad; /** AMDGPU_IB_FLAG_* */ @@ -667,13 +649,12 @@ struct drm_amdgpu_cs_chunk_data { }; }; -/* +/** * Query h/w info: Flag that this is integrated (a.h.a. fusion) GPU * */ #define AMDGPU_IDS_FLAGS_FUSION 0x1 #define AMDGPU_IDS_FLAGS_PREEMPTION 0x2 -#define AMDGPU_IDS_FLAGS_TMZ 0x4 /* indicate if acceleration can be working */ #define AMDGPU_INFO_ACCEL_WORKING 0x00 @@ -722,11 +703,6 @@ struct drm_amdgpu_cs_chunk_data { /* Subquery id: Query DMCU firmware version */ #define AMDGPU_INFO_FW_DMCU 0x12 #define AMDGPU_INFO_FW_TA 0x13 - /* Subquery id: Query DMCUB firmware version */ - #define AMDGPU_INFO_FW_DMCUB 0x14 - /* Subquery id: Query TOC firmware version */ - #define AMDGPU_INFO_FW_TOC 0x15 - /* number of bytes moved for TTM migration */ #define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f /* the used VRAM size */ @@ -948,7 +924,6 @@ struct drm_amdgpu_info_firmware { #define AMDGPU_VRAM_TYPE_DDR3 7 #define AMDGPU_VRAM_TYPE_DDR4 8 #define AMDGPU_VRAM_TYPE_GDDR6 9 -#define AMDGPU_VRAM_TYPE_DDR5 10 struct drm_amdgpu_info_device { /** PCI Device ID */ @@ -1086,7 +1061,6 @@ struct drm_amdgpu_info_vce_clock_table { #define AMDGPU_FAMILY_AI 141 /* Vega10 */ #define AMDGPU_FAMILY_RV 142 /* Raven */ #define AMDGPU_FAMILY_NV 143 /* Navi10 */ -#define AMDGPU_FAMILY_VGH 144 /* Van Gogh */ #if defined(__cplusplus) } diff --git a/original/uapi/drm/drm.h b/original/uapi/drm/drm.h index 0827037..868bf79 100644 --- a/original/uapi/drm/drm.h +++ b/original/uapi/drm/drm.h @@ -1,10 +1,11 @@ -/* +/** + * \file drm.h * Header for the Direct Rendering Manager * - * Author: Rickard E. (Rik) Faith <faith@valinux.com> + * \author Rickard E. (Rik) Faith <faith@valinux.com> * - * Acknowledgments: - * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg. + * \par Acknowledgments: + * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic \c cmpxchg. */ /* @@ -84,7 +85,7 @@ typedef unsigned int drm_context_t; typedef unsigned int drm_drawable_t; typedef unsigned int drm_magic_t; -/* +/** * Cliprect. * * \warning: If you change this structure, make sure you change @@ -100,7 +101,7 @@ struct drm_clip_rect { unsigned short y2; }; -/* +/** * Drawable information. */ struct drm_drawable_info { @@ -108,7 +109,7 @@ struct drm_drawable_info { struct drm_clip_rect *rects; }; -/* +/** * Texture region, */ struct drm_tex_region { @@ -119,7 +120,7 @@ struct drm_tex_region { unsigned int age; }; -/* +/** * Hardware lock. * * The lock structure is a simple cache-line aligned integer. To avoid @@ -131,7 +132,7 @@ struct drm_hw_lock { char padding[60]; /**< Pad to cache line */ }; -/* +/** * DRM_IOCTL_VERSION ioctl argument type. * * \sa drmGetVersion(). @@ -148,7 +149,7 @@ struct drm_version { char __user *desc; /**< User-space buffer to hold desc */ }; -/* +/** * DRM_IOCTL_GET_UNIQUE ioctl argument type. * * \sa drmGetBusid() and drmSetBusId(). @@ -167,7 +168,7 @@ struct drm_block { int unused; }; -/* +/** * DRM_IOCTL_CONTROL ioctl argument type. * * \sa drmCtlInstHandler() and drmCtlUninstHandler(). @@ -182,7 +183,7 @@ struct drm_control { int irq; }; -/* +/** * Type of memory to map. */ enum drm_map_type { @@ -194,7 +195,7 @@ enum drm_map_type { _DRM_CONSISTENT = 5 /**< Consistent memory for PCI DMA */ }; -/* +/** * Memory mapping flags. */ enum drm_map_flags { @@ -213,7 +214,7 @@ struct drm_ctx_priv_map { void *handle; /**< Handle of map */ }; -/* +/** * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls * argument type. * @@ -230,7 +231,7 @@ struct drm_map { /* Private data */ }; -/* +/** * DRM_IOCTL_GET_CLIENT ioctl argument type. */ struct drm_client { @@ -262,7 +263,7 @@ enum drm_stat_type { /* Add to the *END* of the list */ }; -/* +/** * DRM_IOCTL_GET_STATS ioctl argument type. */ struct drm_stats { @@ -273,7 +274,7 @@ struct drm_stats { } data[15]; }; -/* +/** * Hardware locking flags. */ enum drm_lock_flags { @@ -288,7 +289,7 @@ enum drm_lock_flags { _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */ }; -/* +/** * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type. * * \sa drmGetLock() and drmUnlock(). @@ -298,7 +299,7 @@ struct drm_lock { enum drm_lock_flags flags; }; -/* +/** * DMA flags * * \warning @@ -327,7 +328,7 @@ enum drm_dma_flags { _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */ }; -/* +/** * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type. * * \sa drmAddBufs(). @@ -350,7 +351,7 @@ struct drm_buf_desc { */ }; -/* +/** * DRM_IOCTL_INFO_BUFS ioctl argument type. */ struct drm_buf_info { @@ -358,7 +359,7 @@ struct drm_buf_info { struct drm_buf_desc __user *list; }; -/* +/** * DRM_IOCTL_FREE_BUFS ioctl argument type. */ struct drm_buf_free { @@ -366,7 +367,7 @@ struct drm_buf_free { int __user *list; }; -/* +/** * Buffer information * * \sa drm_buf_map. @@ -378,7 +379,7 @@ struct drm_buf_pub { void __user *address; /**< Address of buffer */ }; -/* +/** * DRM_IOCTL_MAP_BUFS ioctl argument type. */ struct drm_buf_map { @@ -391,7 +392,7 @@ struct drm_buf_map { struct drm_buf_pub __user *list; /**< Buffer information */ }; -/* +/** * DRM_IOCTL_DMA ioctl argument type. * * Indices here refer to the offset into the buffer list in drm_buf_get. @@ -416,7 +417,7 @@ enum drm_ctx_flags { _DRM_CONTEXT_2DONLY = 0x02 }; -/* +/** * DRM_IOCTL_ADD_CTX ioctl argument type. * * \sa drmCreateContext() and drmDestroyContext(). @@ -426,7 +427,7 @@ struct drm_ctx { enum drm_ctx_flags flags; }; -/* +/** * DRM_IOCTL_RES_CTX ioctl argument type. */ struct drm_ctx_res { @@ -434,14 +435,14 @@ struct drm_ctx_res { struct drm_ctx __user *contexts; }; -/* +/** * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type. */ struct drm_draw { drm_drawable_t handle; }; -/* +/** * DRM_IOCTL_UPDATE_DRAW ioctl argument type. */ typedef enum { @@ -455,14 +456,14 @@ struct drm_update_draw { unsigned long long data; }; -/* +/** * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type. */ struct drm_auth { drm_magic_t magic; }; -/* +/** * DRM_IOCTL_IRQ_BUSID ioctl argument type. * * \sa drmGetInterruptFromBusID(). @@ -504,7 +505,7 @@ struct drm_wait_vblank_reply { long tval_usec; }; -/* +/** * DRM_IOCTL_WAIT_VBLANK ioctl argument type. * * \sa drmWaitVBlank(). @@ -517,7 +518,7 @@ union drm_wait_vblank { #define _DRM_PRE_MODESET 1 #define _DRM_POST_MODESET 2 -/* +/** * DRM_IOCTL_MODESET_CTL ioctl argument type * * \sa drmModesetCtl(). @@ -527,7 +528,7 @@ struct drm_modeset_ctl { __u32 cmd; }; -/* +/** * DRM_IOCTL_AGP_ENABLE ioctl argument type. * * \sa drmAgpEnable(). @@ -536,7 +537,7 @@ struct drm_agp_mode { unsigned long mode; /**< AGP mode */ }; -/* +/** * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type. * * \sa drmAgpAlloc() and drmAgpFree(). @@ -548,7 +549,7 @@ struct drm_agp_buffer { unsigned long physical; /**< Physical used by i810 */ }; -/* +/** * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type. * * \sa drmAgpBind() and drmAgpUnbind(). @@ -558,7 +559,7 @@ struct drm_agp_binding { unsigned long offset; /**< In bytes -- will round to page boundary */ }; -/* +/** * DRM_IOCTL_AGP_INFO ioctl argument type. * * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(), @@ -579,7 +580,7 @@ struct drm_agp_info { unsigned short id_device; }; -/* +/** * DRM_IOCTL_SG_ALLOC ioctl argument type. */ struct drm_scatter_gather { @@ -587,7 +588,7 @@ struct drm_scatter_gather { unsigned long handle; /**< Used for mapping / unmapping */ }; -/* +/** * DRM_IOCTL_SET_VERSION ioctl argument type. */ struct drm_set_version { @@ -597,14 +598,14 @@ struct drm_set_version { int drm_dd_minor; }; -/* DRM_IOCTL_GEM_CLOSE ioctl argument type */ +/** DRM_IOCTL_GEM_CLOSE ioctl argument type */ struct drm_gem_close { /** Handle of the object to be closed. */ __u32 handle; __u32 pad; }; -/* DRM_IOCTL_GEM_FLINK ioctl argument type */ +/** DRM_IOCTL_GEM_FLINK ioctl argument type */ struct drm_gem_flink { /** Handle for the object being named */ __u32 handle; @@ -613,7 +614,7 @@ struct drm_gem_flink { __u32 name; }; -/* DRM_IOCTL_GEM_OPEN ioctl argument type */ +/** DRM_IOCTL_GEM_OPEN ioctl argument type */ struct drm_gem_open { /** Name of object being opened */ __u32 name; @@ -651,7 +652,7 @@ struct drm_gem_open { #define DRM_CAP_SYNCOBJ 0x13 #define DRM_CAP_SYNCOBJ_TIMELINE 0x14 -/* DRM_IOCTL_GET_CAP ioctl argument type */ +/** DRM_IOCTL_GET_CAP ioctl argument type */ struct drm_get_cap { __u64 capability; __u64 value; @@ -677,9 +678,7 @@ struct drm_get_cap { /** * DRM_CLIENT_CAP_ATOMIC * - * If set to 1, the DRM core will expose atomic properties to userspace. This - * implicitly enables &DRM_CLIENT_CAP_UNIVERSAL_PLANES and - * &DRM_CLIENT_CAP_ASPECT_RATIO. + * If set to 1, the DRM core will expose atomic properties to userspace */ #define DRM_CLIENT_CAP_ATOMIC 3 @@ -699,7 +698,7 @@ struct drm_get_cap { */ #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5 -/* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ +/** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */ struct drm_set_client_cap { __u64 capability; __u64 value; @@ -949,9 +948,7 @@ extern "C" { #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_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2) - -/* +/** * Device specific ioctls should only be in their respective headers * The device specific ioctl range is from 0x40 to 0x9f. * Generic IOCTLS restart at 0xA0. @@ -962,7 +959,7 @@ extern "C" { #define DRM_COMMAND_BASE 0x40 #define DRM_COMMAND_END 0xA0 -/* +/** * Header for events written back to userspace on the drm fd. The * type defines the type of event, the length specifies the total * length of the event (including the header), and user_data is diff --git a/original/uapi/drm/drm_fourcc.h b/original/uapi/drm/drm_fourcc.h index f76de49..09b88b4 100644 --- a/original/uapi/drm/drm_fourcc.h +++ b/original/uapi/drm/drm_fourcc.h @@ -58,30 +58,6 @@ extern "C" { * may preserve meaning - such as number of planes - from the fourcc code, * whereas others may not. * - * Modifiers must uniquely encode buffer layout. In other words, a buffer must - * match only a single modifier. A modifier must not be a subset of layouts of - * another modifier. For instance, it's incorrect to encode pitch alignment in - * a modifier: a buffer may match a 64-pixel aligned modifier and a 32-pixel - * aligned modifier. That said, modifiers can have implicit minimal - * requirements. - * - * For modifiers where the combination of fourcc code and modifier can alias, - * a canonical pair needs to be defined and used by all drivers. Preferred - * combinations are also encouraged where all combinations might lead to - * confusion and unnecessarily reduced interoperability. An example for the - * latter is AFBC, where the ABGR layouts are preferred over ARGB layouts. - * - * There are two kinds of modifier users: - * - * - Kernel and user-space drivers: for drivers it's important that modifiers - * don't alias, otherwise two drivers might support the same format but use - * different aliases, preventing them from sharing buffers in an efficient - * format. - * - Higher-level programs interfacing with KMS/GBM/EGL/Vulkan/etc: these users - * see modifiers as opaque tokens they can check for equality and intersect. - * These users musn't need to know to reason about the modifier value - * (i.e. they are not expected to extract information out of the modifier). - * * Vendors should document their modifier usage in as much detail as * possible, to ensure maximum compatibility across devices, drivers and * applications. @@ -179,12 +155,6 @@ extern "C" { #define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') /* [63:0] A:R:G:B 16:16:16:16 little endian */ #define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */ -/* - * RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits - * of unused padding per component: - */ -#define DRM_FORMAT_AXBXGXRX106106106106 fourcc_code('A', 'B', '1', '0') /* [63:0] A:x:B:x:G:x:R:x 10:6:10:6:10:6:10:6 little endian */ - /* packed YCbCr */ #define DRM_FORMAT_YUYV fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */ #define DRM_FORMAT_YVYU fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */ @@ -266,12 +236,6 @@ extern "C" { #define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */ #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */ #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */ -/* - * 2 plane YCbCr - * index 0 = Y plane, [39:0] Y3:Y2:Y1:Y0 little endian - * index 1 = Cr:Cb plane, [39:0] Cr1:Cb1:Cr0:Cb0 little endian - */ -#define DRM_FORMAT_NV15 fourcc_code('N', 'V', '1', '5') /* 2x2 subsampled Cr:Cb plane */ /* * 2 plane YCbCr MSB aligned @@ -301,22 +265,6 @@ extern "C" { */ #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */ -/* 3 plane non-subsampled (444) YCbCr - * 16 bits per component, but only 10 bits are used and 6 bits are padded - * index 0: Y plane, [15:0] Y:x [10:6] little endian - * index 1: Cb plane, [15:0] Cb:x [10:6] little endian - * index 2: Cr plane, [15:0] Cr:x [10:6] little endian - */ -#define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0') - -/* 3 plane non-subsampled (444) YCrCb - * 16 bits per component, but only 10 bits are used and 6 bits are padded - * index 0: Y plane, [15:0] Y:x [10:6] little endian - * index 1: Cr plane, [15:0] Cr:x [10:6] little endian - * index 2: Cb plane, [15:0] Cb:x [10:6] little endian - */ -#define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1') - /* * 3 plane YCbCr * index 0: Y plane, [7:0] Y @@ -350,6 +298,7 @@ extern "C" { */ /* Vendor Ids: */ +#define DRM_FORMAT_MOD_NONE 0 #define DRM_FORMAT_MOD_VENDOR_NONE 0 #define DRM_FORMAT_MOD_VENDOR_INTEL 0x01 #define DRM_FORMAT_MOD_VENDOR_AMD 0x02 @@ -360,7 +309,6 @@ extern "C" { #define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07 #define DRM_FORMAT_MOD_VENDOR_ARM 0x08 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09 -#define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a /* add more to the end as needed */ @@ -375,33 +323,8 @@ extern "C" { * When adding a new token please document the layout with a code comment, * similar to the fourcc codes above. drm_fourcc.h is considered the * authoritative source for all of these. - * - * Generic modifier names: - * - * DRM_FORMAT_MOD_GENERIC_* definitions are used to provide vendor-neutral names - * for layouts which are common across multiple vendors. To preserve - * compatibility, in cases where a vendor-specific definition already exists and - * a generic name for it is desired, the common name is a purely symbolic alias - * and must use the same numerical value as the original definition. - * - * Note that generic names should only be used for modifiers which describe - * generic layouts (such as pixel re-ordering), which may have - * independently-developed support across multiple vendors. - * - * In future cases where a generic layout is identified before merging with a - * vendor-specific modifier, a new 'GENERIC' vendor or modifier using vendor - * 'NONE' could be considered. This should only be for obvious, exceptional - * cases to avoid polluting the 'GENERIC' namespace with modifiers which only - * apply to a single vendor. - * - * Generic names should not be used for cases where multiple hardware vendors - * have implementations of the same standardised compression scheme (such as - * AFBC). In those cases, all implementations should use the same format - * modifier(s), reflecting the vendor of the standard. */ -#define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE - /* * Invalid Modifier * @@ -421,16 +344,6 @@ extern "C" { */ #define DRM_FORMAT_MOD_LINEAR fourcc_mod_code(NONE, 0) -/* - * Deprecated: use DRM_FORMAT_MOD_LINEAR instead - * - * The "none" format modifier doesn't actually mean that the modifier is - * implicit, instead it means that the layout is linear. Whether modifiers are - * used is out-of-band information carried in an API-specific way (e.g. in a - * flag for drm_mode_fb_cmd2). - */ -#define DRM_FORMAT_MOD_NONE 0 - /* Intel framebuffer modifiers */ /* @@ -441,12 +354,9 @@ extern "C" { * a platform-dependent stride. On top of that the memory can apply * platform-depending swizzling of some higher address bits into bit6. * - * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets. - * On earlier platforms the is highly platforms specific and not useful for - * cross-driver sharing. It exists since on a given platform it does uniquely - * identify the layout in a simple way for i915-specific userspace, which - * facilitated conversion of userspace to modifiers. Additionally the exact - * format on some really old platforms is not known. + * This format is highly platforms specific and not useful for cross-driver + * sharing. It exists since on a given platform it does uniquely identify the + * layout in a simple way for i915-specific userspace. */ #define I915_FORMAT_MOD_X_TILED fourcc_mod_code(INTEL, 1) @@ -459,12 +369,9 @@ extern "C" { * memory can apply platform-depending swizzling of some higher address bits * into bit6. * - * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets. - * On earlier platforms the is highly platforms specific and not useful for - * cross-driver sharing. It exists since on a given platform it does uniquely - * identify the layout in a simple way for i915-specific userspace, which - * facilitated conversion of userspace to modifiers. Additionally the exact - * format on some really old platforms is not known. + * This format is highly platforms specific and not useful for cross-driver + * sharing. It exists since on a given platform it does uniquely identify the + * layout in a simple way for i915-specific userspace. */ #define I915_FORMAT_MOD_Y_TILED fourcc_mod_code(INTEL, 2) @@ -504,49 +411,6 @@ extern "C" { #define I915_FORMAT_MOD_Yf_TILED_CCS fourcc_mod_code(INTEL, 5) /* - * Intel color control surfaces (CCS) for Gen-12 render compression. - * - * The main surface is Y-tiled and at plane index 0, the CCS is linear and - * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in - * main surface. In other words, 4 bits in CCS map to a main surface cache - * line pair. The main surface pitch is required to be a multiple of four - * Y-tile widths. - */ -#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS fourcc_mod_code(INTEL, 6) - -/* - * Intel color control surfaces (CCS) for Gen-12 media compression - * - * The main surface is Y-tiled and at plane index 0, the CCS is linear and - * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in - * main surface. In other words, 4 bits in CCS map to a main surface cache - * line pair. The main surface pitch is required to be a multiple of four - * Y-tile widths. For semi-planar formats like NV12, CCS planes follow the - * Y and UV planes i.e., planes 0 and 1 are used for Y and UV surfaces, - * planes 2 and 3 for the respective CCS. - */ -#define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7) - -/* - * Intel Color Control Surface with Clear Color (CCS) for Gen-12 render - * compression. - * - * The main surface is Y-tiled and is at plane index 0 whereas CCS is linear - * and at index 1. The clear color is stored at index 2, and the pitch should - * be ignored. The clear color structure is 256 bits. The first 128 bits - * represents Raw Clear Color Red, Green, Blue and Alpha color each represented - * by 32 bits. The raw clear color is consumed by the 3d engine and generates - * the converted clear color of size 64 bits. The first 32 bits store the Lower - * Converted Clear Color value and the next 32 bits store the Higher Converted - * Clear Color value when applicable. The Converted Clear Color values are - * consumed by the DE. The last 64 bits are used to store Color Discard Enable - * and Depth Clear Value Valid which are ignored by the DE. A CCS cache line - * corresponds to an area of 4x1 tiles in the main surface. The main surface - * pitch is required to be a multiple of 4 tile widths. - */ -#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8) - -/* * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks * * Macroblocks are laid in a Z-shape, and each pixel data is following the @@ -583,6 +447,30 @@ extern "C" { */ #define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1) +/* + * QTI DX Format + * + * Refers to a DX variant of the base format. + * Implementation may be platform and base-format specific. + */ +#define DRM_FORMAT_MOD_QCOM_DX fourcc_mod_code(QCOM, 0x2) + +/* + * QTI Tight Format + * + * Refers to a tightly packed variant of the base format. + * Implementation may be platform and base-format specific. + */ +#define DRM_FORMAT_MOD_QCOM_TIGHT fourcc_mod_code(QCOM, 0x4) + +/* + * QTI Tile Format + * + * Refers to a tile variant of the base format. + * Implementation may be platform and base-format specific. + */ +#define DRM_FORMAT_MOD_QCOM_TILE fourcc_mod_code(QCOM, 0x8) + /* Vivante framebuffer modifiers */ /* @@ -633,113 +521,7 @@ extern "C" { #define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1) /* - * Generalized Block Linear layout, used by desktop GPUs starting with NV50/G80, - * and Tegra GPUs starting with Tegra K1. - * - * Pixels are arranged in Groups of Bytes (GOBs). GOB size and layout varies - * based on the architecture generation. GOBs themselves are then arranged in - * 3D blocks, with the block dimensions (in terms of GOBs) always being a power - * of two, and hence expressible as their log2 equivalent (E.g., "2" represents - * a block depth or height of "4"). - * - * Chapter 20 "Pixel Memory Formats" of the Tegra X1 TRM describes this format - * in full detail. - * - * Macro - * Bits Param Description - * ---- ----- ----------------------------------------------------------------- - * - * 3:0 h log2(height) of each block, in GOBs. Placed here for - * compatibility with the existing - * DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers. - * - * 4:4 - Must be 1, to indicate block-linear layout. Necessary for - * compatibility with the existing - * DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers. - * - * 8:5 - Reserved (To support 3D-surfaces with variable log2(depth) block - * size). Must be zero. - * - * Note there is no log2(width) parameter. Some portions of the - * hardware support a block width of two gobs, but it is impractical - * to use due to lack of support elsewhere, and has no known - * benefits. - * - * 11:9 - Reserved (To support 2D-array textures with variable array stride - * in blocks, specified via log2(tile width in blocks)). Must be - * zero. - * - * 19:12 k Page Kind. This value directly maps to a field in the page - * tables of all GPUs >= NV50. It affects the exact layout of bits - * in memory and can be derived from the tuple - * - * (format, GPU model, compression type, samples per pixel) - * - * Where compression type is defined below. If GPU model were - * implied by the format modifier, format, or memory buffer, page - * kind would not need to be included in the modifier itself, but - * since the modifier should define the layout of the associated - * memory buffer independent from any device or other context, it - * must be included here. - * - * 21:20 g GOB Height and Page Kind Generation. The height of a GOB changed - * starting with Fermi GPUs. Additionally, the mapping between page - * kind and bit layout has changed at various points. - * - * 0 = Gob Height 8, Fermi - Volta, Tegra K1+ Page Kind mapping - * 1 = Gob Height 4, G80 - GT2XX Page Kind mapping - * 2 = Gob Height 8, Turing+ Page Kind mapping - * 3 = Reserved for future use. - * - * 22:22 s Sector layout. On Tegra GPUs prior to Xavier, there is a further - * bit remapping step that occurs at an even lower level than the - * page kind and block linear swizzles. This causes the layout of - * surfaces mapped in those SOC's GPUs to be incompatible with the - * equivalent mapping on other GPUs in the same system. - * - * 0 = Tegra K1 - Tegra Parker/TX2 Layout. - * 1 = Desktop GPU and Tegra Xavier+ Layout - * - * 25:23 c Lossless Framebuffer Compression type. - * - * 0 = none - * 1 = ROP/3D, layout 1, exact compression format implied by Page - * Kind field - * 2 = ROP/3D, layout 2, exact compression format implied by Page - * Kind field - * 3 = CDE horizontal - * 4 = CDE vertical - * 5 = Reserved for future use - * 6 = Reserved for future use - * 7 = Reserved for future use - * - * 55:25 - Reserved for future use. Must be zero. - */ -#define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c, s, g, k, h) \ - fourcc_mod_code(NVIDIA, (0x10 | \ - ((h) & 0xf) | \ - (((k) & 0xff) << 12) | \ - (((g) & 0x3) << 20) | \ - (((s) & 0x1) << 22) | \ - (((c) & 0x7) << 23))) - -/* To grandfather in prior block linear format modifiers to the above layout, - * the page kind "0", which corresponds to "pitch/linear" and hence is unusable - * with block-linear layouts, is remapped within drivers to the value 0xfe, - * which corresponds to the "generic" kind used for simple single-sample - * uncompressed color formats on Fermi - Volta GPUs. - */ -static inline __u64 -drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) -{ - if (!(modifier & 0x10) || (modifier & (0xff << 12))) - return modifier; - else - return modifier | (0xfe << 12); -} - -/* - * 16Bx2 Block Linear layout, used by Tegra K1 and later + * 16Bx2 Block Linear layout, used by desktop GPUs, and Tegra K1 and later * * Pixels are arranged in 64x8 Groups Of Bytes (GOBs). GOBs are then stacked * vertically by a power of 2 (1 to 32 GOBs) to form a block. @@ -760,20 +542,20 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) * in full detail. */ #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) \ - DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 0, 0, 0, (v)) + fourcc_mod_code(NVIDIA, 0x10 | ((v) & 0xf)) #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_ONE_GOB \ - DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(0) + fourcc_mod_code(NVIDIA, 0x10) #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_TWO_GOB \ - DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(1) + fourcc_mod_code(NVIDIA, 0x11) #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_FOUR_GOB \ - DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(2) + fourcc_mod_code(NVIDIA, 0x12) #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_EIGHT_GOB \ - DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(3) + fourcc_mod_code(NVIDIA, 0x13) #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_SIXTEEN_GOB \ - DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(4) + fourcc_mod_code(NVIDIA, 0x14) #define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \ - DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(5) + fourcc_mod_code(NVIDIA, 0x15) /* * Some Broadcom modifiers take parameters, for example the number of @@ -998,18 +780,6 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) */ #define AFBC_FORMAT_MOD_BCH (1ULL << 11) -/* AFBC uncompressed storage mode - * - * Indicates that the buffer is using AFBC uncompressed storage mode. - * In this mode all superblock payloads in the buffer use the uncompressed - * storage mode, which is usually only used for data which cannot be compressed. - * The buffer layout is the same as for AFBC buffers without USM set, this only - * affects the storage mode of the individual superblocks. Note that even a - * buffer without USM set may use uncompressed storage mode for some or all - * superblocks, USM just guarantees it for all. - */ -#define AFBC_FORMAT_MOD_USM (1ULL << 12) - /* * Arm 16x16 Block U-Interleaved modifier * @@ -1034,220 +804,6 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) */ #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1) -/* - * Amlogic Video Framebuffer Compression modifiers - * - * Amlogic uses a proprietary lossless image compression protocol and format - * for their hardware video codec accelerators, either video decoders or - * video input encoders. - * - * It considerably reduces memory bandwidth while writing and reading - * frames in memory. - * - * The underlying storage is considered to be 3 components, 8bit or 10-bit - * per component YCbCr 420, single plane : - * - DRM_FORMAT_YUV420_8BIT - * - DRM_FORMAT_YUV420_10BIT - * - * The first 8 bits of the mode defines the layout, then the following 8 bits - * defines the options changing the layout. - * - * Not all combinations are valid, and different SoCs may support different - * combinations of layout and options. - */ -#define __fourcc_mod_amlogic_layout_mask 0xff -#define __fourcc_mod_amlogic_options_shift 8 -#define __fourcc_mod_amlogic_options_mask 0xff - -#define DRM_FORMAT_MOD_AMLOGIC_FBC(__layout, __options) \ - fourcc_mod_code(AMLOGIC, \ - ((__layout) & __fourcc_mod_amlogic_layout_mask) | \ - (((__options) & __fourcc_mod_amlogic_options_mask) \ - << __fourcc_mod_amlogic_options_shift)) - -/* Amlogic FBC Layouts */ - -/* - * Amlogic FBC Basic Layout - * - * The basic layout is composed of: - * - a body content organized in 64x32 superblocks with 4096 bytes per - * superblock in default mode. - * - a 32 bytes per 128x64 header block - * - * This layout is transferrable between Amlogic SoCs supporting this modifier. - */ -#define AMLOGIC_FBC_LAYOUT_BASIC (1ULL) - -/* - * Amlogic FBC Scatter Memory layout - * - * Indicates the header contains IOMMU references to the compressed - * frames content to optimize memory access and layout. - * - * In this mode, only the header memory address is needed, thus the - * content memory organization is tied to the current producer - * execution and cannot be saved/dumped neither transferrable between - * Amlogic SoCs supporting this modifier. - * - * Due to the nature of the layout, these buffers are not expected to - * be accessible by the user-space clients, but only accessible by the - * hardware producers and consumers. - * - * The user-space clients should expect a failure while trying to mmap - * the DMA-BUF handle returned by the producer. - */ -#define AMLOGIC_FBC_LAYOUT_SCATTER (2ULL) - -/* Amlogic FBC Layout Options Bit Mask */ - -/* - * Amlogic FBC Memory Saving mode - * - * Indicates the storage is packed when pixel size is multiple of word - * boudaries, i.e. 8bit should be stored in this mode to save allocation - * memory. - * - * This mode reduces body layout to 3072 bytes per 64x32 superblock with - * the basic layout and 3200 bytes per 64x32 superblock combined with - * the scatter layout. - */ -#define AMLOGIC_FBC_OPTION_MEM_SAVING (1ULL << 0) - -/* - * AMD modifiers - * - * Memory layout: - * - * without DCC: - * - main surface - * - * with DCC & without DCC_RETILE: - * - main surface in plane 0 - * - DCC surface in plane 1 (RB-aligned, pipe-aligned if DCC_PIPE_ALIGN is set) - * - * with DCC & DCC_RETILE: - * - main surface in plane 0 - * - displayable DCC surface in plane 1 (not RB-aligned & not pipe-aligned) - * - pipe-aligned DCC surface in plane 2 (RB-aligned & pipe-aligned) - * - * For multi-plane formats the above surfaces get merged into one plane for - * each format plane, based on the required alignment only. - * - * Bits Parameter Notes - * ----- ------------------------ --------------------------------------------- - * - * 7:0 TILE_VERSION Values are AMD_FMT_MOD_TILE_VER_* - * 12:8 TILE Values are AMD_FMT_MOD_TILE_<version>_* - * 13 DCC - * 14 DCC_RETILE - * 15 DCC_PIPE_ALIGN - * 16 DCC_INDEPENDENT_64B - * 17 DCC_INDEPENDENT_128B - * 19:18 DCC_MAX_COMPRESSED_BLOCK Values are AMD_FMT_MOD_DCC_BLOCK_* - * 20 DCC_CONSTANT_ENCODE - * 23:21 PIPE_XOR_BITS Only for some chips - * 26:24 BANK_XOR_BITS Only for some chips - * 29:27 PACKERS Only for some chips - * 32:30 RB Only for some chips - * 35:33 PIPE Only for some chips - * 55:36 - Reserved for future use, must be zero - */ -#define AMD_FMT_MOD fourcc_mod_code(AMD, 0) - -#define IS_AMD_FMT_MOD(val) (((val) >> 56) == DRM_FORMAT_MOD_VENDOR_AMD) - -/* Reserve 0 for GFX8 and older */ -#define AMD_FMT_MOD_TILE_VER_GFX9 1 -#define AMD_FMT_MOD_TILE_VER_GFX10 2 -#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3 - -/* - * 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical - * version. - */ -#define AMD_FMT_MOD_TILE_GFX9_64K_S 9 - -/* - * 64K_D for non-32 bpp is the same for GFX9/GFX10/GFX10_RBPLUS and hence has - * GFX9 as canonical version. - */ -#define AMD_FMT_MOD_TILE_GFX9_64K_D 10 -#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25 -#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26 -#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27 - -#define AMD_FMT_MOD_DCC_BLOCK_64B 0 -#define AMD_FMT_MOD_DCC_BLOCK_128B 1 -#define AMD_FMT_MOD_DCC_BLOCK_256B 2 - -#define AMD_FMT_MOD_TILE_VERSION_SHIFT 0 -#define AMD_FMT_MOD_TILE_VERSION_MASK 0xFF -#define AMD_FMT_MOD_TILE_SHIFT 8 -#define AMD_FMT_MOD_TILE_MASK 0x1F - -/* Whether DCC compression is enabled. */ -#define AMD_FMT_MOD_DCC_SHIFT 13 -#define AMD_FMT_MOD_DCC_MASK 0x1 - -/* - * Whether to include two DCC surfaces, one which is rb & pipe aligned, and - * one which is not-aligned. - */ -#define AMD_FMT_MOD_DCC_RETILE_SHIFT 14 -#define AMD_FMT_MOD_DCC_RETILE_MASK 0x1 - -/* Only set if DCC_RETILE = false */ -#define AMD_FMT_MOD_DCC_PIPE_ALIGN_SHIFT 15 -#define AMD_FMT_MOD_DCC_PIPE_ALIGN_MASK 0x1 - -#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_SHIFT 16 -#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_MASK 0x1 -#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_SHIFT 17 -#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_MASK 0x1 -#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_SHIFT 18 -#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_MASK 0x3 - -/* - * DCC supports embedding some clear colors directly in the DCC surface. - * However, on older GPUs the rendering HW ignores the embedded clear color - * and prefers the driver provided color. This necessitates doing a fastclear - * eliminate operation before a process transfers control. - * - * If this bit is set that means the fastclear eliminate is not needed for these - * embeddable colors. - */ -#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_SHIFT 20 -#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_MASK 0x1 - -/* - * The below fields are for accounting for per GPU differences. These are only - * relevant for GFX9 and later and if the tile field is *_X/_T. - * - * PIPE_XOR_BITS = always needed - * BANK_XOR_BITS = only for TILE_VER_GFX9 - * PACKERS = only for TILE_VER_GFX10_RBPLUS - * RB = only for TILE_VER_GFX9 & DCC - * PIPE = only for TILE_VER_GFX9 & DCC & (DCC_RETILE | DCC_PIPE_ALIGN) - */ -#define AMD_FMT_MOD_PIPE_XOR_BITS_SHIFT 21 -#define AMD_FMT_MOD_PIPE_XOR_BITS_MASK 0x7 -#define AMD_FMT_MOD_BANK_XOR_BITS_SHIFT 24 -#define AMD_FMT_MOD_BANK_XOR_BITS_MASK 0x7 -#define AMD_FMT_MOD_PACKERS_SHIFT 27 -#define AMD_FMT_MOD_PACKERS_MASK 0x7 -#define AMD_FMT_MOD_RB_SHIFT 30 -#define AMD_FMT_MOD_RB_MASK 0x7 -#define AMD_FMT_MOD_PIPE_SHIFT 33 -#define AMD_FMT_MOD_PIPE_MASK 0x7 - -#define AMD_FMT_MOD_SET(field, value) \ - ((uint64_t)(value) << AMD_FMT_MOD_##field##_SHIFT) -#define AMD_FMT_MOD_GET(field, value) \ - (((value) >> AMD_FMT_MOD_##field##_SHIFT) & AMD_FMT_MOD_##field##_MASK) -#define AMD_FMT_MOD_CLEAR(field) \ - (~((uint64_t)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT)) - #if defined(__cplusplus) } #endif diff --git a/original/uapi/drm/drm_mode.h b/original/uapi/drm/drm_mode.h index 1c06462..7043c57 100644 --- a/original/uapi/drm/drm_mode.h +++ b/original/uapi/drm/drm_mode.h @@ -41,7 +41,6 @@ extern "C" { * Userspace can refer to these structure definitions and UAPI formats * to communicate to driver */ - #define DRM_CONNECTOR_NAME_LEN 32 #define DRM_DISPLAY_MODE_LEN 32 #define DRM_PROP_NAME_LEN 32 @@ -124,6 +123,13 @@ extern "C" { #define DRM_MODE_FLAG_PIC_AR_256_135 \ (DRM_MODE_PICTURE_ASPECT_256_135<<19) +#define DRM_MODE_FLAG_SUPPORTS_RGB (1<<27) + +#define DRM_MODE_FLAG_SUPPORTS_YUV (1<<28) +#define DRM_MODE_FLAG_VID_MODE_PANEL (1<<29) +#define DRM_MODE_FLAG_CMD_MODE_PANEL (1<<30) +#define DRM_MODE_FLAG_SEAMLESS (1<<31) + #define DRM_MODE_FLAG_ALL (DRM_MODE_FLAG_PHSYNC | \ DRM_MODE_FLAG_NHSYNC | \ DRM_MODE_FLAG_PVSYNC | \ @@ -136,6 +142,10 @@ extern "C" { DRM_MODE_FLAG_HSKEW | \ DRM_MODE_FLAG_DBLCLK | \ DRM_MODE_FLAG_CLKDIV2 | \ + DRM_MODE_FLAG_SUPPORTS_RGB | \ + DRM_MODE_FLAG_SUPPORTS_YUV | \ + DRM_MODE_FLAG_VID_MODE_PANEL | \ + DRM_MODE_FLAG_CMD_MODE_PANEL | \ DRM_MODE_FLAG_3D_MASK) /* DPMS flags */ @@ -218,27 +228,6 @@ extern "C" { #define DRM_MODE_CONTENT_PROTECTION_DESIRED 1 #define DRM_MODE_CONTENT_PROTECTION_ENABLED 2 -/** - * struct drm_mode_modeinfo - Display mode information. - * @clock: pixel clock in kHz - * @hdisplay: horizontal display size - * @hsync_start: horizontal sync start - * @hsync_end: horizontal sync end - * @htotal: horizontal total size - * @hskew: horizontal skew - * @vdisplay: vertical display size - * @vsync_start: vertical sync start - * @vsync_end: vertical sync end - * @vtotal: vertical total size - * @vscan: vertical scan - * @vrefresh: approximate vertical refresh rate in Hz - * @flags: bitmask of misc. flags, see DRM_MODE_FLAG_* defines - * @type: bitmask of type flags, see DRM_MODE_TYPE_* defines - * @name: string describing the mode resolution - * - * This is the user-space API display mode information structure. For the - * kernel version see struct drm_display_mode. - */ struct drm_mode_modeinfo { __u32 clock; __u16 hdisplay; @@ -353,19 +342,14 @@ struct drm_mode_get_encoder { /* This is for connectors with multiple signal types. */ /* Try to match DRM_MODE_CONNECTOR_X as closely as possible. */ enum drm_mode_subconnector { - DRM_MODE_SUBCONNECTOR_Automatic = 0, /* DVI-I, TV */ - DRM_MODE_SUBCONNECTOR_Unknown = 0, /* DVI-I, TV, DP */ - DRM_MODE_SUBCONNECTOR_VGA = 1, /* DP */ - DRM_MODE_SUBCONNECTOR_DVID = 3, /* DVI-I DP */ - DRM_MODE_SUBCONNECTOR_DVIA = 4, /* DVI-I */ - DRM_MODE_SUBCONNECTOR_Composite = 5, /* TV */ - DRM_MODE_SUBCONNECTOR_SVIDEO = 6, /* TV */ - DRM_MODE_SUBCONNECTOR_Component = 8, /* TV */ - DRM_MODE_SUBCONNECTOR_SCART = 9, /* TV */ - DRM_MODE_SUBCONNECTOR_DisplayPort = 10, /* DP */ - DRM_MODE_SUBCONNECTOR_HDMIA = 11, /* DP */ - DRM_MODE_SUBCONNECTOR_Native = 15, /* DP */ - DRM_MODE_SUBCONNECTOR_Wireless = 18, /* DP */ + DRM_MODE_SUBCONNECTOR_Automatic = 0, + DRM_MODE_SUBCONNECTOR_Unknown = 0, + DRM_MODE_SUBCONNECTOR_DVID = 3, + DRM_MODE_SUBCONNECTOR_DVIA = 4, + DRM_MODE_SUBCONNECTOR_Composite = 5, + DRM_MODE_SUBCONNECTOR_SVIDEO = 6, + DRM_MODE_SUBCONNECTOR_Component = 8, + DRM_MODE_SUBCONNECTOR_SCART = 9, }; #define DRM_MODE_CONNECTOR_Unknown 0 @@ -389,92 +373,27 @@ enum drm_mode_subconnector { #define DRM_MODE_CONNECTOR_WRITEBACK 18 #define DRM_MODE_CONNECTOR_SPI 19 -/** - * struct drm_mode_get_connector - Get connector metadata. - * - * User-space can perform a GETCONNECTOR ioctl to retrieve information about a - * connector. User-space is expected to retrieve encoders, modes and properties - * by performing this ioctl at least twice: the first time to retrieve the - * number of elements, the second time to retrieve the elements themselves. - * - * To retrieve the number of elements, set @count_props and @count_encoders to - * zero, set @count_modes to 1, and set @modes_ptr to a temporary struct - * drm_mode_modeinfo element. - * - * To retrieve the elements, allocate arrays for @encoders_ptr, @modes_ptr, - * @props_ptr and @prop_values_ptr, then set @count_modes, @count_props and - * @count_encoders to their capacity. - * - * Performing the ioctl only twice may be racy: the number of elements may have - * changed with a hotplug event in-between the two ioctls. User-space is - * expected to retry the last ioctl until the number of elements stabilizes. - * The kernel won't fill any array which doesn't have the expected length. - * - * **Force-probing a connector** - * - * If the @count_modes field is set to zero, the kernel will perform a forced - * probe on the connector to refresh the connector status, modes and EDID. - * A forced-probe can be slow, might cause flickering and the ioctl will block. - * - * User-space needs to force-probe connectors to ensure their metadata is - * up-to-date at startup and after receiving a hot-plug event. User-space - * may perform a forced-probe when the user explicitly requests it. User-space - * shouldn't perform a forced-probe in other situations. - */ struct drm_mode_get_connector { - /** @encoders_ptr: Pointer to ``__u32`` array of object IDs. */ + __u64 encoders_ptr; - /** @modes_ptr: Pointer to struct drm_mode_modeinfo array. */ __u64 modes_ptr; - /** @props_ptr: Pointer to ``__u32`` array of property IDs. */ __u64 props_ptr; - /** @prop_values_ptr: Pointer to ``__u64`` array of property values. */ __u64 prop_values_ptr; - /** @count_modes: Number of modes. */ __u32 count_modes; - /** @count_props: Number of properties. */ __u32 count_props; - /** @count_encoders: Number of encoders. */ __u32 count_encoders; - /** @encoder_id: Object ID of the current encoder. */ - __u32 encoder_id; - /** @connector_id: Object ID of the connector. */ - __u32 connector_id; - /** - * @connector_type: Type of the connector. - * - * See DRM_MODE_CONNECTOR_* defines. - */ + __u32 encoder_id; /**< Current Encoder */ + __u32 connector_id; /**< Id */ __u32 connector_type; - /** - * @connector_type_id: Type-specific connector number. - * - * This is not an object ID. This is a per-type connector number. Each - * (type, type_id) combination is unique across all connectors of a DRM - * device. - */ __u32 connector_type_id; - /** - * @connection: Status of the connector. - * - * See enum drm_connector_status. - */ __u32 connection; - /** @mm_width: Width of the connected sink in millimeters. */ - __u32 mm_width; - /** @mm_height: Height of the connected sink in millimeters. */ - __u32 mm_height; - /** - * @subpixel: Subpixel order of the connected sink. - * - * See enum subpixel_order. - */ + __u32 mm_width; /**< width in millimeters */ + __u32 mm_height; /**< height in millimeters */ __u32 subpixel; - /** @pad: Padding, must be zero. */ __u32 pad; }; @@ -576,6 +495,7 @@ struct drm_mode_fb_cmd { #define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */ #define DRM_MODE_FB_MODIFIERS (1<<1) /* enables ->modifer[] */ +#define DRM_MODE_FB_SECURE (1<<2) /* for secure framebuffers */ struct drm_mode_fb_cmd2 { __u32 fb_id; @@ -588,7 +508,7 @@ struct drm_mode_fb_cmd2 { * In case of planar formats, this ioctl allows up to 4 * buffer objects with offsets and pitches per plane. * The pitch and offset order is dictated by the fourcc, - * e.g. NV12 (https://fourcc.org/yuv.php#NV12) is described as: + * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as: * * YUV 4:2:0 image with a plane of 8 bit Y samples * followed by an interleaved U/V plane containing @@ -991,30 +911,25 @@ struct drm_format_modifier { /** * struct drm_mode_create_blob - Create New block property - * + * @data: Pointer to data to copy. + * @length: Length of data to copy. + * @blob_id: new property ID. * Create a new 'blob' data property, copying length bytes from data pointer, * and returning new blob ID. */ struct drm_mode_create_blob { - /** @data: Pointer to data to copy. */ + /** Pointer to data to copy. */ __u64 data; - /** @length: Length of data to copy. */ + /** Length of data to copy. */ __u32 length; - /** @blob_id: Return: new property ID. */ + /** Return: new property ID. */ __u32 blob_id; }; /** * struct drm_mode_destroy_blob - Destroy user blob * @blob_id: blob_id to destroy - * * Destroy a user-created blob property. - * - * User-space can release blobs as soon as they do not need to refer to them by - * their blob object ID. For instance, if you are using a MODE_ID blob in an - * atomic commit and you will not make another commit re-using the same ID, you - * can destroy the blob as soon as the commit has been issued, without waiting - * for it to complete. */ struct drm_mode_destroy_blob { __u32 blob_id; @@ -1022,32 +937,36 @@ struct drm_mode_destroy_blob { /** * struct drm_mode_create_lease - Create lease - * + * @object_ids: Pointer to array of object ids. + * @object_count: Number of object ids. + * @flags: flags for new FD. + * @lessee_id: unique identifier for lessee. + * @fd: file descriptor to new drm_master file. * Lease mode resources, creating another drm_master. */ struct drm_mode_create_lease { - /** @object_ids: Pointer to array of object ids (__u32) */ + /** Pointer to array of object ids (__u32) */ __u64 object_ids; - /** @object_count: Number of object ids */ + /** Number of object ids */ __u32 object_count; - /** @flags: flags for new FD (O_CLOEXEC, etc) */ + /** flags for new FD (O_CLOEXEC, etc) */ __u32 flags; - /** @lessee_id: Return: unique identifier for lessee. */ + /** Return: unique identifier for lessee. */ __u32 lessee_id; - /** @fd: Return: file descriptor to new drm_master file */ + /** Return: file descriptor to new drm_master file */ __u32 fd; }; /** * struct drm_mode_list_lessees - List lessees - * - * List lesses from a drm_master. + * @count_lessees: Number of lessees. + * @pad: pad. + * @lessees_ptr: Pointer to lessess. + * List lesses from a drm_master */ struct drm_mode_list_lessees { - /** - * @count_lessees: Number of lessees. - * + /** Number of lessees. * On input, provides length of the array. * On output, provides total number. No * more than the input number will be written @@ -1055,26 +974,23 @@ struct drm_mode_list_lessees { * the size and then the data. */ __u32 count_lessees; - /** @pad: Padding. */ __u32 pad; - /** - * @lessees_ptr: Pointer to lessees. - * - * Pointer to __u64 array of lessee ids + /** Pointer to lessees. + * pointer to __u64 array of lessee ids */ __u64 lessees_ptr; }; /** * struct drm_mode_get_lease - Get Lease - * - * Get leased objects. + * @count_objects: Number of leased objects. + * @pad: pad. + * @objects_ptr: Pointer to objects. + * Get leased objects */ struct drm_mode_get_lease { - /** - * @count_objects: Number of leased objects. - * + /** Number of leased objects. * On input, provides length of the array. * On output, provides total number. No * more than the input number will be written @@ -1082,22 +998,22 @@ struct drm_mode_get_lease { * the size and then the data. */ __u32 count_objects; - /** @pad: Padding. */ __u32 pad; - /** - * @objects_ptr: Pointer to objects. - * - * Pointer to __u32 array of object ids. + /** Pointer to objects. + * pointer to __u32 array of object ids */ __u64 objects_ptr; }; /** * struct drm_mode_revoke_lease - Revoke lease + * @lessee_id: Unique ID of lessee. + * Revoke lease */ struct drm_mode_revoke_lease { - /** @lessee_id: Unique ID of lessee */ + /** Unique ID of lessee + */ __u32 lessee_id; }; diff --git a/original/uapi/drm/exynos_drm.h b/original/uapi/drm/exynos_drm.h index a51aa1c..45c6582 100644 --- a/original/uapi/drm/exynos_drm.h +++ b/original/uapi/drm/exynos_drm.h @@ -394,7 +394,7 @@ struct drm_exynos_ioctl_ipp_commit { #define DRM_IOCTL_EXYNOS_IPP_COMMIT DRM_IOWR(DRM_COMMAND_BASE + \ DRM_EXYNOS_IPP_COMMIT, struct drm_exynos_ioctl_ipp_commit) -/* Exynos specific events */ +/* EXYNOS specific events */ #define DRM_EXYNOS_G2D_EVENT 0x80000000 #define DRM_EXYNOS_IPP_EVENT 0x80000002 diff --git a/original/uapi/drm/i915_drm.h b/original/uapi/drm/i915_drm.h index 1987e2e..5400d7e 100644 --- a/original/uapi/drm/i915_drm.h +++ b/original/uapi/drm/i915_drm.h @@ -55,7 +55,7 @@ extern "C" { * cause the related events to not be seen. * * I915_RESET_UEVENT - Event is generated just before an attempt to reset the - * GPU. The value supplied with the event is always 1. NOTE: Disable + * the GPU. The value supplied with the event is always 1. NOTE: Disable * reset via module parameter will cause this event to not be seen. */ #define I915_L3_PARITY_UEVENT "L3_PARITY_ERROR" @@ -177,9 +177,8 @@ enum drm_i915_pmu_engine_sample { #define I915_PMU_REQUESTED_FREQUENCY __I915_PMU_OTHER(1) #define I915_PMU_INTERRUPTS __I915_PMU_OTHER(2) #define I915_PMU_RC6_RESIDENCY __I915_PMU_OTHER(3) -#define I915_PMU_SOFTWARE_GT_AWAKE_TIME __I915_PMU_OTHER(4) -#define I915_PMU_LAST /* Deprecated - do not use */ I915_PMU_RC6_RESIDENCY +#define I915_PMU_LAST I915_PMU_RC6_RESIDENCY /* Each region is a minimum of 16k, and there are at most 255 of them. */ @@ -396,7 +395,6 @@ typedef struct _drm_i915_sarea { #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite) #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap) #define DRM_IOCTL_I915_GEM_MMAP_GTT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt) -#define DRM_IOCTL_I915_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_offset) #define DRM_IOCTL_I915_GEM_SET_DOMAIN DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain) #define DRM_IOCTL_I915_GEM_SW_FINISH DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish) #define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling) @@ -620,12 +618,6 @@ typedef struct drm_i915_irq_wait { */ #define I915_PARAM_PERF_REVISION 54 -/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of - * timeline syncobj through drm_i915_gem_execbuffer_ext_timeline_fences. See - * I915_EXEC_USE_EXTENSIONS. - */ -#define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55 - /* Must be kept compact -- no holes and well documented */ typedef struct drm_i915_getparam { @@ -801,37 +793,6 @@ struct drm_i915_gem_mmap_gtt { __u64 offset; }; -struct drm_i915_gem_mmap_offset { - /** Handle for the object being mapped. */ - __u32 handle; - __u32 pad; - /** - * Fake offset to use for subsequent mmap call - * - * This is a fixed-size type for 32/64 compatibility. - */ - __u64 offset; - - /** - * Flags for extended behaviour. - * - * It is mandatory that one of the MMAP_OFFSET types - * (GTT, WC, WB, UC, etc) should be included. - */ - __u64 flags; -#define I915_MMAP_OFFSET_GTT 0 -#define I915_MMAP_OFFSET_WC 1 -#define I915_MMAP_OFFSET_WB 2 -#define I915_MMAP_OFFSET_UC 3 - - /* - * Zero-terminated chain of extensions. - * - * No current extensions defined; mbz. - */ - __u64 extensions; -}; - struct drm_i915_gem_set_domain { /** Handle for the object */ __u32 handle; @@ -1053,38 +1014,6 @@ struct drm_i915_gem_exec_fence { __u32 flags; }; -/** - * See drm_i915_gem_execbuffer_ext_timeline_fences. - */ -#define DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES 0 - -/** - * This structure describes an array of drm_syncobj and associated points for - * timeline variants of drm_syncobj. It is invalid to append this structure to - * the execbuf if I915_EXEC_FENCE_ARRAY is set. - */ -struct drm_i915_gem_execbuffer_ext_timeline_fences { - struct i915_user_extension base; - - /** - * Number of element in the handles_ptr & value_ptr arrays. - */ - __u64 fence_count; - - /** - * Pointer to an array of struct drm_i915_gem_exec_fence of length - * fence_count. - */ - __u64 handles_ptr; - - /** - * Pointer to an array of u64 values of length fence_count. Values - * must be 0 for a binary drm_syncobj. A Value of 0 for a timeline - * drm_syncobj is invalid as it turns a drm_syncobj into a binary one. - */ - __u64 values_ptr; -}; - struct drm_i915_gem_execbuffer2 { /** * List of gem_exec_object2 structs @@ -1101,14 +1030,8 @@ struct drm_i915_gem_execbuffer2 { __u32 num_cliprects; /** * This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY - * & I915_EXEC_USE_EXTENSIONS are not set. - * - * If I915_EXEC_FENCE_ARRAY is set, then this is a pointer to an array - * of struct drm_i915_gem_exec_fence and num_cliprects is the length - * of the array. - * - * If I915_EXEC_USE_EXTENSIONS is set, then this is a pointer to a - * single struct i915_user_extension and num_cliprects is 0. + * is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a + * struct drm_i915_gem_exec_fence *fences. */ __u64 cliprects_ptr; #define I915_EXEC_RING_MASK (0x3f) @@ -1226,16 +1149,7 @@ struct drm_i915_gem_execbuffer2 { */ #define I915_EXEC_FENCE_SUBMIT (1 << 20) -/* - * Setting I915_EXEC_USE_EXTENSIONS implies that - * drm_i915_gem_execbuffer2.cliprects_ptr is treated as a pointer to an linked - * list of i915_user_extension. Each i915_user_extension node is the base of a - * larger structure. The list of supported structures are listed in the - * drm_i915_gem_execbuffer_ext enum. - */ -#define I915_EXEC_USE_EXTENSIONS (1 << 21) - -#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_USE_EXTENSIONS << 1)) +#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_SUBMIT << 1)) #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff) #define i915_execbuffer2_set_context_id(eb2, context) \ @@ -1673,27 +1587,6 @@ struct drm_i915_gem_context_param { * By default, new contexts allow persistence. */ #define I915_CONTEXT_PARAM_PERSISTENCE 0xb - -/* - * I915_CONTEXT_PARAM_RINGSIZE: - * - * Sets the size of the CS ringbuffer to use for logical ring contexts. This - * applies a limit of how many batches can be queued to HW before the caller - * is blocked due to lack of space for more commands. - * - * Only reliably possible to be set prior to first use, i.e. during - * construction. At any later point, the current execution must be flushed as - * the ring can only be changed while the context is idle. Note, the ringsize - * can be specified as a constructor property, see - * I915_CONTEXT_CREATE_EXT_SETPARAM, but can also be set later if required. - * - * Only applies to the current set of engine and lost when those engines - * are replaced by a new mapping (see I915_CONTEXT_PARAM_ENGINES). - * - * Must be between 4 - 512 KiB, in intervals of page size [4 KiB]. - * Default is 16 KiB. - */ -#define I915_CONTEXT_PARAM_RINGSIZE 0xc /* Must be kept compact -- no holes and well documented */ __u64 value; @@ -1988,7 +1881,7 @@ enum drm_i915_perf_property_id { /** * The value specifies which set of OA unit metrics should be - * configured, defining the contents of any OA unit reports. + * be configured, defining the contents of any OA unit reports. * * This property is available in perf revision 1. */ @@ -2023,30 +1916,6 @@ enum drm_i915_perf_property_id { */ DRM_I915_PERF_PROP_HOLD_PREEMPTION, - /** - * Specifying this pins all contexts to the specified SSEU power - * configuration for the duration of the recording. - * - * This parameter's value is a pointer to a struct - * drm_i915_gem_context_param_sseu. - * - * This property is available in perf revision 4. - */ - DRM_I915_PERF_PROP_GLOBAL_SSEU, - - /** - * This optional parameter specifies the timer interval in nanoseconds - * at which the i915 driver will check the OA buffer for available data. - * Minimum allowed value is 100 microseconds. A default value is used by - * the driver if this parameter is not specified. Note that larger timer - * values will reduce cpu consumption during OA perf captures. However, - * excessively large values would potentially result in OA buffer - * overwrites as captures reach end of the OA buffer. - * - * This property is available in perf revision 5. - */ - DRM_I915_PERF_PROP_POLL_OA_PERIOD, - DRM_I915_PERF_PROP_MAX /* non-ABI */ }; diff --git a/original/uapi/drm/lima_drm.h b/original/uapi/drm/lima_drm.h index 1ec58d6..95a00fb 100644 --- a/original/uapi/drm/lima_drm.h +++ b/original/uapi/drm/lima_drm.h @@ -32,19 +32,12 @@ struct drm_lima_get_param { __u64 value; /* out, parameter value */ }; -/* - * heap buffer dynamically increase backup memory size when GP task fail - * due to lack of heap memory. size field of heap buffer is an up bound of - * the backup memory which can be set to a fairly large value. - */ -#define LIMA_BO_FLAG_HEAP (1 << 0) - /** * create a buffer for used by GPU */ struct drm_lima_gem_create { __u32 size; /* in, buffer size */ - __u32 flags; /* in, buffer flags */ + __u32 flags; /* in, currently no flags, must be zero */ __u32 handle; /* out, GEM buffer handle */ __u32 pad; /* pad, must be zero */ }; diff --git a/original/uapi/drm/msm_drm.h b/original/uapi/drm/msm_drm.h index a6c1f3e..0b85ed6 100644 --- a/original/uapi/drm/msm_drm.h +++ b/original/uapi/drm/msm_drm.h @@ -217,28 +217,13 @@ struct drm_msm_gem_submit_bo { #define MSM_SUBMIT_FENCE_FD_IN 0x40000000 /* enable input fence_fd */ #define MSM_SUBMIT_FENCE_FD_OUT 0x20000000 /* enable output fence_fd */ #define MSM_SUBMIT_SUDO 0x10000000 /* run submitted cmds from RB */ -#define MSM_SUBMIT_SYNCOBJ_IN 0x08000000 /* enable input syncobj */ -#define MSM_SUBMIT_SYNCOBJ_OUT 0x04000000 /* enable output syncobj */ #define MSM_SUBMIT_FLAGS ( \ MSM_SUBMIT_NO_IMPLICIT | \ MSM_SUBMIT_FENCE_FD_IN | \ MSM_SUBMIT_FENCE_FD_OUT | \ MSM_SUBMIT_SUDO | \ - MSM_SUBMIT_SYNCOBJ_IN | \ - MSM_SUBMIT_SYNCOBJ_OUT | \ 0) -#define MSM_SUBMIT_SYNCOBJ_RESET 0x00000001 /* Reset syncobj after wait. */ -#define MSM_SUBMIT_SYNCOBJ_FLAGS ( \ - MSM_SUBMIT_SYNCOBJ_RESET | \ - 0) - -struct drm_msm_gem_submit_syncobj { - __u32 handle; /* in, syncobj handle. */ - __u32 flags; /* in, from MSM_SUBMIT_SYNCOBJ_FLAGS */ - __u64 point; /* in, timepoint for timeline syncobjs. */ -}; - /* Each cmdstream submit consists of a table of buffers involved, and * one or more cmdstream buffers. This allows for conditional execution * (context-restore), and IB buffers needed for per tile/bin draw cmds. @@ -251,14 +236,7 @@ struct drm_msm_gem_submit { __u64 bos; /* in, ptr to array of submit_bo's */ __u64 cmds; /* in, ptr to array of submit_cmd's */ __s32 fence_fd; /* in/out fence fd (see MSM_SUBMIT_FENCE_FD_IN/OUT) */ - __u32 queueid; /* in, submitqueue id */ - __u64 in_syncobjs; /* in, ptr to array of drm_msm_gem_submit_syncobj */ - __u64 out_syncobjs; /* in, ptr to array of drm_msm_gem_submit_syncobj */ - __u32 nr_in_syncobjs; /* in, number of entries in in_syncobj */ - __u32 nr_out_syncobjs; /* in, number of entries in out_syncobj. */ - __u32 syncobj_stride; /* in, stride of syncobj arrays. */ - __u32 pad; /*in, reserved for future use, always 0. */ - + __u32 queueid; /* in, submitqueue id */ }; /* The normal way to synchronize with the GPU is just to CPU_PREP on diff --git a/original/uapi/drm/nouveau_drm.h b/original/uapi/drm/nouveau_drm.h index 853a327..9459a6e 100644 --- a/original/uapi/drm/nouveau_drm.h +++ b/original/uapi/drm/nouveau_drm.h @@ -110,7 +110,6 @@ struct drm_nouveau_gem_pushbuf { __u64 push; __u32 suffix0; __u32 suffix1; -#define NOUVEAU_GEM_PUSHBUF_SYNC (1ULL << 0) __u64 vram_available; __u64 gart_available; }; diff --git a/original/uapi/drm/virtgpu_drm.h b/original/uapi/drm/virtgpu_drm.h index b9ec26e..f06a789 100644 --- a/original/uapi/drm/virtgpu_drm.h +++ b/original/uapi/drm/virtgpu_drm.h @@ -46,7 +46,6 @@ extern "C" { #define DRM_VIRTGPU_TRANSFER_TO_HOST 0x07 #define DRM_VIRTGPU_WAIT 0x08 #define DRM_VIRTGPU_GET_CAPS 0x09 -#define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a #define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01 #define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02 @@ -72,9 +71,6 @@ struct drm_virtgpu_execbuffer { #define VIRTGPU_PARAM_3D_FEATURES 1 /* do we have 3D features in the hw */ #define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2 /* do we have the capset fix */ -#define VIRTGPU_PARAM_RESOURCE_BLOB 3 /* DRM_VIRTGPU_RESOURCE_CREATE_BLOB */ -#define VIRTGPU_PARAM_HOST_VISIBLE 4 /* Host blob resources are mappable */ -#define VIRTGPU_PARAM_CROSS_DEVICE 5 /* Cross virtio-device resource sharing */ struct drm_virtgpu_getparam { __u64 param; @@ -104,7 +100,7 @@ struct drm_virtgpu_resource_info { __u32 bo_handle; __u32 res_handle; __u32 size; - __u32 blob_mem; + __u32 stride; }; struct drm_virtgpu_3d_box { @@ -121,8 +117,6 @@ struct drm_virtgpu_3d_transfer_to_host { struct drm_virtgpu_3d_box box; __u32 level; __u32 offset; - __u32 stride; - __u32 layer_stride; }; struct drm_virtgpu_3d_transfer_from_host { @@ -130,8 +124,6 @@ struct drm_virtgpu_3d_transfer_from_host { struct drm_virtgpu_3d_box box; __u32 level; __u32 offset; - __u32 stride; - __u32 layer_stride; }; #define VIRTGPU_WAIT_NOWAIT 1 /* like it */ @@ -148,31 +140,6 @@ struct drm_virtgpu_get_caps { __u32 pad; }; -struct drm_virtgpu_resource_create_blob { -#define VIRTGPU_BLOB_MEM_GUEST 0x0001 -#define VIRTGPU_BLOB_MEM_HOST3D 0x0002 -#define VIRTGPU_BLOB_MEM_HOST3D_GUEST 0x0003 - -#define VIRTGPU_BLOB_FLAG_USE_MAPPABLE 0x0001 -#define VIRTGPU_BLOB_FLAG_USE_SHAREABLE 0x0002 -#define VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE 0x0004 - /* zero is invalid blob_mem */ - __u32 blob_mem; - __u32 blob_flags; - __u32 bo_handle; - __u32 res_handle; - __u64 size; - - /* - * for 3D contexts with VIRTGPU_BLOB_MEM_HOST3D_GUEST and - * VIRTGPU_BLOB_MEM_HOST3D otherwise, must be zero. - */ - __u32 pad; - __u32 cmd_size; - __u64 cmd; - __u64 blob_id; -}; - #define DRM_IOCTL_VIRTGPU_MAP \ DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map) @@ -208,10 +175,6 @@ struct drm_virtgpu_resource_create_blob { DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, \ struct drm_virtgpu_get_caps) -#define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB \ - DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, \ - struct drm_virtgpu_resource_create_blob) - #if defined(__cplusplus) } #endif diff --git a/original/uapi/drm/vmwgfx_drm.h b/original/uapi/drm/vmwgfx_drm.h index 02e9175..02cab33 100644 --- a/original/uapi/drm/vmwgfx_drm.h +++ b/original/uapi/drm/vmwgfx_drm.h @@ -71,7 +71,6 @@ extern "C" { #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 #define DRM_VMW_GB_SURFACE_CREATE_EXT 27 #define DRM_VMW_GB_SURFACE_REF_EXT 28 -#define DRM_VMW_MSG 29 /*************************************************************************/ /** @@ -86,9 +85,6 @@ extern "C" { * * DRM_VMW_PARAM_SM4_1 * SM4_1 support is enabled. - * - * DRM_VMW_PARAM_SM5 - * SM5 support is enabled. */ #define DRM_VMW_PARAM_NUM_STREAMS 0 @@ -106,7 +102,6 @@ extern "C" { #define DRM_VMW_PARAM_DX 12 #define DRM_VMW_PARAM_HW_CAPS2 13 #define DRM_VMW_PARAM_SM4_1 14 -#define DRM_VMW_PARAM_SM5 15 /** * enum drm_vmw_handle_type - handle type for ref ioctls @@ -1137,7 +1132,7 @@ struct drm_vmw_handle_close_arg { * svga3d surface flags split into 2, upper half and lower half. */ enum drm_vmw_surface_version { - drm_vmw_gb_surface_v1, + drm_vmw_gb_surface_v1 }; /** @@ -1148,7 +1143,6 @@ enum drm_vmw_surface_version { * @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags. * @multisample_pattern: Multisampling pattern when msaa is supported. * @quality_level: Precision settings for each sample. - * @buffer_byte_stride: Buffer byte stride. * @must_be_zero: Reserved for future usage. * * Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl. @@ -1157,11 +1151,10 @@ enum drm_vmw_surface_version { struct drm_vmw_gb_surface_create_ext_req { struct drm_vmw_gb_surface_create_req base; enum drm_vmw_surface_version version; - __u32 svga3d_flags_upper_32_bits; - __u32 multisample_pattern; - __u32 quality_level; - __u32 buffer_byte_stride; - __u32 must_be_zero; + uint32_t svga3d_flags_upper_32_bits; + SVGA3dMSPattern multisample_pattern; + SVGA3dMSQualityLevel quality_level; + uint64_t must_be_zero; }; /** @@ -1220,22 +1213,6 @@ union drm_vmw_gb_surface_reference_ext_arg { struct drm_vmw_surface_arg req; }; -/** - * struct drm_vmw_msg_arg - * - * @send: Pointer to user-space msg string (null terminated). - * @receive: Pointer to user-space receive buffer. - * @send_only: Boolean whether this is only sending or receiving too. - * - * Argument to the DRM_VMW_MSG ioctl. - */ -struct drm_vmw_msg_arg { - __u64 send; - __u64 receive; - __s32 send_only; - __u32 receive_len; -}; - #if defined(__cplusplus) } #endif diff --git a/original/uapi/linux/acct.h b/original/uapi/linux/acct.h index 985b890..0e72172 100644 --- a/original/uapi/linux/acct.h +++ b/original/uapi/linux/acct.h @@ -49,7 +49,6 @@ struct acct __u16 ac_uid16; /* LSB of Real User ID */ __u16 ac_gid16; /* LSB of Real Group ID */ __u16 ac_tty; /* Control Terminal */ - /* __u32 range means times from 1970 to 2106 */ __u32 ac_btime; /* Process Creation Time */ comp_t ac_utime; /* User Time */ comp_t ac_stime; /* System Time */ @@ -82,7 +81,6 @@ struct acct_v3 __u32 ac_gid; /* Real Group ID */ __u32 ac_pid; /* Process ID */ __u32 ac_ppid; /* Parent Process ID */ - /* __u32 range means times from 1970 to 2106 */ __u32 ac_btime; /* Process Creation Time */ #ifdef __KERNEL__ __u32 ac_etime; /* Elapsed Time */ diff --git a/original/uapi/linux/acrn.h b/original/uapi/linux/acrn.h deleted file mode 100644 index 353b2a2..0000000 --- a/original/uapi/linux/acrn.h +++ /dev/null @@ -1,580 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Userspace interface for /dev/acrn_hsm - ACRN Hypervisor Service Module - * - * This file can be used by applications that need to communicate with the HSM - * via the ioctl interface. - * - * Copyright (C) 2021 Intel Corporation. All rights reserved. - */ - -#ifndef _UAPI_ACRN_H -#define _UAPI_ACRN_H - -#include <linux/types.h> -#include <linux/uuid.h> - -#define ACRN_IO_REQUEST_MAX 16 - -#define ACRN_IOREQ_STATE_PENDING 0 -#define ACRN_IOREQ_STATE_COMPLETE 1 -#define ACRN_IOREQ_STATE_PROCESSING 2 -#define ACRN_IOREQ_STATE_FREE 3 - -#define ACRN_IOREQ_TYPE_PORTIO 0 -#define ACRN_IOREQ_TYPE_MMIO 1 -#define ACRN_IOREQ_TYPE_PCICFG 2 - -#define ACRN_IOREQ_DIR_READ 0 -#define ACRN_IOREQ_DIR_WRITE 1 - -/** - * struct acrn_mmio_request - Info of a MMIO I/O request - * @direction: Access direction of this request (ACRN_IOREQ_DIR_*) - * @reserved: Reserved for alignment and should be 0 - * @address: Access address of this MMIO I/O request - * @size: Access size of this MMIO I/O request - * @value: Read/write value of this MMIO I/O request - */ -struct acrn_mmio_request { - __u32 direction; - __u32 reserved; - __u64 address; - __u64 size; - __u64 value; -}; - -/** - * struct acrn_pio_request - Info of a PIO I/O request - * @direction: Access direction of this request (ACRN_IOREQ_DIR_*) - * @reserved: Reserved for alignment and should be 0 - * @address: Access address of this PIO I/O request - * @size: Access size of this PIO I/O request - * @value: Read/write value of this PIO I/O request - */ -struct acrn_pio_request { - __u32 direction; - __u32 reserved; - __u64 address; - __u64 size; - __u32 value; -}; - -/** - * struct acrn_pci_request - Info of a PCI I/O request - * @direction: Access direction of this request (ACRN_IOREQ_DIR_*) - * @reserved: Reserved for alignment and should be 0 - * @size: Access size of this PCI I/O request - * @value: Read/write value of this PIO I/O request - * @bus: PCI bus value of this PCI I/O request - * @dev: PCI device value of this PCI I/O request - * @func: PCI function value of this PCI I/O request - * @reg: PCI config space offset of this PCI I/O request - * - * Need keep same header layout with &struct acrn_pio_request. - */ -struct acrn_pci_request { - __u32 direction; - __u32 reserved[3]; - __u64 size; - __u32 value; - __u32 bus; - __u32 dev; - __u32 func; - __u32 reg; -}; - -/** - * struct acrn_io_request - 256-byte ACRN I/O request - * @type: Type of this request (ACRN_IOREQ_TYPE_*). - * @completion_polling: Polling flag. Hypervisor will poll completion of the - * I/O request if this flag set. - * @reserved0: Reserved fields. - * @reqs: Union of different types of request. Byte offset: 64. - * @reqs.pio_request: PIO request data of the I/O request. - * @reqs.pci_request: PCI configuration space request data of the I/O request. - * @reqs.mmio_request: MMIO request data of the I/O request. - * @reqs.data: Raw data of the I/O request. - * @reserved1: Reserved fields. - * @kernel_handled: Flag indicates this request need be handled in kernel. - * @processed: The status of this request (ACRN_IOREQ_STATE_*). - * - * The state transitions of ACRN I/O request: - * - * FREE -> PENDING -> PROCESSING -> COMPLETE -> FREE -> ... - * - * An I/O request in COMPLETE or FREE state is owned by the hypervisor. HSM and - * ACRN userspace are in charge of processing the others. - * - * On basis of the states illustrated above, a typical lifecycle of ACRN IO - * request would look like: - * - * Flow (assume the initial state is FREE) - * | - * | Service VM vCPU 0 Service VM vCPU x User vCPU y - * | - * | hypervisor: - * | fills in type, addr, etc. - * | pauses the User VM vCPU y - * | sets the state to PENDING (a) - * | fires an upcall to Service VM - * | - * | HSM: - * | scans for PENDING requests - * | sets the states to PROCESSING (b) - * | assigns the requests to clients (c) - * V - * | client: - * | scans for the assigned requests - * | handles the requests (d) - * | HSM: - * | sets states to COMPLETE - * | notifies the hypervisor - * | - * | hypervisor: - * | resumes User VM vCPU y (e) - * | - * | hypervisor: - * | post handling (f) - * V sets states to FREE - * - * Note that the procedures (a) to (f) in the illustration above require to be - * strictly processed in the order. One vCPU cannot trigger another request of - * I/O emulation before completing the previous one. - * - * Atomic and barriers are required when HSM and hypervisor accessing the state - * of &struct acrn_io_request. - * - */ -struct acrn_io_request { - __u32 type; - __u32 completion_polling; - __u32 reserved0[14]; - union { - struct acrn_pio_request pio_request; - struct acrn_pci_request pci_request; - struct acrn_mmio_request mmio_request; - __u64 data[8]; - } reqs; - __u32 reserved1; - __u32 kernel_handled; - __u32 processed; -} __attribute__((aligned(256))); - -struct acrn_io_request_buffer { - union { - struct acrn_io_request req_slot[ACRN_IO_REQUEST_MAX]; - __u8 reserved[4096]; - }; -}; - -/** - * struct acrn_ioreq_notify - The structure of ioreq completion notification - * @vmid: User VM ID - * @reserved: Reserved and should be 0 - * @vcpu: vCPU ID - */ -struct acrn_ioreq_notify { - __u16 vmid; - __u16 reserved; - __u32 vcpu; -}; - -/** - * struct acrn_vm_creation - Info to create a User VM - * @vmid: User VM ID returned from the hypervisor - * @reserved0: Reserved and must be 0 - * @vcpu_num: Number of vCPU in the VM. Return from hypervisor. - * @reserved1: Reserved and must be 0 - * @uuid: UUID of the VM. Pass to hypervisor directly. - * @vm_flag: Flag of the VM creating. Pass to hypervisor directly. - * @ioreq_buf: Service VM GPA of I/O request buffer. Pass to - * hypervisor directly. - * @cpu_affinity: CPU affinity of the VM. Pass to hypervisor directly. - * It's a bitmap which indicates CPUs used by the VM. - */ -struct acrn_vm_creation { - __u16 vmid; - __u16 reserved0; - __u16 vcpu_num; - __u16 reserved1; - guid_t uuid; - __u64 vm_flag; - __u64 ioreq_buf; - __u64 cpu_affinity; -}; - -/** - * struct acrn_gp_regs - General registers of a User VM - * @rax: Value of register RAX - * @rcx: Value of register RCX - * @rdx: Value of register RDX - * @rbx: Value of register RBX - * @rsp: Value of register RSP - * @rbp: Value of register RBP - * @rsi: Value of register RSI - * @rdi: Value of register RDI - * @r8: Value of register R8 - * @r9: Value of register R9 - * @r10: Value of register R10 - * @r11: Value of register R11 - * @r12: Value of register R12 - * @r13: Value of register R13 - * @r14: Value of register R14 - * @r15: Value of register R15 - */ -struct acrn_gp_regs { - __le64 rax; - __le64 rcx; - __le64 rdx; - __le64 rbx; - __le64 rsp; - __le64 rbp; - __le64 rsi; - __le64 rdi; - __le64 r8; - __le64 r9; - __le64 r10; - __le64 r11; - __le64 r12; - __le64 r13; - __le64 r14; - __le64 r15; -}; - -/** - * struct acrn_descriptor_ptr - Segment descriptor table of a User VM. - * @limit: Limit field. - * @base: Base field. - * @reserved: Reserved and must be 0. - */ -struct acrn_descriptor_ptr { - __le16 limit; - __le64 base; - __le16 reserved[3]; -} __attribute__ ((__packed__)); - -/** - * struct acrn_regs - Registers structure of a User VM - * @gprs: General registers - * @gdt: Global Descriptor Table - * @idt: Interrupt Descriptor Table - * @rip: Value of register RIP - * @cs_base: Base of code segment selector - * @cr0: Value of register CR0 - * @cr4: Value of register CR4 - * @cr3: Value of register CR3 - * @ia32_efer: Value of IA32_EFER MSR - * @rflags: Value of regsiter RFLAGS - * @reserved_64: Reserved and must be 0 - * @cs_ar: Attribute field of code segment selector - * @cs_limit: Limit field of code segment selector - * @reserved_32: Reserved and must be 0 - * @cs_sel: Value of code segment selector - * @ss_sel: Value of stack segment selector - * @ds_sel: Value of data segment selector - * @es_sel: Value of extra segment selector - * @fs_sel: Value of FS selector - * @gs_sel: Value of GS selector - * @ldt_sel: Value of LDT descriptor selector - * @tr_sel: Value of TSS descriptor selector - */ -struct acrn_regs { - struct acrn_gp_regs gprs; - struct acrn_descriptor_ptr gdt; - struct acrn_descriptor_ptr idt; - - __le64 rip; - __le64 cs_base; - __le64 cr0; - __le64 cr4; - __le64 cr3; - __le64 ia32_efer; - __le64 rflags; - __le64 reserved_64[4]; - - __le32 cs_ar; - __le32 cs_limit; - __le32 reserved_32[3]; - - __le16 cs_sel; - __le16 ss_sel; - __le16 ds_sel; - __le16 es_sel; - __le16 fs_sel; - __le16 gs_sel; - __le16 ldt_sel; - __le16 tr_sel; -}; - -/** - * struct acrn_vcpu_regs - Info of vCPU registers state - * @vcpu_id: vCPU ID - * @reserved: Reserved and must be 0 - * @vcpu_regs: vCPU registers state - * - * This structure will be passed to hypervisor directly. - */ -struct acrn_vcpu_regs { - __u16 vcpu_id; - __u16 reserved[3]; - struct acrn_regs vcpu_regs; -}; - -#define ACRN_MEM_ACCESS_RIGHT_MASK 0x00000007U -#define ACRN_MEM_ACCESS_READ 0x00000001U -#define ACRN_MEM_ACCESS_WRITE 0x00000002U -#define ACRN_MEM_ACCESS_EXEC 0x00000004U -#define ACRN_MEM_ACCESS_RWX (ACRN_MEM_ACCESS_READ | \ - ACRN_MEM_ACCESS_WRITE | \ - ACRN_MEM_ACCESS_EXEC) - -#define ACRN_MEM_TYPE_MASK 0x000007C0U -#define ACRN_MEM_TYPE_WB 0x00000040U -#define ACRN_MEM_TYPE_WT 0x00000080U -#define ACRN_MEM_TYPE_UC 0x00000100U -#define ACRN_MEM_TYPE_WC 0x00000200U -#define ACRN_MEM_TYPE_WP 0x00000400U - -/* Memory mapping types */ -#define ACRN_MEMMAP_RAM 0 -#define ACRN_MEMMAP_MMIO 1 - -/** - * struct acrn_vm_memmap - A EPT memory mapping info for a User VM. - * @type: Type of the memory mapping (ACRM_MEMMAP_*). - * Pass to hypervisor directly. - * @attr: Attribute of the memory mapping. - * Pass to hypervisor directly. - * @user_vm_pa: Physical address of User VM. - * Pass to hypervisor directly. - * @service_vm_pa: Physical address of Service VM. - * Pass to hypervisor directly. - * @vma_base: VMA address of Service VM. Pass to hypervisor directly. - * @len: Length of the memory mapping. - * Pass to hypervisor directly. - */ -struct acrn_vm_memmap { - __u32 type; - __u32 attr; - __u64 user_vm_pa; - union { - __u64 service_vm_pa; - __u64 vma_base; - }; - __u64 len; -}; - -/* Type of interrupt of a passthrough device */ -#define ACRN_PTDEV_IRQ_INTX 0 -#define ACRN_PTDEV_IRQ_MSI 1 -#define ACRN_PTDEV_IRQ_MSIX 2 -/** - * struct acrn_ptdev_irq - Interrupt data of a passthrough device. - * @type: Type (ACRN_PTDEV_IRQ_*) - * @virt_bdf: Virtual Bus/Device/Function - * @phys_bdf: Physical Bus/Device/Function - * @intx: Info of interrupt - * @intx.virt_pin: Virtual IOAPIC pin - * @intx.phys_pin: Physical IOAPIC pin - * @intx.is_pic_pin: Is PIC pin or not - * - * This structure will be passed to hypervisor directly. - */ -struct acrn_ptdev_irq { - __u32 type; - __u16 virt_bdf; - __u16 phys_bdf; - - struct { - __u32 virt_pin; - __u32 phys_pin; - __u32 is_pic_pin; - } intx; -}; - -/* Type of PCI device assignment */ -#define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0) - -#define ACRN_PCI_NUM_BARS 6 -/** - * struct acrn_pcidev - Info for assigning or de-assigning a PCI device - * @type: Type of the assignment - * @virt_bdf: Virtual Bus/Device/Function - * @phys_bdf: Physical Bus/Device/Function - * @intr_line: PCI interrupt line - * @intr_pin: PCI interrupt pin - * @bar: PCI BARs. - * - * This structure will be passed to hypervisor directly. - */ -struct acrn_pcidev { - __u32 type; - __u16 virt_bdf; - __u16 phys_bdf; - __u8 intr_line; - __u8 intr_pin; - __u32 bar[ACRN_PCI_NUM_BARS]; -}; - -/** - * struct acrn_msi_entry - Info for injecting a MSI interrupt to a VM - * @msi_addr: MSI addr[19:12] with dest vCPU ID - * @msi_data: MSI data[7:0] with vector - */ -struct acrn_msi_entry { - __u64 msi_addr; - __u64 msi_data; -}; - -struct acrn_acpi_generic_address { - __u8 space_id; - __u8 bit_width; - __u8 bit_offset; - __u8 access_size; - __u64 address; -} __attribute__ ((__packed__)); - -/** - * struct acrn_cstate_data - A C state package defined in ACPI - * @cx_reg: Register of the C state object - * @type: Type of the C state object - * @latency: The worst-case latency to enter and exit this C state - * @power: The average power consumption when in this C state - */ -struct acrn_cstate_data { - struct acrn_acpi_generic_address cx_reg; - __u8 type; - __u32 latency; - __u64 power; -}; - -/** - * struct acrn_pstate_data - A P state package defined in ACPI - * @core_frequency: CPU frequency (in MHz). - * @power: Power dissipation (in milliwatts). - * @transition_latency: The worst-case latency in microseconds that CPU is - * unavailable during a transition from any P state to - * this P state. - * @bus_master_latency: The worst-case latency in microseconds that Bus Masters - * are prevented from accessing memory during a transition - * from any P state to this P state. - * @control: The value to be written to Performance Control Register - * @status: Transition status. - */ -struct acrn_pstate_data { - __u64 core_frequency; - __u64 power; - __u64 transition_latency; - __u64 bus_master_latency; - __u64 control; - __u64 status; -}; - -#define PMCMD_TYPE_MASK 0x000000ff -enum acrn_pm_cmd_type { - ACRN_PMCMD_GET_PX_CNT, - ACRN_PMCMD_GET_PX_DATA, - ACRN_PMCMD_GET_CX_CNT, - ACRN_PMCMD_GET_CX_DATA, -}; - -#define ACRN_IOEVENTFD_FLAG_PIO 0x01 -#define ACRN_IOEVENTFD_FLAG_DATAMATCH 0x02 -#define ACRN_IOEVENTFD_FLAG_DEASSIGN 0x04 -/** - * struct acrn_ioeventfd - Data to operate a &struct hsm_ioeventfd - * @fd: The fd of eventfd associated with a hsm_ioeventfd - * @flags: Logical-OR of ACRN_IOEVENTFD_FLAG_* - * @addr: The start address of IO range of ioeventfd - * @len: The length of IO range of ioeventfd - * @reserved: Reserved and should be 0 - * @data: Data for data matching - * - * Without flag ACRN_IOEVENTFD_FLAG_DEASSIGN, ioctl ACRN_IOCTL_IOEVENTFD - * creates a &struct hsm_ioeventfd with properties originated from &struct - * acrn_ioeventfd. With flag ACRN_IOEVENTFD_FLAG_DEASSIGN, ioctl - * ACRN_IOCTL_IOEVENTFD destroys the &struct hsm_ioeventfd matching the fd. - */ -struct acrn_ioeventfd { - __u32 fd; - __u32 flags; - __u64 addr; - __u32 len; - __u32 reserved; - __u64 data; -}; - -#define ACRN_IRQFD_FLAG_DEASSIGN 0x01 -/** - * struct acrn_irqfd - Data to operate a &struct hsm_irqfd - * @fd: The fd of eventfd associated with a hsm_irqfd - * @flags: Logical-OR of ACRN_IRQFD_FLAG_* - * @msi: Info of MSI associated with the irqfd - */ -struct acrn_irqfd { - __s32 fd; - __u32 flags; - struct acrn_msi_entry msi; -}; - -/* The ioctl type, documented in ioctl-number.rst */ -#define ACRN_IOCTL_TYPE 0xA2 - -/* - * Common IOCTL IDs definition for ACRN userspace - */ -#define ACRN_IOCTL_CREATE_VM \ - _IOWR(ACRN_IOCTL_TYPE, 0x10, struct acrn_vm_creation) -#define ACRN_IOCTL_DESTROY_VM \ - _IO(ACRN_IOCTL_TYPE, 0x11) -#define ACRN_IOCTL_START_VM \ - _IO(ACRN_IOCTL_TYPE, 0x12) -#define ACRN_IOCTL_PAUSE_VM \ - _IO(ACRN_IOCTL_TYPE, 0x13) -#define ACRN_IOCTL_RESET_VM \ - _IO(ACRN_IOCTL_TYPE, 0x15) -#define ACRN_IOCTL_SET_VCPU_REGS \ - _IOW(ACRN_IOCTL_TYPE, 0x16, struct acrn_vcpu_regs) - -#define ACRN_IOCTL_INJECT_MSI \ - _IOW(ACRN_IOCTL_TYPE, 0x23, struct acrn_msi_entry) -#define ACRN_IOCTL_VM_INTR_MONITOR \ - _IOW(ACRN_IOCTL_TYPE, 0x24, unsigned long) -#define ACRN_IOCTL_SET_IRQLINE \ - _IOW(ACRN_IOCTL_TYPE, 0x25, __u64) - -#define ACRN_IOCTL_NOTIFY_REQUEST_FINISH \ - _IOW(ACRN_IOCTL_TYPE, 0x31, struct acrn_ioreq_notify) -#define ACRN_IOCTL_CREATE_IOREQ_CLIENT \ - _IO(ACRN_IOCTL_TYPE, 0x32) -#define ACRN_IOCTL_ATTACH_IOREQ_CLIENT \ - _IO(ACRN_IOCTL_TYPE, 0x33) -#define ACRN_IOCTL_DESTROY_IOREQ_CLIENT \ - _IO(ACRN_IOCTL_TYPE, 0x34) -#define ACRN_IOCTL_CLEAR_VM_IOREQ \ - _IO(ACRN_IOCTL_TYPE, 0x35) - -#define ACRN_IOCTL_SET_MEMSEG \ - _IOW(ACRN_IOCTL_TYPE, 0x41, struct acrn_vm_memmap) -#define ACRN_IOCTL_UNSET_MEMSEG \ - _IOW(ACRN_IOCTL_TYPE, 0x42, struct acrn_vm_memmap) - -#define ACRN_IOCTL_SET_PTDEV_INTR \ - _IOW(ACRN_IOCTL_TYPE, 0x53, struct acrn_ptdev_irq) -#define ACRN_IOCTL_RESET_PTDEV_INTR \ - _IOW(ACRN_IOCTL_TYPE, 0x54, struct acrn_ptdev_irq) -#define ACRN_IOCTL_ASSIGN_PCIDEV \ - _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev) -#define ACRN_IOCTL_DEASSIGN_PCIDEV \ - _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev) - -#define ACRN_IOCTL_PM_GET_CPU_STATE \ - _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64) - -#define ACRN_IOCTL_IOEVENTFD \ - _IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd) -#define ACRN_IOCTL_IRQFD \ - _IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd) - -#endif /* _UAPI_ACRN_H */ diff --git a/original/uapi/linux/android/binder.h b/original/uapi/linux/android/binder.h index 8e5b929..11babae 100644 --- a/original/uapi/linux/android/binder.h +++ b/original/uapi/linux/android/binder.h @@ -296,7 +296,6 @@ enum transaction_flags { TF_ROOT_OBJECT = 0x04, /* contents are the component's root object */ TF_STATUS_CODE = 0x08, /* contents are a 32-bit status code */ TF_ACCEPT_FDS = 0x10, /* allow replies with file descriptors */ - TF_CLEAR_BUF = 0x20, /* clear buffer on txn complete */ }; struct binder_transaction_data { @@ -453,7 +452,7 @@ enum binder_driver_return_protocol { BR_FAILED_REPLY = _IO('r', 17), /* - * The last transaction (either a bcTRANSACTION or + * The the last transaction (either a bcTRANSACTION or * a bcATTEMPT_ACQUIRE) failed (e.g. out of memory). No parameters. */ }; diff --git a/original/uapi/linux/atmioc.h b/original/uapi/linux/atmioc.h index a9030bc..cd7655e 100644 --- a/original/uapi/linux/atmioc.h +++ b/original/uapi/linux/atmioc.h @@ -5,7 +5,7 @@ /* - * See https://icawww1.epfl.ch/linux-atm/magic.html for the complete list of + * See http://icawww1.epfl.ch/linux-atm/magic.html for the complete list of * "magic" ioctl numbers. */ diff --git a/original/uapi/linux/audit.h b/original/uapi/linux/audit.h index cd2d827..3ad9355 100644 --- a/original/uapi/linux/audit.h +++ b/original/uapi/linux/audit.h @@ -116,8 +116,6 @@ #define AUDIT_FANOTIFY 1331 /* Fanotify access decision */ #define AUDIT_TIME_INJOFFSET 1332 /* Timekeeping offset injected */ #define AUDIT_TIME_ADJNTPVAL 1333 /* NTP value adjustment */ -#define AUDIT_BPF 1334 /* BPF subsystem */ -#define AUDIT_EVENT_LISTENER 1335 /* Task joined multicast read socket */ #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ @@ -333,15 +331,14 @@ enum { }; /* Status symbols */ - /* Mask values */ -#define AUDIT_STATUS_ENABLED 0x0001 -#define AUDIT_STATUS_FAILURE 0x0002 -#define AUDIT_STATUS_PID 0x0004 + /* Mask values */ +#define AUDIT_STATUS_ENABLED 0x0001 +#define AUDIT_STATUS_FAILURE 0x0002 +#define AUDIT_STATUS_PID 0x0004 #define AUDIT_STATUS_RATE_LIMIT 0x0008 -#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 -#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020 -#define AUDIT_STATUS_LOST 0x0040 -#define AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL 0x0080 +#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 +#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020 +#define AUDIT_STATUS_LOST 0x0040 #define AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT 0x00000001 #define AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME 0x00000002 @@ -468,9 +465,6 @@ struct audit_status { __u32 feature_bitmap; /* bitmap of kernel audit features */ }; __u32 backlog_wait_time;/* message queue wait timeout */ - __u32 backlog_wait_time_actual;/* time spent waiting while - * message limit exceeded - */ }; struct audit_features { diff --git a/original/uapi/linux/auto_dev-ioctl.h b/original/uapi/linux/auto_dev-ioctl.h index 62e6253..3747426 100644 --- a/original/uapi/linux/auto_dev-ioctl.h +++ b/original/uapi/linux/auto_dev-ioctl.h @@ -82,7 +82,7 @@ struct args_ismountpoint { /* * All the ioctls use this structure. * When sending a path size must account for the total length - * of the chunk of memory otherwise it is the size of the + * of the chunk of memory otherwise is is the size of the * structure. */ diff --git a/original/uapi/linux/b1lli.h b/original/uapi/linux/b1lli.h new file mode 100644 index 0000000..4ae6ac9 --- /dev/null +++ b/original/uapi/linux/b1lli.h @@ -0,0 +1,74 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* $Id: b1lli.h,v 1.8.8.3 2001/09/23 22:25:05 kai Exp $ + * + * ISDN lowlevel-module for AVM B1-card. + * + * Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +#ifndef _B1LLI_H_ +#define _B1LLI_H_ +/* + * struct for loading t4 file + */ +typedef struct avmb1_t4file { + int len; + unsigned char *data; +} avmb1_t4file; + +typedef struct avmb1_loaddef { + int contr; + avmb1_t4file t4file; +} avmb1_loaddef; + +typedef struct avmb1_loadandconfigdef { + int contr; + avmb1_t4file t4file; + avmb1_t4file t4config; +} avmb1_loadandconfigdef; + +typedef struct avmb1_resetdef { + int contr; +} avmb1_resetdef; + +typedef struct avmb1_getdef { + int contr; + int cardtype; + int cardstate; +} avmb1_getdef; + +/* + * struct for adding new cards + */ +typedef struct avmb1_carddef { + int port; + int irq; +} avmb1_carddef; + +#define AVM_CARDTYPE_B1 0 +#define AVM_CARDTYPE_T1 1 +#define AVM_CARDTYPE_M1 2 +#define AVM_CARDTYPE_M2 3 + +typedef struct avmb1_extcarddef { + int port; + int irq; + int cardtype; + int cardnr; /* for HEMA/T1 */ +} avmb1_extcarddef; + +#define AVMB1_LOAD 0 /* load image to card */ +#define AVMB1_ADDCARD 1 /* add a new card - OBSOLETE */ +#define AVMB1_RESETCARD 2 /* reset a card */ +#define AVMB1_LOAD_AND_CONFIG 3 /* load image and config to card */ +#define AVMB1_ADDCARD_WITH_TYPE 4 /* add a new card, with cardtype */ +#define AVMB1_GET_CARDINFO 5 /* get cardtype */ +#define AVMB1_REMOVECARD 6 /* remove a card - OBSOLETE */ + +#define AVMB1_REGISTERCARD_IS_OBSOLETE + +#endif /* _B1LLI_H_ */ diff --git a/original/uapi/linux/batadv_packet.h b/original/uapi/linux/batadv_packet.h index ea4692c..2a15f01 100644 --- a/original/uapi/linux/batadv_packet.h +++ b/original/uapi/linux/batadv_packet.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) */ -/* Copyright (C) B.A.T.M.A.N. contributors: +/* Copyright (C) 2007-2019 B.A.T.M.A.N. contributors: * * Marek Lindner, Simon Wunderlich */ @@ -72,8 +72,8 @@ enum batadv_subtype { /** * enum batadv_iv_flags - flags used in B.A.T.M.A.N. IV OGM packets - * @BATADV_NOT_BEST_NEXT_HOP: flag is set when the ogm packet is forwarded and - * was previously received from someone other than the best neighbor. + * @BATADV_NOT_BEST_NEXT_HOP: flag is set when ogm packet is forwarded and was + * previously received from someone else than the best neighbor. * @BATADV_PRIMARIES_FIRST_HOP: flag unused. * @BATADV_DIRECTLINK: flag is for the first hop or if rebroadcasted from a * one hop neighbor on the interface where it was originally received. @@ -195,8 +195,8 @@ struct batadv_bla_claim_dst { /** * struct batadv_ogm_packet - ogm (routing protocol) packet * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @flags: contains routing relevant flags - see enum batadv_iv_flags * @seqno: sequence identification * @orig: address of the source node @@ -247,7 +247,7 @@ struct batadv_ogm2_packet { /** * struct batadv_elp_packet - elp (neighbor discovery) packet * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header + * @version: batman-adv protocol version, part of the genereal header * @orig: originator mac address * @seqno: sequence number * @elp_interval: currently used ELP sending interval in ms @@ -265,15 +265,15 @@ struct batadv_elp_packet { /** * struct batadv_icmp_header - common members among all the ICMP packets * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @msg_type: ICMP packet type * @dst: address of the destination node * @orig: address of the source node * @uid: local ICMP socket identifier * @align: not used - useful for alignment purposes only * - * This structure is used for ICMP packet parsing only and it is never sent + * This structure is used for ICMP packets parsing only and it is never sent * over the wire. The alignment field at the end is there to ensure that * members are padded the same way as they are in real packets. */ @@ -291,8 +291,8 @@ struct batadv_icmp_header { /** * struct batadv_icmp_packet - ICMP packet * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @msg_type: ICMP packet type * @dst: address of the destination node * @orig: address of the source node @@ -315,8 +315,8 @@ struct batadv_icmp_packet { /** * struct batadv_icmp_tp_packet - ICMP TP Meter packet * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @msg_type: ICMP packet type * @dst: address of the destination node * @orig: address of the source node @@ -358,8 +358,8 @@ enum batadv_icmp_tp_subtype { /** * struct batadv_icmp_packet_rr - ICMP RouteRecord packet * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @msg_type: ICMP packet type * @dst: address of the destination node * @orig: address of the source node @@ -397,8 +397,8 @@ struct batadv_icmp_packet_rr { /** * struct batadv_unicast_packet - unicast packet for network payload * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @ttvn: translation table version number * @dest: originator destination of the unicast packet */ @@ -433,8 +433,8 @@ struct batadv_unicast_4addr_packet { /** * struct batadv_frag_packet - fragmented packet * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @dest: final destination used when routing fragments * @orig: originator of the fragment used when merging the packet * @no: fragment number within this sequence @@ -467,8 +467,8 @@ struct batadv_frag_packet { /** * struct batadv_bcast_packet - broadcast packet for network payload * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @reserved: reserved byte for alignment * @seqno: sequence identification * @orig: originator of the broadcast packet @@ -488,10 +488,10 @@ struct batadv_bcast_packet { /** * struct batadv_coded_packet - network coded packet * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @first_source: original source of first included packet - * @first_orig_dest: original destination of first included packet + * @first_orig_dest: original destinal of first included packet * @first_crc: checksum of first included packet * @first_ttvn: tt-version number of first included packet * @second_ttl: ttl of second packet @@ -523,8 +523,8 @@ struct batadv_coded_packet { /** * struct batadv_unicast_tvlv_packet - generic unicast packet with tvlv payload * @packet_type: batman-adv packet type, part of the general header - * @version: batman-adv protocol version, part of the general header - * @ttl: time to live for this packet, part of the general header + * @version: batman-adv protocol version, part of the genereal header + * @ttl: time to live for this packet, part of the genereal header * @reserved: reserved field (for packet alignment) * @src: address of the source * @dst: address of the destination diff --git a/original/uapi/linux/batman_adv.h b/original/uapi/linux/batman_adv.h index 35dc016..67f4636 100644 --- a/original/uapi/linux/batman_adv.h +++ b/original/uapi/linux/batman_adv.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: MIT */ -/* Copyright (C) B.A.T.M.A.N. contributors: +/* Copyright (C) 2016-2019 B.A.T.M.A.N. contributors: * * Matthias Schiffer */ @@ -69,7 +69,7 @@ enum batadv_tt_client_flags { /** * @BATADV_TT_CLIENT_TEMP: this global client has been detected to be - * part of the network but no node has already announced it + * part of the network but no nnode has already announced it */ BATADV_TT_CLIENT_TEMP = (1 << 11), }; @@ -131,7 +131,7 @@ enum batadv_gw_modes { /** @BATADV_GW_MODE_CLIENT: send DHCP requests to gw servers */ BATADV_GW_MODE_CLIENT, - /** @BATADV_GW_MODE_SERVER: announce itself as gateway server */ + /** @BATADV_GW_MODE_SERVER: announce itself as gatway server */ BATADV_GW_MODE_SERVER, }; @@ -427,8 +427,7 @@ enum batadv_nl_attrs { /** * @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied - * to an originator message's tq-field on every hop and/or per - * hard interface + * to an originator message's tq-field on every hop. */ BATADV_ATTR_HOP_PENALTY, @@ -675,30 +674,4 @@ enum batadv_tp_meter_reason { BATADV_TP_REASON_TOO_MANY = 133, }; -/** - * enum batadv_ifla_attrs - batman-adv ifla nested attributes - */ -enum batadv_ifla_attrs { - /** - * @IFLA_BATADV_UNSPEC: unspecified attribute which is not parsed by - * rtnetlink - */ - IFLA_BATADV_UNSPEC, - - /** - * @IFLA_BATADV_ALGO_NAME: routing algorithm (name) which should be - * used by the newly registered batadv net_device. - */ - IFLA_BATADV_ALGO_NAME, - - /* add attributes above here, update the policy in soft-interface.c */ - - /** - * @__IFLA_BATADV_MAX: internal use - */ - __IFLA_BATADV_MAX, -}; - -#define IFLA_BATADV_MAX (__IFLA_BATADV_MAX - 1) - #endif /* _UAPI_LINUX_BATMAN_ADV_H_ */ diff --git a/original/uapi/linux/bcache.h b/original/uapi/linux/bcache.h index cf7399f..5d4f58e 100644 --- a/original/uapi/linux/bcache.h +++ b/original/uapi/linux/bcache.h @@ -141,16 +141,13 @@ static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys) * Version 3: Cache device with new UUID format * Version 4: Backing device with data offset */ -#define BCACHE_SB_VERSION_CDEV 0 -#define BCACHE_SB_VERSION_BDEV 1 -#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3 -#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4 -#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5 -#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6 -#define BCACHE_SB_MAX_VERSION 6 +#define BCACHE_SB_VERSION_CDEV 0 +#define BCACHE_SB_VERSION_BDEV 1 +#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3 +#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4 +#define BCACHE_SB_MAX_VERSION 4 #define SB_SECTOR 8 -#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT) #define SB_SIZE 4096 #define SB_LABEL_SIZE 32 #define SB_JOURNAL_BUCKETS 256U @@ -159,70 +156,8 @@ static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys) #define BDEV_DATA_START_DEFAULT 16 /* sectors */ -struct cache_sb_disk { - __le64 csum; - __le64 offset; /* sector where this sb was written */ - __le64 version; - - __u8 magic[16]; - - __u8 uuid[16]; - union { - __u8 set_uuid[16]; - __le64 set_magic; - }; - __u8 label[SB_LABEL_SIZE]; - - __le64 flags; - __le64 seq; - - __le64 feature_compat; - __le64 feature_incompat; - __le64 feature_ro_compat; - - __le64 pad[5]; - - union { - struct { - /* Cache devices */ - __le64 nbuckets; /* device size */ - - __le16 block_size; /* sectors */ - __le16 bucket_size; /* sectors */ - - __le16 nr_in_set; - __le16 nr_this_dev; - }; - struct { - /* Backing devices */ - __le64 data_offset; - - /* - * block_size from the cache device section is still used by - * backing devices, so don't add anything here until we fix - * things to not need it for backing devices anymore - */ - }; - }; - - __le32 last_mount; /* time overflow in y2106 */ - - __le16 first_bucket; - union { - __le16 njournal_buckets; - __le16 keys; - }; - __le64 d[SB_JOURNAL_BUCKETS]; /* journal buckets */ - __le16 obso_bucket_size_hi; /* obsoleted */ -}; - -/* - * This is for in-memory bcache super block. - * NOTE: cache_sb is NOT exactly mapping to cache_sb_disk, the member - * size, ordering and even whole struct size may be different - * from cache_sb_disk. - */ struct cache_sb { + __u64 csum; __u64 offset; /* sector where this sb was written */ __u64 version; @@ -237,10 +172,7 @@ struct cache_sb { __u64 flags; __u64 seq; - - __u64 feature_compat; - __u64 feature_incompat; - __u64 feature_ro_compat; + __u64 pad[8]; union { struct { @@ -248,9 +180,10 @@ struct cache_sb { __u64 nbuckets; /* device size */ __u16 block_size; /* sectors */ + __u16 bucket_size; /* sectors */ + __u16 nr_in_set; __u16 nr_this_dev; - __u32 bucket_size; /* sectors */ }; struct { /* Backing devices */ @@ -277,8 +210,7 @@ struct cache_sb { static inline _Bool SB_IS_BDEV(const struct cache_sb *sb) { return sb->version == BCACHE_SB_VERSION_BDEV - || sb->version == BCACHE_SB_VERSION_BDEV_WITH_OFFSET - || sb->version == BCACHE_SB_VERSION_BDEV_WITH_FEATURES; + || sb->version == BCACHE_SB_VERSION_BDEV_WITH_OFFSET; } BITMASK(CACHE_SYNC, struct cache_sb, flags, 0, 1); diff --git a/original/uapi/linux/binfmts.h b/original/uapi/linux/binfmts.h index c6f9450..689025d 100644 --- a/original/uapi/linux/binfmts.h +++ b/original/uapi/linux/binfmts.h @@ -18,8 +18,4 @@ struct pt_regs; /* sizeof(linux_binprm->buf) */ #define BINPRM_BUF_SIZE 256 -/* preserve argv0 for the interpreter */ -#define AT_FLAGS_PRESERVE_ARGV0_BIT 0 -#define AT_FLAGS_PRESERVE_ARGV0 (1 << AT_FLAGS_PRESERVE_ARGV0_BIT) - #endif /* _UAPI_LINUX_BINFMTS_H */ diff --git a/original/uapi/linux/blkpg.h b/original/uapi/linux/blkpg.h index d0a64ee..ac6474e 100644 --- a/original/uapi/linux/blkpg.h +++ b/original/uapi/linux/blkpg.h @@ -2,6 +2,29 @@ #ifndef _UAPI__LINUX_BLKPG_H #define _UAPI__LINUX_BLKPG_H +/* + * Partition table and disk geometry handling + * + * A single ioctl with lots of subfunctions: + * + * Device number stuff: + * get_whole_disk() (given the device number of a partition, + * find the device number of the encompassing disk) + * get_all_partitions() (given the device number of a disk, return the + * device numbers of all its known partitions) + * + * Partition stuff: + * add_partition() + * delete_partition() + * test_partition_in_use() (also for test_disk_in_use) + * + * Geometry stuff: + * get_geometry() + * set_geometry() + * get_bios_drivedata() + * + * For today, only the partition stuff - aeb, 990515 + */ #include <linux/compiler.h> #include <linux/ioctl.h> @@ -29,8 +52,9 @@ struct blkpg_partition { long long start; /* starting offset in bytes */ long long length; /* length in bytes */ int pno; /* partition number */ - char devname[BLKPG_DEVNAMELTH]; /* unused / ignored */ - char volname[BLKPG_VOLNAMELTH]; /* unused / ignore */ + char devname[BLKPG_DEVNAMELTH]; /* partition name, like sda5 or c0d1p2, + to be used in kernel messages */ + char volname[BLKPG_VOLNAMELTH]; /* volume label */ }; #endif /* _UAPI__LINUX_BLKPG_H */ diff --git a/original/uapi/linux/blkzoned.h b/original/uapi/linux/blkzoned.h index 656a326..0cdef67 100644 --- a/original/uapi/linux/blkzoned.h +++ b/original/uapi/linux/blkzoned.h @@ -74,15 +74,6 @@ enum blk_zone_cond { }; /** - * enum blk_zone_report_flags - Feature flags of reported zone descriptors. - * - * @BLK_ZONE_REP_CAPACITY: Zone descriptor has capacity field. - */ -enum blk_zone_report_flags { - BLK_ZONE_REP_CAPACITY = (1 << 0), -}; - -/** * struct blk_zone - Zone descriptor for BLKREPORTZONE ioctl. * * @start: Zone start in 512 B sector units @@ -93,15 +84,12 @@ enum blk_zone_report_flags { * @non_seq: Flag indicating that the zone is using non-sequential resources * (for host-aware zoned block devices only). * @reset: Flag indicating that a zone reset is recommended. - * @resv: Padding for 8B alignment. - * @capacity: Zone usable capacity in 512 B sector units - * @reserved: Padding to 64 B to match the ZBC, ZAC and ZNS defined zone - * descriptor size. + * @reserved: Padding to 64 B to match the ZBC/ZAC defined zone descriptor size. * - * start, len, capacity and wp use the regular 512 B sector unit, regardless - * of the device logical block size. The overall structure size is 64 B to - * match the ZBC, ZAC and ZNS defined zone descriptor and allow support for - * future additional zone information. + * start, len and wp use the regular 512 B sector unit, regardless of the + * device logical block size. The overall structure size is 64 B to match the + * ZBC/ZAC defined zone descriptor and allow support for future additional + * zone information. */ struct blk_zone { __u64 start; /* Zone start sector */ @@ -111,9 +99,7 @@ struct blk_zone { __u8 cond; /* Zone condition */ __u8 non_seq; /* Non-sequential write resources active */ __u8 reset; /* Reset write pointer recommended */ - __u8 resv[4]; - __u64 capacity; /* Zone capacity in number of sectors */ - __u8 reserved[24]; + __u8 reserved[36]; }; /** @@ -121,7 +107,7 @@ struct blk_zone { * * @sector: starting sector of report * @nr_zones: IN maximum / OUT actual - * @flags: one or more flags as defined by enum blk_zone_report_flags. + * @reserved: padding to 16 byte alignment * @zones: Space to hold @nr_zones @zones entries on reply. * * The array of at most @nr_zones must follow this structure in memory. @@ -129,7 +115,7 @@ struct blk_zone { struct blk_zone_report { __u64 sector; __u32 nr_zones; - __u32 flags; + __u8 reserved[4]; struct blk_zone zones[0]; }; diff --git a/original/uapi/linux/bpf.h b/original/uapi/linux/bpf.h index 4ba4ef0..dbbcf0b 100644 --- a/original/uapi/linux/bpf.h +++ b/original/uapi/linux/bpf.h @@ -19,8 +19,7 @@ /* ld/ldx fields */ #define BPF_DW 0x18 /* double word (64-bit) */ -#define BPF_ATOMIC 0xc0 /* atomic memory ops - op type in immediate */ -#define BPF_XADD 0xc0 /* exclusive add - legacy name */ +#define BPF_XADD 0xc0 /* exclusive add */ /* alu/jmp fields */ #define BPF_MOV 0xb0 /* mov reg to reg */ @@ -44,11 +43,6 @@ #define BPF_CALL 0x80 /* function call */ #define BPF_EXIT 0x90 /* function return */ -/* atomic op type fields (stored in immediate) */ -#define BPF_FETCH 0x01 /* not an opcode on its own, used to build others */ -#define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */ -#define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */ - /* Register numbers */ enum { BPF_REG_0 = 0, @@ -87,12 +81,6 @@ struct bpf_cgroup_storage_key { __u32 attach_type; /* program attach type */ }; -union bpf_iter_link_info { - struct { - __u32 map_fd; - } map; -}; - /* BPF syscall commands, see bpf(2) man-page for details. */ enum bpf_cmd { BPF_MAP_CREATE, @@ -119,18 +107,6 @@ enum bpf_cmd { BPF_MAP_LOOKUP_AND_DELETE_ELEM, BPF_MAP_FREEZE, BPF_BTF_GET_NEXT_ID, - BPF_MAP_LOOKUP_BATCH, - BPF_MAP_LOOKUP_AND_DELETE_BATCH, - BPF_MAP_UPDATE_BATCH, - BPF_MAP_DELETE_BATCH, - BPF_LINK_CREATE, - BPF_LINK_UPDATE, - BPF_LINK_GET_FD_BY_ID, - BPF_LINK_GET_NEXT_ID, - BPF_ENABLE_STATS, - BPF_ITER_CREATE, - BPF_LINK_DETACH, - BPF_PROG_BIND_MAP, }; enum bpf_map_type { @@ -160,10 +136,6 @@ enum bpf_map_type { BPF_MAP_TYPE_STACK, BPF_MAP_TYPE_SK_STORAGE, BPF_MAP_TYPE_DEVMAP_HASH, - BPF_MAP_TYPE_STRUCT_OPS, - BPF_MAP_TYPE_RINGBUF, - BPF_MAP_TYPE_INODE_STORAGE, - BPF_MAP_TYPE_TASK_STORAGE, }; /* Note that tracing related programs such as @@ -202,10 +174,6 @@ enum bpf_prog_type { BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, BPF_PROG_TYPE_CGROUP_SOCKOPT, BPF_PROG_TYPE_TRACING, - BPF_PROG_TYPE_STRUCT_OPS, - BPF_PROG_TYPE_EXT, - BPF_PROG_TYPE_LSM, - BPF_PROG_TYPE_SK_LOOKUP, }; enum bpf_attach_type { @@ -235,35 +203,11 @@ enum bpf_attach_type { BPF_TRACE_RAW_TP, BPF_TRACE_FENTRY, BPF_TRACE_FEXIT, - BPF_MODIFY_RETURN, - BPF_LSM_MAC, - BPF_TRACE_ITER, - BPF_CGROUP_INET4_GETPEERNAME, - BPF_CGROUP_INET6_GETPEERNAME, - BPF_CGROUP_INET4_GETSOCKNAME, - BPF_CGROUP_INET6_GETSOCKNAME, - BPF_XDP_DEVMAP, - BPF_CGROUP_INET_SOCK_RELEASE, - BPF_XDP_CPUMAP, - BPF_SK_LOOKUP, - BPF_XDP, __MAX_BPF_ATTACH_TYPE }; #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE -enum bpf_link_type { - BPF_LINK_TYPE_UNSPEC = 0, - BPF_LINK_TYPE_RAW_TRACEPOINT = 1, - BPF_LINK_TYPE_TRACING = 2, - BPF_LINK_TYPE_CGROUP = 3, - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, - - MAX_BPF_LINK_TYPE, -}; - /* cgroup-bpf attach flags used in BPF_PROG_ATTACH command * * NONE(default): No further bpf programs allowed in the subtree. @@ -287,11 +231,6 @@ enum bpf_link_type { * When children program makes decision (like picking TCP CA or sock bind) * parent program has a chance to override it. * - * With BPF_F_ALLOW_MULTI a new program is added to the end of the list of - * programs for a cgroup. Though it's possible to replace an old program at - * any position by also specifying BPF_F_REPLACE flag and position itself in - * replace_bpf_fd attribute. Old program at this position will be released. - * * A cgroup with MULTI or OVERRIDE flag allows any attach flags in sub-cgroups. * A cgroup with NONE doesn't allow any programs in sub-cgroups. * Ex1: @@ -310,7 +249,6 @@ enum bpf_link_type { */ #define BPF_F_ALLOW_OVERRIDE (1U << 0) #define BPF_F_ALLOW_MULTI (1U << 1) -#define BPF_F_REPLACE (1U << 2) /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the * verifier will perform strict alignment checking as if the kernel @@ -354,45 +292,19 @@ enum bpf_link_type { /* The verifier internal test flag. Behavior is undefined */ #define BPF_F_TEST_STATE_FREQ (1U << 3) -/* If BPF_F_SLEEPABLE is used in BPF_PROG_LOAD command, the verifier will - * restrict map and helper usage for such programs. Sleepable BPF programs can - * only be attached to hooks where kernel execution context allows sleeping. - * Such programs are allowed to use helpers that may sleep like - * bpf_copy_from_user(). - */ -#define BPF_F_SLEEPABLE (1U << 4) - /* When BPF ldimm64's insn[0].src_reg != 0 then this can have - * the following extensions: - * - * insn[0].src_reg: BPF_PSEUDO_MAP_FD - * insn[0].imm: map fd - * insn[1].imm: 0 - * insn[0].off: 0 - * insn[1].off: 0 - * ldimm64 rewrite: address of map - * verifier type: CONST_PTR_TO_MAP + * two extensions: + * + * insn[0].src_reg: BPF_PSEUDO_MAP_FD BPF_PSEUDO_MAP_VALUE + * insn[0].imm: map fd map fd + * insn[1].imm: 0 offset into value + * insn[0].off: 0 0 + * insn[1].off: 0 0 + * ldimm64 rewrite: address of map address of map[0]+offset + * verifier type: CONST_PTR_TO_MAP PTR_TO_MAP_VALUE */ #define BPF_PSEUDO_MAP_FD 1 -/* insn[0].src_reg: BPF_PSEUDO_MAP_VALUE - * insn[0].imm: map fd - * insn[1].imm: offset into value - * insn[0].off: 0 - * insn[1].off: 0 - * ldimm64 rewrite: address of map[0]+offset - * verifier type: PTR_TO_MAP_VALUE - */ #define BPF_PSEUDO_MAP_VALUE 2 -/* insn[0].src_reg: BPF_PSEUDO_BTF_ID - * insn[0].imm: kernel btd id of VAR - * insn[1].imm: 0 - * insn[0].off: 0 - * insn[1].off: 0 - * ldimm64 rewrite: address of the kernel variable - * verifier type: PTR_TO_BTF_ID or PTR_TO_MEM, depending on whether the var - * is struct/union. - */ -#define BPF_PSEUDO_BTF_ID 3 /* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative * offset to another bpf function @@ -400,72 +312,48 @@ enum bpf_link_type { #define BPF_PSEUDO_CALL 1 /* flags for BPF_MAP_UPDATE_ELEM command */ -enum { - BPF_ANY = 0, /* create new element or update existing */ - BPF_NOEXIST = 1, /* create new element if it didn't exist */ - BPF_EXIST = 2, /* update existing element */ - BPF_F_LOCK = 4, /* spin_lock-ed map_lookup/map_update */ -}; +#define BPF_ANY 0 /* create new element or update existing */ +#define BPF_NOEXIST 1 /* create new element if it didn't exist */ +#define BPF_EXIST 2 /* update existing element */ +#define BPF_F_LOCK 4 /* spin_lock-ed map_lookup/map_update */ /* flags for BPF_MAP_CREATE command */ -enum { - BPF_F_NO_PREALLOC = (1U << 0), +#define BPF_F_NO_PREALLOC (1U << 0) /* Instead of having one common LRU list in the * BPF_MAP_TYPE_LRU_[PERCPU_]HASH map, use a percpu LRU list * which can scale and perform better. * Note, the LRU nodes (including free nodes) cannot be moved * across different LRU lists. */ - BPF_F_NO_COMMON_LRU = (1U << 1), +#define BPF_F_NO_COMMON_LRU (1U << 1) /* Specify numa node during map creation */ - BPF_F_NUMA_NODE = (1U << 2), +#define BPF_F_NUMA_NODE (1U << 2) + +#define BPF_OBJ_NAME_LEN 16U /* Flags for accessing BPF object from syscall side. */ - BPF_F_RDONLY = (1U << 3), - BPF_F_WRONLY = (1U << 4), +#define BPF_F_RDONLY (1U << 3) +#define BPF_F_WRONLY (1U << 4) /* Flag for stack_map, store build_id+offset instead of pointer */ - BPF_F_STACK_BUILD_ID = (1U << 5), +#define BPF_F_STACK_BUILD_ID (1U << 5) /* Zero-initialize hash function seed. This should only be used for testing. */ - BPF_F_ZERO_SEED = (1U << 6), +#define BPF_F_ZERO_SEED (1U << 6) /* Flags for accessing BPF object from program side. */ - BPF_F_RDONLY_PROG = (1U << 7), - BPF_F_WRONLY_PROG = (1U << 8), +#define BPF_F_RDONLY_PROG (1U << 7) +#define BPF_F_WRONLY_PROG (1U << 8) /* Clone map from listener for newly accepted socket */ - BPF_F_CLONE = (1U << 9), +#define BPF_F_CLONE (1U << 9) /* Enable memory-mapping BPF map */ - BPF_F_MMAPABLE = (1U << 10), - -/* Share perf_event among processes */ - BPF_F_PRESERVE_ELEMS = (1U << 11), - -/* Create a map that is suitable to be an inner map with dynamic max entries */ - BPF_F_INNER_MAP = (1U << 12), -}; +#define BPF_F_MMAPABLE (1U << 10) -/* Flags for BPF_PROG_QUERY. */ - -/* Query effective (directly attached + inherited from ancestor cgroups) - * programs that will be executed for events within a cgroup. - * attach_flags with this flag are returned only for directly attached programs. - */ +/* flags for BPF_PROG_QUERY */ #define BPF_F_QUERY_EFFECTIVE (1U << 0) -/* Flags for BPF_PROG_TEST_RUN */ - -/* If set, run the test on the cpu specified by bpf_attr.test.cpu */ -#define BPF_F_TEST_RUN_ON_CPU (1U << 0) - -/* type for BPF_ENABLE_STATS */ -enum bpf_stats_type { - /* enabled run_time_ns and run_cnt */ - BPF_STATS_RUN_TIME = 0, -}; - enum bpf_stack_build_id_status { /* user space need an empty entry to identify end of a trace */ BPF_STACK_BUILD_ID_EMPTY = 0, @@ -485,8 +373,6 @@ struct bpf_stack_build_id { }; }; -#define BPF_OBJ_NAME_LEN 16U - union bpf_attr { struct { /* anonymous struct used by BPF_MAP_CREATE command */ __u32 map_type; /* one of enum bpf_map_type */ @@ -505,10 +391,6 @@ union bpf_attr { __u32 btf_fd; /* fd pointing to a BTF type data */ __u32 btf_key_type_id; /* BTF type_id of the key */ __u32 btf_value_type_id; /* BTF type_id of the value */ - __u32 btf_vmlinux_value_type_id;/* BTF type_id of a kernel- - * struct stored as the - * map value - */ }; struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */ @@ -521,23 +403,6 @@ union bpf_attr { __u64 flags; }; - struct { /* struct used by BPF_MAP_*_BATCH commands */ - __aligned_u64 in_batch; /* start batch, - * NULL to start from beginning - */ - __aligned_u64 out_batch; /* output: next start batch */ - __aligned_u64 keys; - __aligned_u64 values; - __u32 count; /* input/output: - * input: # of key/value - * elements - * output: # of filled elements - */ - __u32 map_fd; - __u64 elem_flags; - __u64 flags; - } batch; - struct { /* anonymous struct used by BPF_PROG_LOAD command */ __u32 prog_type; /* one of enum bpf_prog_type */ __u32 insn_cnt; @@ -563,12 +428,7 @@ union bpf_attr { __aligned_u64 line_info; /* line info */ __u32 line_info_cnt; /* number of bpf_line_info records */ __u32 attach_btf_id; /* in-kernel BTF type id to attach to */ - union { - /* valid prog_fd to attach to bpf prog */ - __u32 attach_prog_fd; - /* or valid module BTF object fd or 0 to attach to vmlinux */ - __u32 attach_btf_obj_fd; - }; + __u32 attach_prog_fd; /* 0 to attach to vmlinux */ }; struct { /* anonymous struct used by BPF_OBJ_* commands */ @@ -582,10 +442,6 @@ union bpf_attr { __u32 attach_bpf_fd; /* eBPF program to attach */ __u32 attach_type; __u32 attach_flags; - __u32 replace_bpf_fd; /* previously attached eBPF - * program to replace if - * BPF_F_REPLACE is used - */ }; struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */ @@ -607,8 +463,6 @@ union bpf_attr { */ __aligned_u64 ctx_in; __aligned_u64 ctx_out; - __u32 flags; - __u32 cpu; } test; struct { /* anonymous struct used by BPF_*_GET_*_ID */ @@ -617,7 +471,6 @@ union bpf_attr { __u32 prog_id; __u32 map_id; __u32 btf_id; - __u32 link_id; }; __u32 next_id; __u32 open_flags; @@ -638,7 +491,7 @@ union bpf_attr { __u32 prog_cnt; } query; - struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */ + struct { __u64 name; __u32 prog_fd; } raw_tracepoint; @@ -666,53 +519,6 @@ union bpf_attr { __u64 probe_offset; /* output: probe_offset */ __u64 probe_addr; /* output: probe_addr */ } task_fd_query; - - struct { /* struct used by BPF_LINK_CREATE command */ - __u32 prog_fd; /* eBPF program to attach */ - union { - __u32 target_fd; /* object to attach to */ - __u32 target_ifindex; /* target ifindex */ - }; - __u32 attach_type; /* attach type */ - __u32 flags; /* extra flags */ - union { - __u32 target_btf_id; /* btf_id of target to attach to */ - struct { - __aligned_u64 iter_info; /* extra bpf_iter_link_info */ - __u32 iter_info_len; /* iter_info length */ - }; - }; - } link_create; - - struct { /* struct used by BPF_LINK_UPDATE command */ - __u32 link_fd; /* link fd */ - /* new program fd to update link with */ - __u32 new_prog_fd; - __u32 flags; /* extra flags */ - /* expected link's program fd; is specified only if - * BPF_F_REPLACE flag is set in flags */ - __u32 old_prog_fd; - } link_update; - - struct { - __u32 link_fd; - } link_detach; - - struct { /* struct used by BPF_ENABLE_STATS command */ - __u32 type; - } enable_stats; - - struct { /* struct used by BPF_ITER_CREATE command */ - __u32 link_fd; - __u32 flags; - } iter_create; - - struct { /* struct used by BPF_PROG_BIND_MAP command */ - __u32 prog_fd; - __u32 map_fd; - __u32 flags; /* extra flags */ - } prog_bind_map; - } __attribute__((aligned(8))); /* The description below is an attempt at providing documentation to eBPF @@ -739,7 +545,7 @@ union bpf_attr { * Map value associated to *key*, or **NULL** if no entry was * found. * - * long bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags) + * int bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags) * Description * Add or update the value of the entry associated to *key* in * *map* with *value*. *flags* is one of: @@ -757,31 +563,29 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_map_delete_elem(struct bpf_map *map, const void *key) + * int bpf_map_delete_elem(struct bpf_map *map, const void *key) * Description * Delete entry with *key* from *map*. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr) + * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr) * Description * For tracing programs, safely attempt to read *size* bytes from * kernel space address *unsafe_ptr* and store the data in *dst*. * - * Generally, use **bpf_probe_read_user**\ () or - * **bpf_probe_read_kernel**\ () instead. + * Generally, use bpf_probe_read_user() or bpf_probe_read_kernel() + * instead. * Return * 0 on success, or a negative error in case of failure. * * u64 bpf_ktime_get_ns(void) * Description * Return the time elapsed since system boot, in nanoseconds. - * Does not include time the system was suspended. - * See: **clock_gettime**\ (**CLOCK_MONOTONIC**) * Return * Current *ktime*. * - * long bpf_trace_printk(const char *fmt, u32 fmt_size, ...) + * int bpf_trace_printk(const char *fmt, u32 fmt_size, ...) * Description * This helper is a "printk()-like" facility for debugging. It * prints a message defined by format *fmt* (of size *fmt_size*) @@ -831,7 +635,7 @@ union bpf_attr { * * Also, note that **bpf_trace_printk**\ () is slow, and should * only be used for debugging purposes. For this reason, a notice - * block (spanning several lines) is printed to kernel logs and + * bloc (spanning several lines) is printed to kernel logs and * states that the helper should not be used "for production use" * the first time this helper is used (or more precisely, when * **trace_printk**\ () buffers are allocated). For passing values @@ -861,7 +665,7 @@ union bpf_attr { * Return * The SMP id of the processor running the program. * - * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags) + * int bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags) * Description * Store *len* bytes from address *from* into the packet * associated to *skb*, at *offset*. *flags* are a combination of @@ -878,7 +682,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size) + * int bpf_l3_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 size) * Description * Recompute the layer 3 (e.g. IP) checksum for the packet * associated to *skb*. Computation is incremental, so the helper @@ -903,7 +707,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags) + * int bpf_l4_csum_replace(struct sk_buff *skb, u32 offset, u64 from, u64 to, u64 flags) * Description * Recompute the layer 4 (e.g. TCP, UDP or ICMP) checksum for the * packet associated to *skb*. Computation is incremental, so the @@ -935,7 +739,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index) + * int bpf_tail_call(void *ctx, struct bpf_map *prog_array_map, u32 index) * Description * This special helper is used to trigger a "tail call", or in * other words, to jump into another eBPF program. The same stack @@ -966,7 +770,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags) + * int bpf_clone_redirect(struct sk_buff *skb, u32 ifindex, u64 flags) * Description * Clone and redirect the packet associated to *skb* to another * net device of index *ifindex*. Both ingress and egress @@ -1002,7 +806,7 @@ union bpf_attr { * A 64-bit integer containing the current GID and UID, and * created as such: *current_gid* **<< 32 \|** *current_uid*. * - * long bpf_get_current_comm(void *buf, u32 size_of_buf) + * int bpf_get_current_comm(void *buf, u32 size_of_buf) * Description * Copy the **comm** attribute of the current task into *buf* of * *size_of_buf*. The **comm** attribute contains the name of @@ -1039,7 +843,7 @@ union bpf_attr { * Return * The classid, or 0 for the default unconfigured classid. * - * long bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci) + * int bpf_skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci) * Description * Push a *vlan_tci* (VLAN tag control information) of protocol * *vlan_proto* to the packet associated to *skb*, then update @@ -1055,7 +859,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_vlan_pop(struct sk_buff *skb) + * int bpf_skb_vlan_pop(struct sk_buff *skb) * Description * Pop a VLAN header from the packet associated to *skb*. * @@ -1067,7 +871,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags) + * int bpf_skb_get_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags) * Description * Get tunnel metadata. This helper takes a pointer *key* to an * empty **struct bpf_tunnel_key** of **size**, that will be @@ -1097,14 +901,14 @@ union bpf_attr { * * int ret; * struct bpf_tunnel_key key = {}; - * + * * ret = bpf_skb_get_tunnel_key(skb, &key, sizeof(key), 0); * if (ret < 0) * return TC_ACT_SHOT; // drop packet - * + * * if (key.remote_ipv4 != 0x0a000001) * return TC_ACT_SHOT; // drop packet - * + * * return TC_ACT_OK; // accept packet * * This interface can also be used with all encapsulation devices @@ -1118,7 +922,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags) + * int bpf_skb_set_tunnel_key(struct sk_buff *skb, struct bpf_tunnel_key *key, u32 size, u64 flags) * Description * Populate tunnel metadata for packet associated to *skb.* The * tunnel metadata is set to the contents of *key*, of *size*. The @@ -1184,7 +988,7 @@ union bpf_attr { * The value of the perf event counter read from the map, or a * negative error code in case of failure. * - * long bpf_redirect(u32 ifindex, u64 flags) + * int bpf_redirect(u32 ifindex, u64 flags) * Description * Redirect the packet to another net device of index *ifindex*. * This helper is somewhat similar to **bpf_clone_redirect**\ @@ -1198,9 +1002,9 @@ union bpf_attr { * supports redirection to the egress interface, and accepts no * flag at all. * - * The same effect can also be attained with the more generic - * **bpf_redirect_map**\ (), which uses a BPF map to store the - * redirect target instead of providing it directly to the helper. + * The same effect can be attained with the more generic + * **bpf_redirect_map**\ (), which requires specific maps to be + * used but offers better performance. * Return * For XDP, the helper returns **XDP_REDIRECT** on success or * **XDP_ABORTED** on error. For other program types, the values @@ -1211,7 +1015,7 @@ union bpf_attr { * Description * Retrieve the realm or the route, that is to say the * **tclassid** field of the destination for the *skb*. The - * identifier retrieved is a user-provided tag, similar to the + * indentifier retrieved is a user-provided tag, similar to the * one used with the net_cls cgroup (see description for * **bpf_get_cgroup_classid**\ () helper), but here this tag is * held by a route (a destination entry), not by a task. @@ -1231,7 +1035,7 @@ union bpf_attr { * The realm of the route for the packet associated to *skb*, or 0 * if none was found. * - * long bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) + * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) * Description * Write raw *data* blob into a special BPF perf event held by * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf @@ -1276,7 +1080,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len) + * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len) * Description * This helper was provided as an easy way to load data from a * packet. It can be used to load *len* bytes from *offset* from @@ -1293,7 +1097,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags) + * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags) * Description * Walk a user or a kernel stack and return its id. To achieve * this, the helper needs *ctx*, which is a pointer to the context @@ -1362,7 +1166,7 @@ union bpf_attr { * The checksum result, or a negative error code in case of * failure. * - * long bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size) + * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size) * Description * Retrieve tunnel options metadata for the packet associated to * *skb*, and store the raw tunnel option data to the buffer *opt* @@ -1380,7 +1184,7 @@ union bpf_attr { * Return * The size of the option data retrieved. * - * long bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size) + * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size) * Description * Set tunnel options metadata for the packet associated to *skb* * to the option data contained in the raw buffer *opt* of *size*. @@ -1390,7 +1194,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags) + * int bpf_skb_change_proto(struct sk_buff *skb, __be16 proto, u64 flags) * Description * Change the protocol of the *skb* to *proto*. Currently * supported are transition from IPv4 to IPv6, and from IPv6 to @@ -1417,7 +1221,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_change_type(struct sk_buff *skb, u32 type) + * int bpf_skb_change_type(struct sk_buff *skb, u32 type) * Description * Change the packet type for the packet associated to *skb*. This * comes down to setting *skb*\ **->pkt_type** to *type*, except @@ -1444,7 +1248,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index) + * int bpf_skb_under_cgroup(struct sk_buff *skb, struct bpf_map *map, u32 index) * Description * Check whether *skb* is a descendant of the cgroup2 held by * *map* of type **BPF_MAP_TYPE_CGROUP_ARRAY**, at *index*. @@ -1475,7 +1279,7 @@ union bpf_attr { * Return * A pointer to the current task struct. * - * long bpf_probe_write_user(void *dst, const void *src, u32 len) + * int bpf_probe_write_user(void *dst, const void *src, u32 len) * Description * Attempt in a safe way to write *len* bytes from the buffer * *src* to *dst* in memory. It only works for threads that are in @@ -1494,7 +1298,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_current_task_under_cgroup(struct bpf_map *map, u32 index) + * int bpf_current_task_under_cgroup(struct bpf_map *map, u32 index) * Description * Check whether the probe is being run is the context of a given * subset of the cgroup2 hierarchy. The cgroup2 to test is held by @@ -1502,11 +1306,11 @@ union bpf_attr { * Return * The return value depends on the result of the test, and can be: * - * * 0, if current task belongs to the cgroup2. - * * 1, if current task does not belong to the cgroup2. + * * 0, if the *skb* task belongs to the cgroup2. + * * 1, if the *skb* task does not belong to the cgroup2. * * A negative error code, if an error occurred. * - * long bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags) + * int bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags) * Description * Resize (trim or grow) the packet associated to *skb* to the * new *len*. The *flags* are reserved for future usage, and must @@ -1530,7 +1334,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_pull_data(struct sk_buff *skb, u32 len) + * int bpf_skb_pull_data(struct sk_buff *skb, u32 len) * Description * Pull in non-linear data in case the *skb* is non-linear and not * all of *len* are part of the linear section. Make *len* bytes @@ -1586,7 +1390,7 @@ union bpf_attr { * recalculation the next time the kernel tries to access this * hash or when the **bpf_get_hash_recalc**\ () helper is called. * - * long bpf_get_numa_node_id(void) + * int bpf_get_numa_node_id(void) * Description * Return the id of the current NUMA node. The primary use case * for this helper is the selection of sockets for the local NUMA @@ -1597,7 +1401,7 @@ union bpf_attr { * Return * The id of current NUMA node. * - * long bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags) + * int bpf_skb_change_head(struct sk_buff *skb, u32 len, u64 flags) * Description * Grows headroom of packet associated to *skb* and adjusts the * offset of the MAC header accordingly, adding *len* bytes of @@ -1618,7 +1422,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta) + * int bpf_xdp_adjust_head(struct xdp_buff *xdp_md, int delta) * Description * Adjust (move) *xdp_md*\ **->data** by *delta* bytes. Note that * it is possible to use a negative value for *delta*. This helper @@ -1633,14 +1437,14 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr) + * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr) * Description * Copy a NUL terminated string from an unsafe kernel address - * *unsafe_ptr* to *dst*. See **bpf_probe_read_kernel_str**\ () for + * *unsafe_ptr* to *dst*. See bpf_probe_read_kernel_str() for * more details. * - * Generally, use **bpf_probe_read_user_str**\ () or - * **bpf_probe_read_kernel_str**\ () instead. + * Generally, use bpf_probe_read_user_str() or bpf_probe_read_kernel_str() + * instead. * Return * On success, the strictly positive length of the string, * including the trailing NUL character. On error, a negative @@ -1656,30 +1460,22 @@ union bpf_attr { * networking traffic statistics as it provides a global socket * identifier that can be assumed unique. * Return - * A 8-byte long unique number on success, or 0 if the socket - * field is missing inside *skb*. + * A 8-byte long non-decreasing number on success, or 0 if the + * socket field is missing inside *skb*. * * u64 bpf_get_socket_cookie(struct bpf_sock_addr *ctx) * Description * Equivalent to bpf_get_socket_cookie() helper that accepts * *skb*, but gets socket from **struct bpf_sock_addr** context. * Return - * A 8-byte long unique number. + * A 8-byte long non-decreasing number. * * u64 bpf_get_socket_cookie(struct bpf_sock_ops *ctx) * Description - * Equivalent to **bpf_get_socket_cookie**\ () helper that accepts + * Equivalent to bpf_get_socket_cookie() helper that accepts * *skb*, but gets socket from **struct bpf_sock_ops** context. * Return - * A 8-byte long unique number. - * - * u64 bpf_get_socket_cookie(struct sock *sk) - * Description - * Equivalent to **bpf_get_socket_cookie**\ () helper that accepts - * *sk*, but gets socket from a BTF **struct sock**. This helper - * also works for sleepable programs. - * Return - * A 8-byte long unique number or 0 if *sk* is NULL. + * A 8-byte long non-decreasing number. * * u32 bpf_get_socket_uid(struct sk_buff *skb) * Return @@ -1689,14 +1485,14 @@ union bpf_attr { * is returned (note that **overflowuid** might also be the actual * UID value for the socket). * - * long bpf_set_hash(struct sk_buff *skb, u32 hash) + * u32 bpf_set_hash(struct sk_buff *skb, u32 hash) * Description * Set the full hash for *skb* (set the field *skb*\ **->hash**) * to value *hash*. * Return * 0 * - * long bpf_setsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen) + * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen) * Description * Emulate a call to **setsockopt()** on the socket associated to * *bpf_socket*, which must be a full socket. The *level* at @@ -1704,41 +1500,25 @@ union bpf_attr { * must be specified, see **setsockopt(2)** for more information. * The option value of length *optlen* is pointed by *optval*. * - * *bpf_socket* should be one of the following: - * - * * **struct bpf_sock_ops** for **BPF_PROG_TYPE_SOCK_OPS**. - * * **struct bpf_sock_addr** for **BPF_CGROUP_INET4_CONNECT** - * and **BPF_CGROUP_INET6_CONNECT**. - * * This helper actually implements a subset of **setsockopt()**. * It supports the following *level*\ s: * * * **SOL_SOCKET**, which supports the following *optname*\ s: * **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**, - * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**, - * **SO_BINDTODEVICE**, **SO_KEEPALIVE**. + * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**. * * **IPPROTO_TCP**, which supports the following *optname*\ s: * **TCP_CONGESTION**, **TCP_BPF_IW**, - * **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**, - * **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**, - * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**. + * **TCP_BPF_SNDCWND_CLAMP**. * * **IPPROTO_IP**, which supports *optname* **IP_TOS**. * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags) + * int bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags) * Description * Grow or shrink the room for data in the packet associated to * *skb* by *len_diff*, and according to the selected *mode*. * - * By default, the helper will reset any offloaded checksum - * indicator of the skb to CHECKSUM_NONE. This can be avoided - * by the following flag: - * - * * **BPF_F_ADJ_ROOM_NO_CSUM_RESET**: Do not reset offloaded - * checksum data of the skb to CHECKSUM_NONE. - * * There are two supported modes at this time: * * * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer @@ -1773,7 +1553,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags) + * int bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags) * Description * Redirect the packet to the endpoint referenced by *map* at * index *key*. Depending on its type, this *map* can contain @@ -1784,17 +1564,19 @@ union bpf_attr { * * The lower two bits of *flags* are used as the return code if * the map lookup fails. This is so that the return value can be - * one of the XDP program return codes up to **XDP_TX**, as chosen - * by the caller. Any higher bits in the *flags* argument must be + * one of the XDP program return codes up to XDP_TX, as chosen by + * the caller. Any higher bits in the *flags* argument must be * unset. * - * See also **bpf_redirect**\ (), which only supports redirecting - * to an ifindex, but doesn't require a map to do so. + * When used to redirect packets to net devices, this helper + * provides a high performance increase over **bpf_redirect**\ (). + * This is due to various implementation details of the underlying + * mechanisms, one of which is the fact that **bpf_redirect_map**\ + * () tries to send packet as a "bulk" to the device. * Return - * **XDP_REDIRECT** on success, or the value of the two lower bits - * of the *flags* argument on error. + * **XDP_REDIRECT** on success, or **XDP_ABORTED** on error. * - * long bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags) + * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags) * Description * Redirect the packet to the socket referenced by *map* (of type * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and @@ -1805,7 +1587,7 @@ union bpf_attr { * Return * **SK_PASS** on success, or **SK_DROP** on error. * - * long bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags) + * int bpf_sock_map_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags) * Description * Add an entry to, or update a *map* referencing sockets. The * *skops* is used as a new value for the entry associated to @@ -1824,7 +1606,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta) + * int bpf_xdp_adjust_meta(struct xdp_buff *xdp_md, int delta) * Description * Adjust the address pointed by *xdp_md*\ **->data_meta** by * *delta* (which can be positive or negative). Note that this @@ -1853,7 +1635,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size) + * int bpf_perf_event_read_value(struct bpf_map *map, u64 flags, struct bpf_perf_event_value *buf, u32 buf_size) * Description * Read the value of a perf event counter, and store it into *buf* * of size *buf_size*. This helper relies on a *map* of type @@ -1897,13 +1679,13 @@ union bpf_attr { * the time running for event since last normalization. The * enabled and running times are accumulated since the perf event * open. To achieve scaling factor between two invocations of an - * eBPF program, users can use CPU id as the key (which is + * eBPF program, users can can use CPU id as the key (which is * typical for perf array usage model) to remember the previous * value and do the calculation inside the eBPF program. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size) + * int bpf_perf_prog_read_value(struct bpf_perf_event_data *ctx, struct bpf_perf_event_value *buf, u32 buf_size) * Description * For en eBPF program attached to a perf event, retrieve the * value of the event counter associated to *ctx* and store it in @@ -1914,7 +1696,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_getsockopt(void *bpf_socket, int level, int optname, void *optval, int optlen) + * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen) * Description * Emulate a call to **getsockopt()** on the socket associated to * *bpf_socket*, which must be a full socket. The *level* at @@ -1923,12 +1705,6 @@ union bpf_attr { * The retrieved value is stored in the structure pointed by * *opval* and of length *optlen*. * - * *bpf_socket* should be one of the following: - * - * * **struct bpf_sock_ops** for **BPF_PROG_TYPE_SOCK_OPS**. - * * **struct bpf_sock_addr** for **BPF_CGROUP_INET4_CONNECT** - * and **BPF_CGROUP_INET6_CONNECT**. - * * This helper actually implements a subset of **getsockopt()**. * It supports the following *level*\ s: * @@ -1939,14 +1715,14 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_override_return(struct pt_regs *regs, u64 rc) + * int bpf_override_return(struct pt_regs *regs, u64 rc) * Description * Used for error injection, this helper uses kprobes to override * the return value of the probed function, and to set it to *rc*. * The first argument is the context *regs* on which the kprobe * works. * - * This helper works by setting the PC (program counter) + * This helper works by setting setting the PC (program counter) * to an override function which is run in place of the original * probed function. This means the probed function is not run at * all. The replacement function just returns with the required @@ -1964,7 +1740,7 @@ union bpf_attr { * Return * 0 * - * long bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval) + * int bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *bpf_sock, int argval) * Description * Attempt to set the value of the **bpf_sock_ops_cb_flags** field * for the full TCP socket associated to *bpf_sock_ops* to @@ -2008,7 +1784,7 @@ union bpf_attr { * be set is returned (which comes down to 0 if all bits were set * as required). * - * long bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags) + * int bpf_msg_redirect_map(struct sk_msg_buff *msg, struct bpf_map *map, u32 key, u64 flags) * Description * This helper is used in programs implementing policies at the * socket level. If the message *msg* is allowed to pass (i.e. if @@ -2022,7 +1798,7 @@ union bpf_attr { * Return * **SK_PASS** on success, or **SK_DROP** on error. * - * long bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes) + * int bpf_msg_apply_bytes(struct sk_msg_buff *msg, u32 bytes) * Description * For socket policies, apply the verdict of the eBPF program to * the next *bytes* (number of bytes) of message *msg*. @@ -2056,7 +1832,7 @@ union bpf_attr { * Return * 0 * - * long bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes) + * int bpf_msg_cork_bytes(struct sk_msg_buff *msg, u32 bytes) * Description * For socket policies, prevent the execution of the verdict eBPF * program for message *msg* until *bytes* (byte number) have been @@ -2074,7 +1850,7 @@ union bpf_attr { * Return * 0 * - * long bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags) + * int bpf_msg_pull_data(struct sk_msg_buff *msg, u32 start, u32 end, u64 flags) * Description * For socket policies, pull in non-linear data from user space * for *msg* and set pointers *msg*\ **->data** and *msg*\ @@ -2105,7 +1881,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len) + * int bpf_bind(struct bpf_sock_addr *ctx, struct sockaddr *addr, int addr_len) * Description * Bind the socket associated to *ctx* to the address pointed by * *addr*, of length *addr_len*. This allows for making outgoing @@ -2115,19 +1891,18 @@ union bpf_attr { * * This helper works for IPv4 and IPv6, TCP and UDP sockets. The * domain (*addr*\ **->sa_family**) must be **AF_INET** (or - * **AF_INET6**). It's advised to pass zero port (**sin_port** - * or **sin6_port**) which triggers IP_BIND_ADDRESS_NO_PORT-like - * behavior and lets the kernel efficiently pick up an unused - * port as long as 4-tuple is unique. Passing non-zero port might - * lead to degraded performance. + * **AF_INET6**). Looking for a free port to bind to can be + * expensive, therefore binding to port is not permitted by the + * helper: *addr*\ **->sin_port** (or **sin6_port**, respectively) + * must be set to zero. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta) + * int bpf_xdp_adjust_tail(struct xdp_buff *xdp_md, int delta) * Description * Adjust (move) *xdp_md*\ **->data_end** by *delta* bytes. It is - * possible to both shrink and grow the packet tail. - * Shrink done via *delta* being a negative integer. + * only possible to shrink the packet as of this writing, + * therefore *delta* must be a negative integer. * * A call to this helper is susceptible to change the underlying * packet buffer. Therefore, at load time, all checks on pointers @@ -2137,7 +1912,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags) + * int bpf_skb_get_xfrm_state(struct sk_buff *skb, u32 index, struct bpf_xfrm_state *xfrm_state, u32 size, u64 flags) * Description * Retrieve the XFRM state (IP transform framework, see also * **ip-xfrm(8)**) at *index* in XFRM "security path" for *skb*. @@ -2153,7 +1928,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags) + * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags) * Description * Return a user or a kernel stack in bpf program provided buffer. * To achieve this, the helper needs *ctx*, which is a pointer @@ -2186,7 +1961,7 @@ union bpf_attr { * A non-negative value equal to or less than *size* on success, * or a negative error in case of failure. * - * long bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header) + * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header) * Description * This helper is similar to **bpf_skb_load_bytes**\ () in that * it provides an easy way to load *len* bytes from *offset* @@ -2208,7 +1983,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags) + * int bpf_fib_lookup(void *ctx, struct bpf_fib_lookup *params, int plen, u32 flags) * Description * Do FIB lookup in kernel tables using parameters in *params*. * If lookup is successful and result shows packet is to be @@ -2239,10 +2014,7 @@ union bpf_attr { * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the * packet is not forwarded or needs assist from full stack * - * If lookup fails with BPF_FIB_LKUP_RET_FRAG_NEEDED, then the MTU - * was exceeded and output params->mtu_result contains the MTU. - * - * long bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags) + * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags) * Description * Add an entry to, or update a sockhash *map* referencing sockets. * The *skops* is used as a new value for the entry associated to @@ -2261,7 +2033,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags) + * int bpf_msg_redirect_hash(struct sk_msg_buff *msg, struct bpf_map *map, void *key, u64 flags) * Description * This helper is used in programs implementing policies at the * socket level. If the message *msg* is allowed to pass (i.e. if @@ -2275,11 +2047,11 @@ union bpf_attr { * Return * **SK_PASS** on success, or **SK_DROP** on error. * - * long bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags) + * int bpf_sk_redirect_hash(struct sk_buff *skb, struct bpf_map *map, void *key, u64 flags) * Description * This helper is used in programs implementing policies at the * skb socket level. If the sk_buff *skb* is allowed to pass (i.e. - * if the verdict eBPF program returns **SK_PASS**), redirect it + * if the verdeict eBPF program returns **SK_PASS**), redirect it * to the socket referenced by *map* (of type * **BPF_MAP_TYPE_SOCKHASH**) using hash *key*. Both ingress and * egress interfaces can be used for redirection. The @@ -2289,7 +2061,7 @@ union bpf_attr { * Return * **SK_PASS** on success, or **SK_DROP** on error. * - * long bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len) + * int bpf_lwt_push_encap(struct sk_buff *skb, u32 type, void *hdr, u32 len) * Description * Encapsulate the packet associated to *skb* within a Layer 3 * protocol header. This header is provided in the buffer at @@ -2326,7 +2098,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len) + * int bpf_lwt_seg6_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len) * Description * Store *len* bytes from address *from* into the packet * associated to *skb*, at *offset*. Only the flags, tag and TLVs @@ -2341,7 +2113,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta) + * int bpf_lwt_seg6_adjust_srh(struct sk_buff *skb, u32 offset, s32 delta) * Description * Adjust the size allocated to TLVs in the outermost IPv6 * Segment Routing Header contained in the packet associated to @@ -2357,7 +2129,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len) + * int bpf_lwt_seg6_action(struct sk_buff *skb, u32 action, void *param, u32 param_len) * Description * Apply an IPv6 Segment Routing action of type *action* to the * packet associated to *skb*. Each action takes a parameter @@ -2386,7 +2158,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_rc_repeat(void *ctx) + * int bpf_rc_repeat(void *ctx) * Description * This helper is used in programs implementing IR decoding, to * report a successfully decoded repeat key message. This delays @@ -2405,7 +2177,7 @@ union bpf_attr { * Return * 0 * - * long bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle) + * int bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle) * Description * This helper is used in programs implementing IR decoding, to * report a successfully decoded key press with *scancode*, @@ -2416,7 +2188,7 @@ union bpf_attr { * **bpf_rc_keydown**\ () again with the same values, or calling * **bpf_rc_repeat**\ (). * - * Some protocols include a toggle bit, in case the button was + * Some protocols include a toggle bit, in case the button was * released and pressed again between consecutive scancodes. * * The *ctx* should point to the lirc sample as passed into @@ -2465,12 +2237,12 @@ union bpf_attr { * running simultaneously. * * A user should care about the synchronization by himself. - * For example, by using the **BPF_ATOMIC** instructions to alter + * For example, by using the **BPF_STX_XADD** instruction to alter * the shared data. * Return * A pointer to the local storage area. * - * long bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags) + * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags) * Description * Select a **SO_REUSEPORT** socket from a * **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*. @@ -2515,7 +2287,7 @@ union bpf_attr { * Look for an IPv6 socket. * * If the *netns* is a negative signed 32-bit integer, then the - * socket lookup table in the netns associated with the *ctx* + * socket lookup table in the netns associated with the *ctx* will * will be used. For the TC hooks, this is the netns of the device * in the skb. For socket hooks, this is the netns of the socket. * If *netns* is any other signed 32-bit value greater than or @@ -2552,7 +2324,7 @@ union bpf_attr { * Look for an IPv6 socket. * * If the *netns* is a negative signed 32-bit integer, then the - * socket lookup table in the netns associated with the *ctx* + * socket lookup table in the netns associated with the *ctx* will * will be used. For the TC hooks, this is the netns of the device * in the skb. For socket hooks, this is the netns of the socket. * If *netns* is any other signed 32-bit value greater than or @@ -2571,7 +2343,7 @@ union bpf_attr { * result is from *reuse*\ **->socks**\ [] using the hash of the * tuple. * - * long bpf_sk_release(void *sock) + * int bpf_sk_release(struct bpf_sock *sock) * Description * Release the reference held by *sock*. *sock* must be a * non-**NULL** pointer that was returned from @@ -2579,7 +2351,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags) + * int bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags) * Description * Push an element *value* in *map*. *flags* is one of: * @@ -2589,19 +2361,19 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_map_pop_elem(struct bpf_map *map, void *value) + * int bpf_map_pop_elem(struct bpf_map *map, void *value) * Description * Pop an element from *map*. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_map_peek_elem(struct bpf_map *map, void *value) + * int bpf_map_peek_elem(struct bpf_map *map, void *value) * Description * Get an element from *map* without removing it. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags) + * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags) * Description * For socket policies, insert *len* bytes into *msg* at offset * *start*. @@ -2617,7 +2389,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags) + * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags) * Description * Will remove *len* bytes from a *msg* starting at byte *start*. * This may result in **ENOMEM** errors under certain situations if @@ -2629,7 +2401,7 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y) + * int bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y) * Description * This helper is used in programs implementing IR decoding, to * report a successfully decoded pointer movement. @@ -2643,7 +2415,7 @@ union bpf_attr { * Return * 0 * - * long bpf_spin_lock(struct bpf_spin_lock *lock) + * int bpf_spin_lock(struct bpf_spin_lock *lock) * Description * Acquire a spinlock represented by the pointer *lock*, which is * stored as part of a value of a map. Taking the lock allows to @@ -2691,7 +2463,7 @@ union bpf_attr { * Return * 0 * - * long bpf_spin_unlock(struct bpf_spin_lock *lock) + * int bpf_spin_unlock(struct bpf_spin_lock *lock) * Description * Release the *lock* previously locked by a call to * **bpf_spin_lock**\ (\ *lock*\ ). @@ -2714,7 +2486,7 @@ union bpf_attr { * A **struct bpf_tcp_sock** pointer on success, or **NULL** in * case of failure. * - * long bpf_skb_ecn_set_ce(struct sk_buff *skb) + * int bpf_skb_ecn_set_ce(struct sk_buff *skb) * Description * Set ECN (Explicit Congestion Notification) field of IP header * to **CE** (Congestion Encountered) if current value is **ECT** @@ -2751,7 +2523,7 @@ union bpf_attr { * result is from *reuse*\ **->socks**\ [] using the hash of the * tuple. * - * long bpf_tcp_check_syncookie(void *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len) + * int bpf_tcp_check_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len) * Description * Check whether *iph* and *th* contain a valid SYN cookie ACK for * the listening socket in *sk*. @@ -2762,11 +2534,12 @@ union bpf_attr { * * *th* points to the start of the TCP header, while *th_len* * contains **sizeof**\ (**struct tcphdr**). + * * Return * 0 if *iph* and *th* are a valid SYN cookie ACK, or a negative * error otherwise. * - * long bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags) + * int bpf_sysctl_get_name(struct bpf_sysctl *ctx, char *buf, size_t buf_len, u64 flags) * Description * Get name of sysctl in /proc/sys/ and copy it into provided by * program buffer *buf* of size *buf_len*. @@ -2782,7 +2555,7 @@ union bpf_attr { * **-E2BIG** if the buffer wasn't big enough (*buf* will contain * truncated name in this case). * - * long bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len) + * int bpf_sysctl_get_current_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len) * Description * Get current value of sysctl as it is presented in /proc/sys * (incl. newline, etc), and copy it as a string into provided @@ -2801,7 +2574,7 @@ union bpf_attr { * **-EINVAL** if current value was unavailable, e.g. because * sysctl is uninitialized and read returns -EIO for it. * - * long bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len) + * int bpf_sysctl_get_new_value(struct bpf_sysctl *ctx, char *buf, size_t buf_len) * Description * Get new value being written by user space to sysctl (before * the actual write happens) and copy it as a string into @@ -2818,7 +2591,7 @@ union bpf_attr { * * **-EINVAL** if sysctl is being read. * - * long bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len) + * int bpf_sysctl_set_new_value(struct bpf_sysctl *ctx, const char *buf, size_t buf_len) * Description * Override new value being written by user space to sysctl with * value provided by program in buffer *buf* of size *buf_len*. @@ -2835,7 +2608,7 @@ union bpf_attr { * * **-EINVAL** if sysctl is being read. * - * long bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res) + * int bpf_strtol(const char *buf, size_t buf_len, u64 flags, long *res) * Description * Convert the initial part of the string from buffer *buf* of * size *buf_len* to a long integer according to the given base @@ -2859,7 +2632,7 @@ union bpf_attr { * * **-ERANGE** if resulting value was out of range. * - * long bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res) + * int bpf_strtoul(const char *buf, size_t buf_len, u64 flags, unsigned long *res) * Description * Convert the initial part of the string from buffer *buf* of * size *buf_len* to an unsigned long integer according to the @@ -2882,7 +2655,7 @@ union bpf_attr { * * **-ERANGE** if resulting value was out of range. * - * void *bpf_sk_storage_get(struct bpf_map *map, void *sk, void *value, u64 flags) + * void *bpf_sk_storage_get(struct bpf_map *map, struct bpf_sock *sk, void *value, u64 flags) * Description * Get a bpf-local-storage from a *sk*. * @@ -2898,9 +2671,6 @@ union bpf_attr { * "type". The bpf-local-storage "type" (i.e. the *map*) is * searched against all bpf-local-storages residing at *sk*. * - * *sk* is a kernel **struct sock** pointer for LSM program. - * *sk* is a **struct bpf_sock** pointer for other program types. - * * An optional *flags* (**BPF_SK_STORAGE_GET_F_CREATE**) can be * used such that a new bpf-local-storage will be * created if one does not exist. *value* can be used @@ -2913,19 +2683,17 @@ union bpf_attr { * **NULL** if not found or there was an error in adding * a new bpf-local-storage. * - * long bpf_sk_storage_delete(struct bpf_map *map, void *sk) + * int bpf_sk_storage_delete(struct bpf_map *map, struct bpf_sock *sk) * Description * Delete a bpf-local-storage from a *sk*. * Return * 0 on success. * * **-ENOENT** if the bpf-local-storage cannot be found. - * **-EINVAL** if sk is not a fullsock (e.g. a request_sock). * - * long bpf_send_signal(u32 sig) + * int bpf_send_signal(u32 sig) * Description - * Send signal *sig* to the process of the current task. - * The signal may be delivered to any of this process's threads. + * Send signal *sig* to the current task. * Return * 0 on success or successfully queued. * @@ -2937,7 +2705,7 @@ union bpf_attr { * * **-EAGAIN** if bpf program can try again. * - * s64 bpf_tcp_gen_syncookie(void *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len) + * s64 bpf_tcp_gen_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len) * Description * Try to issue a SYN cookie for the packet with corresponding * IP/TCP headers, *iph* and *th*, on the listening socket in *sk*. @@ -2948,6 +2716,7 @@ union bpf_attr { * * *th* points to the start of the TCP header, while *th_len* * contains the length of the TCP header. + * * Return * On success, lower 32 bits hold the generated SYN cookie in * followed by 16 bits which hold the MSS value for that cookie, @@ -2963,7 +2732,7 @@ union bpf_attr { * * **-EPROTONOSUPPORT** IP packet version is not 4 or 6 * - * long bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) + * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) * Description * Write raw *data* blob into a special BPF perf event held by * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf @@ -2987,21 +2756,21 @@ union bpf_attr { * Return * 0 on success, or a negative error in case of failure. * - * long bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr) + * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr) * Description * Safely attempt to read *size* bytes from user space address * *unsafe_ptr* and store the data in *dst*. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr) + * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr) * Description * Safely attempt to read *size* bytes from kernel space address * *unsafe_ptr* and store the data in *dst*. * Return * 0 on success, or a negative error in case of failure. * - * long bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr) + * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr) * Description * Copy a NUL terminated string from an unsafe user address * *unsafe_ptr* to *dst*. The *size* should include the @@ -3010,10 +2779,10 @@ union bpf_attr { * string length is larger than *size*, just *size*-1 bytes are * copied and the last byte is set to NUL. * - * On success, returns the number of bytes that were written, - * including the terminal NUL. This makes this helper useful in - * tracing programs for reading strings, and more importantly to - * get its length at runtime. See the following snippet: + * On success, the length of the copied string is returned. This + * makes this helper useful in tracing programs for reading + * strings, and more importantly to get its length at runtime. See + * the following snippet: * * :: * @@ -3030,7 +2799,7 @@ union bpf_attr { * // size, after checking its boundaries. * } * - * In comparison, using **bpf_probe_read_user**\ () helper here + * In comparison, using **bpf_probe_read_user()** helper here * instead to read the string would require to estimate the length * at compile time, and would often result in copying more memory * than necessary. @@ -3041,880 +2810,17 @@ union bpf_attr { * **->mm->env_start**: using this helper and the return value, * one can quickly iterate at the right offset of the memory area. * Return - * On success, the strictly positive length of the output string, + * On success, the strictly positive length of the string, * including the trailing NUL character. On error, a negative * value. * - * long bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr) + * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr) * Description * Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr* - * to *dst*. Same semantics as with **bpf_probe_read_user_str**\ () apply. + * to *dst*. Same semantics as with bpf_probe_read_user_str() apply. * Return - * On success, the strictly positive length of the string, including + * On success, the strictly positive length of the string, including * the trailing NUL character. On error, a negative value. - * - * long bpf_tcp_send_ack(void *tp, u32 rcv_nxt) - * Description - * Send out a tcp-ack. *tp* is the in-kernel struct **tcp_sock**. - * *rcv_nxt* is the ack_seq to be sent out. - * Return - * 0 on success, or a negative error in case of failure. - * - * long bpf_send_signal_thread(u32 sig) - * Description - * Send signal *sig* to the thread corresponding to the current task. - * Return - * 0 on success or successfully queued. - * - * **-EBUSY** if work queue under nmi is full. - * - * **-EINVAL** if *sig* is invalid. - * - * **-EPERM** if no permission to send the *sig*. - * - * **-EAGAIN** if bpf program can try again. - * - * u64 bpf_jiffies64(void) - * Description - * Obtain the 64bit jiffies - * Return - * The 64 bit jiffies - * - * long bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags) - * Description - * For an eBPF program attached to a perf event, retrieve the - * branch records (**struct perf_branch_entry**) associated to *ctx* - * and store it in the buffer pointed by *buf* up to size - * *size* bytes. - * Return - * On success, number of bytes written to *buf*. On error, a - * negative value. - * - * The *flags* can be set to **BPF_F_GET_BRANCH_RECORDS_SIZE** to - * instead return the number of bytes required to store all the - * branch entries. If this flag is set, *buf* may be NULL. - * - * **-EINVAL** if arguments invalid or **size** not a multiple - * of **sizeof**\ (**struct perf_branch_entry**\ ). - * - * **-ENOENT** if architecture does not support branch records. - * - * long bpf_get_ns_current_pid_tgid(u64 dev, u64 ino, struct bpf_pidns_info *nsdata, u32 size) - * Description - * Returns 0 on success, values for *pid* and *tgid* as seen from the current - * *namespace* will be returned in *nsdata*. - * Return - * 0 on success, or one of the following in case of failure: - * - * **-EINVAL** if dev and inum supplied don't match dev_t and inode number - * with nsfs of current task, or if dev conversion to dev_t lost high bits. - * - * **-ENOENT** if pidns does not exists for the current task. - * - * long bpf_xdp_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size) - * Description - * Write raw *data* blob into a special BPF perf event held by - * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf - * event must have the following attributes: **PERF_SAMPLE_RAW** - * as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and - * **PERF_COUNT_SW_BPF_OUTPUT** as **config**. - * - * The *flags* are used to indicate the index in *map* for which - * the value must be put, masked with **BPF_F_INDEX_MASK**. - * Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU** - * to indicate that the index of the current CPU core should be - * used. - * - * The value to write, of *size*, is passed through eBPF stack and - * pointed by *data*. - * - * *ctx* is a pointer to in-kernel struct xdp_buff. - * - * This helper is similar to **bpf_perf_eventoutput**\ () but - * restricted to raw_tracepoint bpf programs. - * Return - * 0 on success, or a negative error in case of failure. - * - * u64 bpf_get_netns_cookie(void *ctx) - * Description - * Retrieve the cookie (generated by the kernel) of the network - * namespace the input *ctx* is associated with. The network - * namespace cookie remains stable for its lifetime and provides - * a global identifier that can be assumed unique. If *ctx* is - * NULL, then the helper returns the cookie for the initial - * network namespace. The cookie itself is very similar to that - * of **bpf_get_socket_cookie**\ () helper, but for network - * namespaces instead of sockets. - * Return - * A 8-byte long opaque number. - * - * u64 bpf_get_current_ancestor_cgroup_id(int ancestor_level) - * Description - * Return id of cgroup v2 that is ancestor of the cgroup associated - * with the current task at the *ancestor_level*. The root cgroup - * is at *ancestor_level* zero and each step down the hierarchy - * increments the level. If *ancestor_level* == level of cgroup - * associated with the current task, then return value will be the - * same as that of **bpf_get_current_cgroup_id**\ (). - * - * The helper is useful to implement policies based on cgroups - * that are upper in hierarchy than immediate cgroup associated - * with the current task. - * - * The format of returned id and helper limitations are same as in - * **bpf_get_current_cgroup_id**\ (). - * Return - * The id is returned or 0 in case the id could not be retrieved. - * - * long bpf_sk_assign(struct sk_buff *skb, void *sk, u64 flags) - * Description - * Helper is overloaded depending on BPF program type. This - * description applies to **BPF_PROG_TYPE_SCHED_CLS** and - * **BPF_PROG_TYPE_SCHED_ACT** programs. - * - * Assign the *sk* to the *skb*. When combined with appropriate - * routing configuration to receive the packet towards the socket, - * will cause *skb* to be delivered to the specified socket. - * Subsequent redirection of *skb* via **bpf_redirect**\ (), - * **bpf_clone_redirect**\ () or other methods outside of BPF may - * interfere with successful delivery to the socket. - * - * This operation is only valid from TC ingress path. - * - * The *flags* argument must be zero. - * Return - * 0 on success, or a negative error in case of failure: - * - * **-EINVAL** if specified *flags* are not supported. - * - * **-ENOENT** if the socket is unavailable for assignment. - * - * **-ENETUNREACH** if the socket is unreachable (wrong netns). - * - * **-EOPNOTSUPP** if the operation is not supported, for example - * a call from outside of TC ingress. - * - * **-ESOCKTNOSUPPORT** if the socket type is not supported - * (reuseport). - * - * long bpf_sk_assign(struct bpf_sk_lookup *ctx, struct bpf_sock *sk, u64 flags) - * Description - * Helper is overloaded depending on BPF program type. This - * description applies to **BPF_PROG_TYPE_SK_LOOKUP** programs. - * - * Select the *sk* as a result of a socket lookup. - * - * For the operation to succeed passed socket must be compatible - * with the packet description provided by the *ctx* object. - * - * L4 protocol (**IPPROTO_TCP** or **IPPROTO_UDP**) must - * be an exact match. While IP family (**AF_INET** or - * **AF_INET6**) must be compatible, that is IPv6 sockets - * that are not v6-only can be selected for IPv4 packets. - * - * Only TCP listeners and UDP unconnected sockets can be - * selected. *sk* can also be NULL to reset any previous - * selection. - * - * *flags* argument can combination of following values: - * - * * **BPF_SK_LOOKUP_F_REPLACE** to override the previous - * socket selection, potentially done by a BPF program - * that ran before us. - * - * * **BPF_SK_LOOKUP_F_NO_REUSEPORT** to skip - * load-balancing within reuseport group for the socket - * being selected. - * - * On success *ctx->sk* will point to the selected socket. - * - * Return - * 0 on success, or a negative errno in case of failure. - * - * * **-EAFNOSUPPORT** if socket family (*sk->family*) is - * not compatible with packet family (*ctx->family*). - * - * * **-EEXIST** if socket has been already selected, - * potentially by another program, and - * **BPF_SK_LOOKUP_F_REPLACE** flag was not specified. - * - * * **-EINVAL** if unsupported flags were specified. - * - * * **-EPROTOTYPE** if socket L4 protocol - * (*sk->protocol*) doesn't match packet protocol - * (*ctx->protocol*). - * - * * **-ESOCKTNOSUPPORT** if socket is not in allowed - * state (TCP listening or UDP unconnected). - * - * u64 bpf_ktime_get_boot_ns(void) - * Description - * Return the time elapsed since system boot, in nanoseconds. - * Does include the time the system was suspended. - * See: **clock_gettime**\ (**CLOCK_BOOTTIME**) - * Return - * Current *ktime*. - * - * long bpf_seq_printf(struct seq_file *m, const char *fmt, u32 fmt_size, const void *data, u32 data_len) - * Description - * **bpf_seq_printf**\ () uses seq_file **seq_printf**\ () to print - * out the format string. - * The *m* represents the seq_file. The *fmt* and *fmt_size* are for - * the format string itself. The *data* and *data_len* are format string - * arguments. The *data* are a **u64** array and corresponding format string - * values are stored in the array. For strings and pointers where pointees - * are accessed, only the pointer values are stored in the *data* array. - * The *data_len* is the size of *data* in bytes. - * - * Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory. - * Reading kernel memory may fail due to either invalid address or - * valid address but requiring a major memory fault. If reading kernel memory - * fails, the string for **%s** will be an empty string, and the ip - * address for **%p{i,I}{4,6}** will be 0. Not returning error to - * bpf program is consistent with what **bpf_trace_printk**\ () does for now. - * Return - * 0 on success, or a negative error in case of failure: - * - * **-EBUSY** if per-CPU memory copy buffer is busy, can try again - * by returning 1 from bpf program. - * - * **-EINVAL** if arguments are invalid, or if *fmt* is invalid/unsupported. - * - * **-E2BIG** if *fmt* contains too many format specifiers. - * - * **-EOVERFLOW** if an overflow happened: The same object will be tried again. - * - * long bpf_seq_write(struct seq_file *m, const void *data, u32 len) - * Description - * **bpf_seq_write**\ () uses seq_file **seq_write**\ () to write the data. - * The *m* represents the seq_file. The *data* and *len* represent the - * data to write in bytes. - * Return - * 0 on success, or a negative error in case of failure: - * - * **-EOVERFLOW** if an overflow happened: The same object will be tried again. - * - * u64 bpf_sk_cgroup_id(void *sk) - * Description - * Return the cgroup v2 id of the socket *sk*. - * - * *sk* must be a non-**NULL** pointer to a socket, e.g. one - * returned from **bpf_sk_lookup_xxx**\ (), - * **bpf_sk_fullsock**\ (), etc. The format of returned id is - * same as in **bpf_skb_cgroup_id**\ (). - * - * This helper is available only if the kernel was compiled with - * the **CONFIG_SOCK_CGROUP_DATA** configuration option. - * Return - * The id is returned or 0 in case the id could not be retrieved. - * - * u64 bpf_sk_ancestor_cgroup_id(void *sk, int ancestor_level) - * Description - * Return id of cgroup v2 that is ancestor of cgroup associated - * with the *sk* at the *ancestor_level*. The root cgroup is at - * *ancestor_level* zero and each step down the hierarchy - * increments the level. If *ancestor_level* == level of cgroup - * associated with *sk*, then return value will be same as that - * of **bpf_sk_cgroup_id**\ (). - * - * The helper is useful to implement policies based on cgroups - * that are upper in hierarchy than immediate cgroup associated - * with *sk*. - * - * The format of returned id and helper limitations are same as in - * **bpf_sk_cgroup_id**\ (). - * Return - * The id is returned or 0 in case the id could not be retrieved. - * - * long bpf_ringbuf_output(void *ringbuf, void *data, u64 size, u64 flags) - * Description - * Copy *size* bytes from *data* into a ring buffer *ringbuf*. - * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification - * of new data availability is sent. - * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification - * of new data availability is sent unconditionally. - * Return - * 0 on success, or a negative error in case of failure. - * - * void *bpf_ringbuf_reserve(void *ringbuf, u64 size, u64 flags) - * Description - * Reserve *size* bytes of payload in a ring buffer *ringbuf*. - * Return - * Valid pointer with *size* bytes of memory available; NULL, - * otherwise. - * - * void bpf_ringbuf_submit(void *data, u64 flags) - * Description - * Submit reserved ring buffer sample, pointed to by *data*. - * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification - * of new data availability is sent. - * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification - * of new data availability is sent unconditionally. - * Return - * Nothing. Always succeeds. - * - * void bpf_ringbuf_discard(void *data, u64 flags) - * Description - * Discard reserved ring buffer sample, pointed to by *data*. - * If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification - * of new data availability is sent. - * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification - * of new data availability is sent unconditionally. - * Return - * Nothing. Always succeeds. - * - * u64 bpf_ringbuf_query(void *ringbuf, u64 flags) - * Description - * Query various characteristics of provided ring buffer. What - * exactly is queries is determined by *flags*: - * - * * **BPF_RB_AVAIL_DATA**: Amount of data not yet consumed. - * * **BPF_RB_RING_SIZE**: The size of ring buffer. - * * **BPF_RB_CONS_POS**: Consumer position (can wrap around). - * * **BPF_RB_PROD_POS**: Producer(s) position (can wrap around). - * - * Data returned is just a momentary snapshot of actual values - * and could be inaccurate, so this facility should be used to - * power heuristics and for reporting, not to make 100% correct - * calculation. - * Return - * Requested value, or 0, if *flags* are not recognized. - * - * long bpf_csum_level(struct sk_buff *skb, u64 level) - * Description - * Change the skbs checksum level by one layer up or down, or - * reset it entirely to none in order to have the stack perform - * checksum validation. The level is applicable to the following - * protocols: TCP, UDP, GRE, SCTP, FCOE. For example, a decap of - * | ETH | IP | UDP | GUE | IP | TCP | into | ETH | IP | TCP | - * through **bpf_skb_adjust_room**\ () helper with passing in - * **BPF_F_ADJ_ROOM_NO_CSUM_RESET** flag would require one call - * to **bpf_csum_level**\ () with **BPF_CSUM_LEVEL_DEC** since - * the UDP header is removed. Similarly, an encap of the latter - * into the former could be accompanied by a helper call to - * **bpf_csum_level**\ () with **BPF_CSUM_LEVEL_INC** if the - * skb is still intended to be processed in higher layers of the - * stack instead of just egressing at tc. - * - * There are three supported level settings at this time: - * - * * **BPF_CSUM_LEVEL_INC**: Increases skb->csum_level for skbs - * with CHECKSUM_UNNECESSARY. - * * **BPF_CSUM_LEVEL_DEC**: Decreases skb->csum_level for skbs - * with CHECKSUM_UNNECESSARY. - * * **BPF_CSUM_LEVEL_RESET**: Resets skb->csum_level to 0 and - * sets CHECKSUM_NONE to force checksum validation by the stack. - * * **BPF_CSUM_LEVEL_QUERY**: No-op, returns the current - * skb->csum_level. - * Return - * 0 on success, or a negative error in case of failure. In the - * case of **BPF_CSUM_LEVEL_QUERY**, the current skb->csum_level - * is returned or the error code -EACCES in case the skb is not - * subject to CHECKSUM_UNNECESSARY. - * - * struct tcp6_sock *bpf_skc_to_tcp6_sock(void *sk) - * Description - * Dynamically cast a *sk* pointer to a *tcp6_sock* pointer. - * Return - * *sk* if casting is valid, or **NULL** otherwise. - * - * struct tcp_sock *bpf_skc_to_tcp_sock(void *sk) - * Description - * Dynamically cast a *sk* pointer to a *tcp_sock* pointer. - * Return - * *sk* if casting is valid, or **NULL** otherwise. - * - * struct tcp_timewait_sock *bpf_skc_to_tcp_timewait_sock(void *sk) - * Description - * Dynamically cast a *sk* pointer to a *tcp_timewait_sock* pointer. - * Return - * *sk* if casting is valid, or **NULL** otherwise. - * - * struct tcp_request_sock *bpf_skc_to_tcp_request_sock(void *sk) - * Description - * Dynamically cast a *sk* pointer to a *tcp_request_sock* pointer. - * Return - * *sk* if casting is valid, or **NULL** otherwise. - * - * struct udp6_sock *bpf_skc_to_udp6_sock(void *sk) - * Description - * Dynamically cast a *sk* pointer to a *udp6_sock* pointer. - * Return - * *sk* if casting is valid, or **NULL** otherwise. - * - * long bpf_get_task_stack(struct task_struct *task, void *buf, u32 size, u64 flags) - * Description - * Return a user or a kernel stack in bpf program provided buffer. - * To achieve this, the helper needs *task*, which is a valid - * pointer to **struct task_struct**. To store the stacktrace, the - * bpf program provides *buf* with a nonnegative *size*. - * - * The last argument, *flags*, holds the number of stack frames to - * skip (from 0 to 255), masked with - * **BPF_F_SKIP_FIELD_MASK**. The next bits can be used to set - * the following flags: - * - * **BPF_F_USER_STACK** - * Collect a user space stack instead of a kernel stack. - * **BPF_F_USER_BUILD_ID** - * Collect buildid+offset instead of ips for user stack, - * only valid if **BPF_F_USER_STACK** is also specified. - * - * **bpf_get_task_stack**\ () can collect up to - * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject - * to sufficient large buffer size. Note that - * this limit can be controlled with the **sysctl** program, and - * that it should be manually increased in order to profile long - * user stacks (such as stacks for Java programs). To do so, use: - * - * :: - * - * # sysctl kernel.perf_event_max_stack=<new value> - * Return - * A non-negative value equal to or less than *size* on success, - * or a negative error in case of failure. - * - * long bpf_load_hdr_opt(struct bpf_sock_ops *skops, void *searchby_res, u32 len, u64 flags) - * Description - * Load header option. Support reading a particular TCP header - * option for bpf program (**BPF_PROG_TYPE_SOCK_OPS**). - * - * If *flags* is 0, it will search the option from the - * *skops*\ **->skb_data**. The comment in **struct bpf_sock_ops** - * has details on what skb_data contains under different - * *skops*\ **->op**. - * - * The first byte of the *searchby_res* specifies the - * kind that it wants to search. - * - * If the searching kind is an experimental kind - * (i.e. 253 or 254 according to RFC6994). It also - * needs to specify the "magic" which is either - * 2 bytes or 4 bytes. It then also needs to - * specify the size of the magic by using - * the 2nd byte which is "kind-length" of a TCP - * header option and the "kind-length" also - * includes the first 2 bytes "kind" and "kind-length" - * itself as a normal TCP header option also does. - * - * For example, to search experimental kind 254 with - * 2 byte magic 0xeB9F, the searchby_res should be - * [ 254, 4, 0xeB, 0x9F, 0, 0, .... 0 ]. - * - * To search for the standard window scale option (3), - * the *searchby_res* should be [ 3, 0, 0, .... 0 ]. - * Note, kind-length must be 0 for regular option. - * - * Searching for No-Op (0) and End-of-Option-List (1) are - * not supported. - * - * *len* must be at least 2 bytes which is the minimal size - * of a header option. - * - * Supported flags: - * - * * **BPF_LOAD_HDR_OPT_TCP_SYN** to search from the - * saved_syn packet or the just-received syn packet. - * - * Return - * > 0 when found, the header option is copied to *searchby_res*. - * The return value is the total length copied. On failure, a - * negative error code is returned: - * - * **-EINVAL** if a parameter is invalid. - * - * **-ENOMSG** if the option is not found. - * - * **-ENOENT** if no syn packet is available when - * **BPF_LOAD_HDR_OPT_TCP_SYN** is used. - * - * **-ENOSPC** if there is not enough space. Only *len* number of - * bytes are copied. - * - * **-EFAULT** on failure to parse the header options in the - * packet. - * - * **-EPERM** if the helper cannot be used under the current - * *skops*\ **->op**. - * - * long bpf_store_hdr_opt(struct bpf_sock_ops *skops, const void *from, u32 len, u64 flags) - * Description - * Store header option. The data will be copied - * from buffer *from* with length *len* to the TCP header. - * - * The buffer *from* should have the whole option that - * includes the kind, kind-length, and the actual - * option data. The *len* must be at least kind-length - * long. The kind-length does not have to be 4 byte - * aligned. The kernel will take care of the padding - * and setting the 4 bytes aligned value to th->doff. - * - * This helper will check for duplicated option - * by searching the same option in the outgoing skb. - * - * This helper can only be called during - * **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**. - * - * Return - * 0 on success, or negative error in case of failure: - * - * **-EINVAL** If param is invalid. - * - * **-ENOSPC** if there is not enough space in the header. - * Nothing has been written - * - * **-EEXIST** if the option already exists. - * - * **-EFAULT** on failrue to parse the existing header options. - * - * **-EPERM** if the helper cannot be used under the current - * *skops*\ **->op**. - * - * long bpf_reserve_hdr_opt(struct bpf_sock_ops *skops, u32 len, u64 flags) - * Description - * Reserve *len* bytes for the bpf header option. The - * space will be used by **bpf_store_hdr_opt**\ () later in - * **BPF_SOCK_OPS_WRITE_HDR_OPT_CB**. - * - * If **bpf_reserve_hdr_opt**\ () is called multiple times, - * the total number of bytes will be reserved. - * - * This helper can only be called during - * **BPF_SOCK_OPS_HDR_OPT_LEN_CB**. - * - * Return - * 0 on success, or negative error in case of failure: - * - * **-EINVAL** if a parameter is invalid. - * - * **-ENOSPC** if there is not enough space in the header. - * - * **-EPERM** if the helper cannot be used under the current - * *skops*\ **->op**. - * - * void *bpf_inode_storage_get(struct bpf_map *map, void *inode, void *value, u64 flags) - * Description - * Get a bpf_local_storage from an *inode*. - * - * Logically, it could be thought of as getting the value from - * a *map* with *inode* as the **key**. From this - * perspective, the usage is not much different from - * **bpf_map_lookup_elem**\ (*map*, **&**\ *inode*) except this - * helper enforces the key must be an inode and the map must also - * be a **BPF_MAP_TYPE_INODE_STORAGE**. - * - * Underneath, the value is stored locally at *inode* instead of - * the *map*. The *map* is used as the bpf-local-storage - * "type". The bpf-local-storage "type" (i.e. the *map*) is - * searched against all bpf_local_storage residing at *inode*. - * - * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be - * used such that a new bpf_local_storage will be - * created if one does not exist. *value* can be used - * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify - * the initial value of a bpf_local_storage. If *value* is - * **NULL**, the new bpf_local_storage will be zero initialized. - * Return - * A bpf_local_storage pointer is returned on success. - * - * **NULL** if not found or there was an error in adding - * a new bpf_local_storage. - * - * int bpf_inode_storage_delete(struct bpf_map *map, void *inode) - * Description - * Delete a bpf_local_storage from an *inode*. - * Return - * 0 on success. - * - * **-ENOENT** if the bpf_local_storage cannot be found. - * - * long bpf_d_path(struct path *path, char *buf, u32 sz) - * Description - * Return full path for given **struct path** object, which - * needs to be the kernel BTF *path* object. The path is - * returned in the provided buffer *buf* of size *sz* and - * is zero terminated. - * - * Return - * On success, the strictly positive length of the string, - * including the trailing NUL character. On error, a negative - * value. - * - * long bpf_copy_from_user(void *dst, u32 size, const void *user_ptr) - * Description - * Read *size* bytes from user space address *user_ptr* and store - * the data in *dst*. This is a wrapper of **copy_from_user**\ (). - * Return - * 0 on success, or a negative error in case of failure. - * - * long bpf_snprintf_btf(char *str, u32 str_size, struct btf_ptr *ptr, u32 btf_ptr_size, u64 flags) - * Description - * Use BTF to store a string representation of *ptr*->ptr in *str*, - * using *ptr*->type_id. This value should specify the type - * that *ptr*->ptr points to. LLVM __builtin_btf_type_id(type, 1) - * can be used to look up vmlinux BTF type ids. Traversing the - * data structure using BTF, the type information and values are - * stored in the first *str_size* - 1 bytes of *str*. Safe copy of - * the pointer data is carried out to avoid kernel crashes during - * operation. Smaller types can use string space on the stack; - * larger programs can use map data to store the string - * representation. - * - * The string can be subsequently shared with userspace via - * bpf_perf_event_output() or ring buffer interfaces. - * bpf_trace_printk() is to be avoided as it places too small - * a limit on string size to be useful. - * - * *flags* is a combination of - * - * **BTF_F_COMPACT** - * no formatting around type information - * **BTF_F_NONAME** - * no struct/union member names/types - * **BTF_F_PTR_RAW** - * show raw (unobfuscated) pointer values; - * equivalent to printk specifier %px. - * **BTF_F_ZERO** - * show zero-valued struct/union members; they - * are not displayed by default - * - * Return - * The number of bytes that were written (or would have been - * written if output had to be truncated due to string size), - * or a negative error in cases of failure. - * - * long bpf_seq_printf_btf(struct seq_file *m, struct btf_ptr *ptr, u32 ptr_size, u64 flags) - * Description - * Use BTF to write to seq_write a string representation of - * *ptr*->ptr, using *ptr*->type_id as per bpf_snprintf_btf(). - * *flags* are identical to those used for bpf_snprintf_btf. - * Return - * 0 on success or a negative error in case of failure. - * - * u64 bpf_skb_cgroup_classid(struct sk_buff *skb) - * Description - * See **bpf_get_cgroup_classid**\ () for the main description. - * This helper differs from **bpf_get_cgroup_classid**\ () in that - * the cgroup v1 net_cls class is retrieved only from the *skb*'s - * associated socket instead of the current process. - * Return - * The id is returned or 0 in case the id could not be retrieved. - * - * long bpf_redirect_neigh(u32 ifindex, struct bpf_redir_neigh *params, int plen, u64 flags) - * Description - * Redirect the packet to another net device of index *ifindex* - * and fill in L2 addresses from neighboring subsystem. This helper - * is somewhat similar to **bpf_redirect**\ (), except that it - * populates L2 addresses as well, meaning, internally, the helper - * relies on the neighbor lookup for the L2 address of the nexthop. - * - * The helper will perform a FIB lookup based on the skb's - * networking header to get the address of the next hop, unless - * this is supplied by the caller in the *params* argument. The - * *plen* argument indicates the len of *params* and should be set - * to 0 if *params* is NULL. - * - * The *flags* argument is reserved and must be 0. The helper is - * currently only supported for tc BPF program types, and enabled - * for IPv4 and IPv6 protocols. - * Return - * The helper returns **TC_ACT_REDIRECT** on success or - * **TC_ACT_SHOT** on error. - * - * void *bpf_per_cpu_ptr(const void *percpu_ptr, u32 cpu) - * Description - * Take a pointer to a percpu ksym, *percpu_ptr*, and return a - * pointer to the percpu kernel variable on *cpu*. A ksym is an - * extern variable decorated with '__ksym'. For ksym, there is a - * global var (either static or global) defined of the same name - * in the kernel. The ksym is percpu if the global var is percpu. - * The returned pointer points to the global percpu var on *cpu*. - * - * bpf_per_cpu_ptr() has the same semantic as per_cpu_ptr() in the - * kernel, except that bpf_per_cpu_ptr() may return NULL. This - * happens if *cpu* is larger than nr_cpu_ids. The caller of - * bpf_per_cpu_ptr() must check the returned value. - * Return - * A pointer pointing to the kernel percpu variable on *cpu*, or - * NULL, if *cpu* is invalid. - * - * void *bpf_this_cpu_ptr(const void *percpu_ptr) - * Description - * Take a pointer to a percpu ksym, *percpu_ptr*, and return a - * pointer to the percpu kernel variable on this cpu. See the - * description of 'ksym' in **bpf_per_cpu_ptr**\ (). - * - * bpf_this_cpu_ptr() has the same semantic as this_cpu_ptr() in - * the kernel. Different from **bpf_per_cpu_ptr**\ (), it would - * never return NULL. - * Return - * A pointer pointing to the kernel percpu variable on this cpu. - * - * long bpf_redirect_peer(u32 ifindex, u64 flags) - * Description - * Redirect the packet to another net device of index *ifindex*. - * This helper is somewhat similar to **bpf_redirect**\ (), except - * that the redirection happens to the *ifindex*' peer device and - * the netns switch takes place from ingress to ingress without - * going through the CPU's backlog queue. - * - * The *flags* argument is reserved and must be 0. The helper is - * currently only supported for tc BPF program types at the ingress - * hook and for veth device types. The peer device must reside in a - * different network namespace. - * Return - * The helper returns **TC_ACT_REDIRECT** on success or - * **TC_ACT_SHOT** on error. - * - * void *bpf_task_storage_get(struct bpf_map *map, struct task_struct *task, void *value, u64 flags) - * Description - * Get a bpf_local_storage from the *task*. - * - * Logically, it could be thought of as getting the value from - * a *map* with *task* as the **key**. From this - * perspective, the usage is not much different from - * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this - * helper enforces the key must be an task_struct and the map must also - * be a **BPF_MAP_TYPE_TASK_STORAGE**. - * - * Underneath, the value is stored locally at *task* instead of - * the *map*. The *map* is used as the bpf-local-storage - * "type". The bpf-local-storage "type" (i.e. the *map*) is - * searched against all bpf_local_storage residing at *task*. - * - * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be - * used such that a new bpf_local_storage will be - * created if one does not exist. *value* can be used - * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify - * the initial value of a bpf_local_storage. If *value* is - * **NULL**, the new bpf_local_storage will be zero initialized. - * Return - * A bpf_local_storage pointer is returned on success. - * - * **NULL** if not found or there was an error in adding - * a new bpf_local_storage. - * - * long bpf_task_storage_delete(struct bpf_map *map, struct task_struct *task) - * Description - * Delete a bpf_local_storage from a *task*. - * Return - * 0 on success. - * - * **-ENOENT** if the bpf_local_storage cannot be found. - * - * struct task_struct *bpf_get_current_task_btf(void) - * Description - * Return a BTF pointer to the "current" task. - * This pointer can also be used in helpers that accept an - * *ARG_PTR_TO_BTF_ID* of type *task_struct*. - * Return - * Pointer to the current task. - * - * long bpf_bprm_opts_set(struct linux_binprm *bprm, u64 flags) - * Description - * Set or clear certain options on *bprm*: - * - * **BPF_F_BPRM_SECUREEXEC** Set the secureexec bit - * which sets the **AT_SECURE** auxv for glibc. The bit - * is cleared if the flag is not specified. - * Return - * **-EINVAL** if invalid *flags* are passed, zero otherwise. - * - * u64 bpf_ktime_get_coarse_ns(void) - * Description - * Return a coarse-grained version of the time elapsed since - * system boot, in nanoseconds. Does not include time the system - * was suspended. - * - * See: **clock_gettime**\ (**CLOCK_MONOTONIC_COARSE**) - * Return - * Current *ktime*. - * - * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size) - * Description - * Returns the stored IMA hash of the *inode* (if it's avaialable). - * If the hash is larger than *size*, then only *size* - * bytes will be copied to *dst* - * Return - * The **hash_algo** is returned on success, - * **-EOPNOTSUP** if IMA is disabled or **-EINVAL** if - * invalid arguments are passed. - * - * struct socket *bpf_sock_from_file(struct file *file) - * Description - * If the given file represents a socket, returns the associated - * socket. - * Return - * A pointer to a struct socket on success or NULL if the file is - * not a socket. - * - * long bpf_check_mtu(void *ctx, u32 ifindex, u32 *mtu_len, s32 len_diff, u64 flags) - * Description - * Check packet size against exceeding MTU of net device (based - * on *ifindex*). This helper will likely be used in combination - * with helpers that adjust/change the packet size. - * - * The argument *len_diff* can be used for querying with a planned - * size change. This allows to check MTU prior to changing packet - * ctx. Providing an *len_diff* adjustment that is larger than the - * actual packet size (resulting in negative packet size) will in - * principle not exceed the MTU, why it is not considered a - * failure. Other BPF-helpers are needed for performing the - * planned size change, why the responsability for catch a negative - * packet size belong in those helpers. - * - * Specifying *ifindex* zero means the MTU check is performed - * against the current net device. This is practical if this isn't - * used prior to redirect. - * - * On input *mtu_len* must be a valid pointer, else verifier will - * reject BPF program. If the value *mtu_len* is initialized to - * zero then the ctx packet size is use. When value *mtu_len* is - * provided as input this specify the L3 length that the MTU check - * is done against. Remember XDP and TC length operate at L2, but - * this value is L3 as this correlate to MTU and IP-header tot_len - * values which are L3 (similar behavior as bpf_fib_lookup). - * - * The Linux kernel route table can configure MTUs on a more - * specific per route level, which is not provided by this helper. - * For route level MTU checks use the **bpf_fib_lookup**\ () - * helper. - * - * *ctx* is either **struct xdp_md** for XDP programs or - * **struct sk_buff** for tc cls_act programs. - * - * The *flags* argument can be a combination of one or more of the - * following values: - * - * **BPF_MTU_CHK_SEGS** - * This flag will only works for *ctx* **struct sk_buff**. - * If packet context contains extra packet segment buffers - * (often knows as GSO skb), then MTU check is harder to - * check at this point, because in transmit path it is - * possible for the skb packet to get re-segmented - * (depending on net device features). This could still be - * a MTU violation, so this flag enables performing MTU - * check against segments, with a different violation - * return code to tell it apart. Check cannot use len_diff. - * - * On return *mtu_len* pointer contains the MTU value of the net - * device. Remember the net device configured MTU is the L3 size, - * which is returned here and XDP and TC length operate at L2. - * Helper take this into account for you, but remember when using - * MTU value in your BPF-code. - * - * Return - * * 0 on success, and populate MTU value in *mtu_len* pointer. - * - * * < 0 if any input argument is invalid (*mtu_len* not updated) - * - * MTU violations return positive values, but also populate MTU - * value in *mtu_len* pointer, as this can be needed for - * implementing PMTU handing: - * - * * **BPF_MTU_CHK_RET_FRAG_NEEDED** - * * **BPF_MTU_CHK_RET_SEGS_TOOBIG** - * */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -4032,56 +2938,7 @@ union bpf_attr { FN(probe_read_user), \ FN(probe_read_kernel), \ FN(probe_read_user_str), \ - FN(probe_read_kernel_str), \ - FN(tcp_send_ack), \ - FN(send_signal_thread), \ - FN(jiffies64), \ - FN(read_branch_records), \ - FN(get_ns_current_pid_tgid), \ - FN(xdp_output), \ - FN(get_netns_cookie), \ - FN(get_current_ancestor_cgroup_id), \ - FN(sk_assign), \ - FN(ktime_get_boot_ns), \ - FN(seq_printf), \ - FN(seq_write), \ - FN(sk_cgroup_id), \ - FN(sk_ancestor_cgroup_id), \ - FN(ringbuf_output), \ - FN(ringbuf_reserve), \ - FN(ringbuf_submit), \ - FN(ringbuf_discard), \ - FN(ringbuf_query), \ - FN(csum_level), \ - FN(skc_to_tcp6_sock), \ - FN(skc_to_tcp_sock), \ - FN(skc_to_tcp_timewait_sock), \ - FN(skc_to_tcp_request_sock), \ - FN(skc_to_udp6_sock), \ - FN(get_task_stack), \ - FN(load_hdr_opt), \ - FN(store_hdr_opt), \ - FN(reserve_hdr_opt), \ - FN(inode_storage_get), \ - FN(inode_storage_delete), \ - FN(d_path), \ - FN(copy_from_user), \ - FN(snprintf_btf), \ - FN(seq_printf_btf), \ - FN(skb_cgroup_classid), \ - FN(redirect_neigh), \ - FN(per_cpu_ptr), \ - FN(this_cpu_ptr), \ - FN(redirect_peer), \ - FN(task_storage_get), \ - FN(task_storage_delete), \ - FN(get_current_task_btf), \ - FN(bprm_opts_set), \ - FN(ktime_get_coarse_ns), \ - FN(ima_inode_hash), \ - FN(sock_from_file), \ - FN(check_mtu), \ - /* */ + FN(probe_read_kernel_str), /* integer value in 'imm' field of BPF_CALL instruction selects which helper * function eBPF program intends to call @@ -4096,142 +2953,69 @@ enum bpf_func_id { /* All flags used by eBPF helper functions, placed here. */ /* BPF_FUNC_skb_store_bytes flags. */ -enum { - BPF_F_RECOMPUTE_CSUM = (1ULL << 0), - BPF_F_INVALIDATE_HASH = (1ULL << 1), -}; +#define BPF_F_RECOMPUTE_CSUM (1ULL << 0) +#define BPF_F_INVALIDATE_HASH (1ULL << 1) /* BPF_FUNC_l3_csum_replace and BPF_FUNC_l4_csum_replace flags. * First 4 bits are for passing the header field size. */ -enum { - BPF_F_HDR_FIELD_MASK = 0xfULL, -}; +#define BPF_F_HDR_FIELD_MASK 0xfULL /* BPF_FUNC_l4_csum_replace flags. */ -enum { - BPF_F_PSEUDO_HDR = (1ULL << 4), - BPF_F_MARK_MANGLED_0 = (1ULL << 5), - BPF_F_MARK_ENFORCE = (1ULL << 6), -}; +#define BPF_F_PSEUDO_HDR (1ULL << 4) +#define BPF_F_MARK_MANGLED_0 (1ULL << 5) +#define BPF_F_MARK_ENFORCE (1ULL << 6) /* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */ -enum { - BPF_F_INGRESS = (1ULL << 0), -}; +#define BPF_F_INGRESS (1ULL << 0) /* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */ -enum { - BPF_F_TUNINFO_IPV6 = (1ULL << 0), -}; +#define BPF_F_TUNINFO_IPV6 (1ULL << 0) /* flags for both BPF_FUNC_get_stackid and BPF_FUNC_get_stack. */ -enum { - BPF_F_SKIP_FIELD_MASK = 0xffULL, - BPF_F_USER_STACK = (1ULL << 8), +#define BPF_F_SKIP_FIELD_MASK 0xffULL +#define BPF_F_USER_STACK (1ULL << 8) /* flags used by BPF_FUNC_get_stackid only. */ - BPF_F_FAST_STACK_CMP = (1ULL << 9), - BPF_F_REUSE_STACKID = (1ULL << 10), +#define BPF_F_FAST_STACK_CMP (1ULL << 9) +#define BPF_F_REUSE_STACKID (1ULL << 10) /* flags used by BPF_FUNC_get_stack only. */ - BPF_F_USER_BUILD_ID = (1ULL << 11), -}; +#define BPF_F_USER_BUILD_ID (1ULL << 11) /* BPF_FUNC_skb_set_tunnel_key flags. */ -enum { - BPF_F_ZERO_CSUM_TX = (1ULL << 1), - BPF_F_DONT_FRAGMENT = (1ULL << 2), - BPF_F_SEQ_NUMBER = (1ULL << 3), -}; +#define BPF_F_ZERO_CSUM_TX (1ULL << 1) +#define BPF_F_DONT_FRAGMENT (1ULL << 2) +#define BPF_F_SEQ_NUMBER (1ULL << 3) /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and * BPF_FUNC_perf_event_read_value flags. */ -enum { - BPF_F_INDEX_MASK = 0xffffffffULL, - BPF_F_CURRENT_CPU = BPF_F_INDEX_MASK, +#define BPF_F_INDEX_MASK 0xffffffffULL +#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK /* BPF_FUNC_perf_event_output for sk_buff input context. */ - BPF_F_CTXLEN_MASK = (0xfffffULL << 32), -}; +#define BPF_F_CTXLEN_MASK (0xfffffULL << 32) /* Current network namespace */ -enum { - BPF_F_CURRENT_NETNS = (-1L), -}; - -/* BPF_FUNC_csum_level level values. */ -enum { - BPF_CSUM_LEVEL_QUERY, - BPF_CSUM_LEVEL_INC, - BPF_CSUM_LEVEL_DEC, - BPF_CSUM_LEVEL_RESET, -}; +#define BPF_F_CURRENT_NETNS (-1L) /* BPF_FUNC_skb_adjust_room flags. */ -enum { - BPF_F_ADJ_ROOM_FIXED_GSO = (1ULL << 0), - BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = (1ULL << 1), - BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = (1ULL << 2), - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3), - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4), - BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5), -}; +#define BPF_F_ADJ_ROOM_FIXED_GSO (1ULL << 0) -enum { - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff, - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, -}; +#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) /* BPF_FUNC_sysctl_get_name flags. */ -enum { - BPF_F_SYSCTL_BASE_NAME = (1ULL << 0), -}; - -/* BPF_FUNC_<kernel_obj>_storage_get flags */ -enum { - BPF_LOCAL_STORAGE_GET_F_CREATE = (1ULL << 0), - /* BPF_SK_STORAGE_GET_F_CREATE is only kept for backward compatibility - * and BPF_LOCAL_STORAGE_GET_F_CREATE must be used instead. - */ - BPF_SK_STORAGE_GET_F_CREATE = BPF_LOCAL_STORAGE_GET_F_CREATE, -}; +#define BPF_F_SYSCTL_BASE_NAME (1ULL << 0) -/* BPF_FUNC_read_branch_records flags. */ -enum { - BPF_F_GET_BRANCH_RECORDS_SIZE = (1ULL << 0), -}; - -/* BPF_FUNC_bpf_ringbuf_commit, BPF_FUNC_bpf_ringbuf_discard, and - * BPF_FUNC_bpf_ringbuf_output flags. - */ -enum { - BPF_RB_NO_WAKEUP = (1ULL << 0), - BPF_RB_FORCE_WAKEUP = (1ULL << 1), -}; - -/* BPF_FUNC_bpf_ringbuf_query flags */ -enum { - BPF_RB_AVAIL_DATA = 0, - BPF_RB_RING_SIZE = 1, - BPF_RB_CONS_POS = 2, - BPF_RB_PROD_POS = 3, -}; - -/* BPF ring buffer constants */ -enum { - BPF_RINGBUF_BUSY_BIT = (1U << 31), - BPF_RINGBUF_DISCARD_BIT = (1U << 30), - BPF_RINGBUF_HDR_SZ = 8, -}; - -/* BPF_FUNC_sk_assign flags in bpf_sk_lookup context. */ -enum { - BPF_SK_LOOKUP_F_REPLACE = (1ULL << 0), - BPF_SK_LOOKUP_F_NO_REUSEPORT = (1ULL << 1), -}; +/* BPF_FUNC_sk_storage_get flags */ +#define BPF_SK_STORAGE_GET_F_CREATE (1ULL << 0) /* Mode for BPF_FUNC_skb_adjust_room helper. */ enum bpf_adj_room_mode { @@ -4252,11 +3036,6 @@ enum bpf_lwt_encap_mode { BPF_LWT_ENCAP_IP, }; -/* Flags for bpf_bprm_opts_set helper */ -enum { - BPF_F_BPRM_SECUREEXEC = (1ULL << 0), -}; - #define __bpf_md_ptr(type, name) \ union { \ type name; \ @@ -4302,7 +3081,6 @@ struct __sk_buff { __u32 wire_len; __u32 gso_segs; __bpf_md_ptr(struct bpf_sock *, sk); - __u32 gso_size; }; struct bpf_tunnel_key { @@ -4370,7 +3148,6 @@ struct bpf_sock { __u32 dst_ip4; __u32 dst_ip6[4]; __u32 state; - __s32 rx_queue_mapping; }; struct bpf_tcp_sock { @@ -4464,34 +3241,6 @@ struct xdp_md { /* Below access go through struct xdp_rxq_info */ __u32 ingress_ifindex; /* rxq->dev->ifindex */ __u32 rx_queue_index; /* rxq->queue_index */ - - __u32 egress_ifindex; /* txq->dev->ifindex */ -}; - -/* DEVMAP map-value layout - * - * The struct data-layout of map-value is a configuration interface. - * New members can only be added to the end of this structure. - */ -struct bpf_devmap_val { - __u32 ifindex; /* device index */ - union { - int fd; /* prog fd on map write */ - __u32 id; /* prog id on map read */ - } bpf_prog; -}; - -/* CPUMAP map-value layout - * - * The struct data-layout of map-value is a configuration interface. - * New members can only be added to the end of this structure. - */ -struct bpf_cpumap_val { - __u32 qsize; /* queue size to remote target CPU */ - union { - int fd; /* prog fd on map write */ - __u32 id; /* prog id on map read */ - } bpf_prog; }; enum sk_action { @@ -4514,8 +3263,6 @@ struct sk_msg_md { __u32 remote_port; /* Stored in network byte order */ __u32 local_port; /* stored in host byte order */ __u32 size; /* Total size of sk_msg */ - - __bpf_md_ptr(struct bpf_sock *, sk); /* current socket */ }; struct sk_reuseport_md { @@ -4581,7 +3328,6 @@ struct bpf_prog_info { __aligned_u64 prog_tags; __u64 run_time_ns; __u64 run_cnt; - __u64 recursion_misses; } __attribute__((aligned(8))); struct bpf_map_info { @@ -4593,7 +3339,7 @@ struct bpf_map_info { __u32 map_flags; char name[BPF_OBJ_NAME_LEN]; __u32 ifindex; - __u32 btf_vmlinux_value_type_id; + __u32 :32; __u64 netns_dev; __u64 netns_ino; __u32 btf_id; @@ -4605,49 +3351,11 @@ struct bpf_btf_info { __aligned_u64 btf; __u32 btf_size; __u32 id; - __aligned_u64 name; - __u32 name_len; - __u32 kernel_btf; -} __attribute__((aligned(8))); - -struct bpf_link_info { - __u32 type; - __u32 id; - __u32 prog_id; - union { - struct { - __aligned_u64 tp_name; /* in/out: tp_name buffer ptr */ - __u32 tp_name_len; /* in/out: tp_name buffer len */ - } raw_tracepoint; - struct { - __u32 attach_type; - } tracing; - struct { - __u64 cgroup_id; - __u32 attach_type; - } cgroup; - struct { - __aligned_u64 target_name; /* in/out: target_name buffer ptr */ - __u32 target_name_len; /* in/out: target_name buffer len */ - union { - struct { - __u32 map_id; - } map; - }; - } iter; - struct { - __u32 netns_ino; - __u32 attach_type; - } netns; - struct { - __u32 ifindex; - } xdp; - }; } __attribute__((aligned(8))); /* User bpf_sock_addr struct to access socket fields and sockaddr struct passed * by user and intended to be used by socket (e.g. to bind to, depends on - * attach type). + * attach attach type). */ struct bpf_sock_addr { __u32 user_family; /* Allows 4-byte read, but no write. */ @@ -4657,7 +3365,7 @@ struct bpf_sock_addr { __u32 user_ip6[4]; /* Allows 1,2,4,8-byte read and 4,8-byte write. * Stored in network byte order. */ - __u32 user_port; /* Allows 1,2,4-byte read and 4-byte write. + __u32 user_port; /* Allows 4-byte read and write. * Stored in network byte order */ __u32 family; /* Allows 4-byte read, but no write */ @@ -4722,90 +3430,16 @@ struct bpf_sock_ops { __u64 bytes_received; __u64 bytes_acked; __bpf_md_ptr(struct bpf_sock *, sk); - /* [skb_data, skb_data_end) covers the whole TCP header. - * - * BPF_SOCK_OPS_PARSE_HDR_OPT_CB: The packet received - * BPF_SOCK_OPS_HDR_OPT_LEN_CB: Not useful because the - * header has not been written. - * BPF_SOCK_OPS_WRITE_HDR_OPT_CB: The header and options have - * been written so far. - * BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: The SYNACK that concludes - * the 3WHS. - * BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: The ACK that concludes - * the 3WHS. - * - * bpf_load_hdr_opt() can also be used to read a particular option. - */ - __bpf_md_ptr(void *, skb_data); - __bpf_md_ptr(void *, skb_data_end); - __u32 skb_len; /* The total length of a packet. - * It includes the header, options, - * and payload. - */ - __u32 skb_tcp_flags; /* tcp_flags of the header. It provides - * an easy way to check for tcp_flags - * without parsing skb_data. - * - * In particular, the skb_tcp_flags - * will still be available in - * BPF_SOCK_OPS_HDR_OPT_LEN even though - * the outgoing header has not - * been written yet. - */ }; /* Definitions for bpf_sock_ops_cb_flags */ -enum { - BPF_SOCK_OPS_RTO_CB_FLAG = (1<<0), - BPF_SOCK_OPS_RETRANS_CB_FLAG = (1<<1), - BPF_SOCK_OPS_STATE_CB_FLAG = (1<<2), - BPF_SOCK_OPS_RTT_CB_FLAG = (1<<3), - /* Call bpf for all received TCP headers. The bpf prog will be - * called under sock_ops->op == BPF_SOCK_OPS_PARSE_HDR_OPT_CB - * - * Please refer to the comment in BPF_SOCK_OPS_PARSE_HDR_OPT_CB - * for the header option related helpers that will be useful - * to the bpf programs. - * - * It could be used at the client/active side (i.e. connect() side) - * when the server told it that the server was in syncookie - * mode and required the active side to resend the bpf-written - * options. The active side can keep writing the bpf-options until - * it received a valid packet from the server side to confirm - * the earlier packet (and options) has been received. The later - * example patch is using it like this at the active side when the - * server is in syncookie mode. - * - * The bpf prog will usually turn this off in the common cases. - */ - BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = (1<<4), - /* Call bpf when kernel has received a header option that - * the kernel cannot handle. The bpf prog will be called under - * sock_ops->op == BPF_SOCK_OPS_PARSE_HDR_OPT_CB. - * - * Please refer to the comment in BPF_SOCK_OPS_PARSE_HDR_OPT_CB - * for the header option related helpers that will be useful - * to the bpf programs. - */ - BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = (1<<5), - /* Call bpf when the kernel is writing header options for the - * outgoing packet. The bpf prog will first be called - * to reserve space in a skb under - * sock_ops->op == BPF_SOCK_OPS_HDR_OPT_LEN_CB. Then - * the bpf prog will be called to write the header option(s) - * under sock_ops->op == BPF_SOCK_OPS_WRITE_HDR_OPT_CB. - * - * Please refer to the comment in BPF_SOCK_OPS_HDR_OPT_LEN_CB - * and BPF_SOCK_OPS_WRITE_HDR_OPT_CB for the header option - * related helpers that will be useful to the bpf programs. - * - * The kernel gets its chance to reserve space and write - * options first before the BPF program does. - */ - BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = (1<<6), -/* Mask of all currently supported cb flags */ - BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7F, -}; +#define BPF_SOCK_OPS_RTO_CB_FLAG (1<<0) +#define BPF_SOCK_OPS_RETRANS_CB_FLAG (1<<1) +#define BPF_SOCK_OPS_STATE_CB_FLAG (1<<2) +#define BPF_SOCK_OPS_RTT_CB_FLAG (1<<3) +#define BPF_SOCK_OPS_ALL_CB_FLAGS 0xF /* Mask of all currently + * supported cb flags + */ /* List of known BPF sock_ops operators. * New entries can only be added at the end @@ -4860,63 +3494,6 @@ enum { */ BPF_SOCK_OPS_RTT_CB, /* Called on every RTT. */ - BPF_SOCK_OPS_PARSE_HDR_OPT_CB, /* Parse the header option. - * It will be called to handle - * the packets received at - * an already established - * connection. - * - * sock_ops->skb_data: - * Referring to the received skb. - * It covers the TCP header only. - * - * bpf_load_hdr_opt() can also - * be used to search for a - * particular option. - */ - BPF_SOCK_OPS_HDR_OPT_LEN_CB, /* Reserve space for writing the - * header option later in - * BPF_SOCK_OPS_WRITE_HDR_OPT_CB. - * Arg1: bool want_cookie. (in - * writing SYNACK only) - * - * sock_ops->skb_data: - * Not available because no header has - * been written yet. - * - * sock_ops->skb_tcp_flags: - * The tcp_flags of the - * outgoing skb. (e.g. SYN, ACK, FIN). - * - * bpf_reserve_hdr_opt() should - * be used to reserve space. - */ - BPF_SOCK_OPS_WRITE_HDR_OPT_CB, /* Write the header options - * Arg1: bool want_cookie. (in - * writing SYNACK only) - * - * sock_ops->skb_data: - * Referring to the outgoing skb. - * It covers the TCP header - * that has already been written - * by the kernel and the - * earlier bpf-progs. - * - * sock_ops->skb_tcp_flags: - * The tcp_flags of the outgoing - * skb. (e.g. SYN, ACK, FIN). - * - * bpf_store_hdr_opt() should - * be used to write the - * option. - * - * bpf_load_hdr_opt() can also - * be used to search for a - * particular option that - * has already been written - * by the kernel or the - * earlier bpf-progs. - */ }; /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect @@ -4941,67 +3518,8 @@ enum { BPF_TCP_MAX_STATES /* Leave at the end! */ }; -enum { - TCP_BPF_IW = 1001, /* Set TCP initial congestion window */ - TCP_BPF_SNDCWND_CLAMP = 1002, /* Set sndcwnd_clamp */ - TCP_BPF_DELACK_MAX = 1003, /* Max delay ack in usecs */ - TCP_BPF_RTO_MIN = 1004, /* Min delay ack in usecs */ - /* Copy the SYN pkt to optval - * - * BPF_PROG_TYPE_SOCK_OPS only. It is similar to the - * bpf_getsockopt(TCP_SAVED_SYN) but it does not limit - * to only getting from the saved_syn. It can either get the - * syn packet from: - * - * 1. the just-received SYN packet (only available when writing the - * SYNACK). It will be useful when it is not necessary to - * save the SYN packet for latter use. It is also the only way - * to get the SYN during syncookie mode because the syn - * packet cannot be saved during syncookie. - * - * OR - * - * 2. the earlier saved syn which was done by - * bpf_setsockopt(TCP_SAVE_SYN). - * - * The bpf_getsockopt(TCP_BPF_SYN*) option will hide where the - * SYN packet is obtained. - * - * If the bpf-prog does not need the IP[46] header, the - * bpf-prog can avoid parsing the IP header by using - * TCP_BPF_SYN. Otherwise, the bpf-prog can get both - * IP[46] and TCP header by using TCP_BPF_SYN_IP. - * - * >0: Total number of bytes copied - * -ENOSPC: Not enough space in optval. Only optlen number of - * bytes is copied. - * -ENOENT: The SYN skb is not available now and the earlier SYN pkt - * is not saved by setsockopt(TCP_SAVE_SYN). - */ - TCP_BPF_SYN = 1005, /* Copy the TCP header */ - TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */ - TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */ -}; - -enum { - BPF_LOAD_HDR_OPT_TCP_SYN = (1ULL << 0), -}; - -/* args[0] value during BPF_SOCK_OPS_HDR_OPT_LEN_CB and - * BPF_SOCK_OPS_WRITE_HDR_OPT_CB. - */ -enum { - BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, /* Kernel is finding the - * total option spaces - * required for an established - * sk in order to calculate the - * MSS. No skb is actually - * sent. - */ - BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, /* Kernel is in syncookie mode - * when sending a SYN. - */ -}; +#define TCP_BPF_IW 1001 /* Set TCP initial congestion window */ +#define TCP_BPF_SNDCWND_CLAMP 1002 /* Set sndcwnd_clamp */ struct bpf_perf_event_value { __u64 counter; @@ -5009,16 +3527,12 @@ struct bpf_perf_event_value { __u64 running; }; -enum { - BPF_DEVCG_ACC_MKNOD = (1ULL << 0), - BPF_DEVCG_ACC_READ = (1ULL << 1), - BPF_DEVCG_ACC_WRITE = (1ULL << 2), -}; +#define BPF_DEVCG_ACC_MKNOD (1ULL << 0) +#define BPF_DEVCG_ACC_READ (1ULL << 1) +#define BPF_DEVCG_ACC_WRITE (1ULL << 2) -enum { - BPF_DEVCG_DEV_BLOCK = (1ULL << 0), - BPF_DEVCG_DEV_CHAR = (1ULL << 1), -}; +#define BPF_DEVCG_DEV_BLOCK (1ULL << 0) +#define BPF_DEVCG_DEV_CHAR (1ULL << 1) struct bpf_cgroup_dev_ctx { /* access_type encoded as (BPF_DEVCG_ACC_* << 16) | BPF_DEVCG_DEV_* */ @@ -5034,10 +3548,8 @@ struct bpf_raw_tracepoint_args { /* DIRECT: Skip the FIB rules and go to FIB table associated with device * OUTPUT: Do lookup from egress perspective; default is ingress */ -enum { - BPF_FIB_LOOKUP_DIRECT = (1U << 0), - BPF_FIB_LOOKUP_OUTPUT = (1U << 1), -}; +#define BPF_FIB_LOOKUP_DIRECT (1U << 0) +#define BPF_FIB_LOOKUP_OUTPUT (1U << 1) enum { BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */ @@ -5062,13 +3574,9 @@ struct bpf_fib_lookup { __be16 sport; __be16 dport; - union { /* used for MTU check */ - /* input to lookup */ - __u16 tot_len; /* L3 length from network hdr (iph->tot_len) */ + /* total length of packet from network header - used for MTU check */ + __u16 tot_len; - /* output: MTU value */ - __u16 mtu_result; - }; /* input: L3 device index for lookup * output: device index from FIB lookup */ @@ -5104,27 +3612,6 @@ struct bpf_fib_lookup { __u8 dmac[6]; /* ETH_ALEN */ }; -struct bpf_redir_neigh { - /* network family for lookup (AF_INET, AF_INET6) */ - __u32 nh_family; - /* network address of nexthop; skips fib lookup to find gateway */ - union { - __be32 ipv4_nh; - __u32 ipv6_nh[4]; /* in6_addr; network order */ - }; -}; - -/* bpf_check_mtu flags*/ -enum bpf_check_mtu_flags { - BPF_MTU_CHK_SEGS = (1U << 0), -}; - -enum bpf_check_mtu_ret { - BPF_MTU_CHK_RET_SUCCESS, /* check and lookup successful */ - BPF_MTU_CHK_RET_FRAG_NEEDED, /* fragmentation required to fwd */ - BPF_MTU_CHK_RET_SEGS_TOOBIG, /* GSO re-segmentation needed to fwd */ -}; - enum bpf_task_fd_type { BPF_FD_TYPE_RAW_TRACEPOINT, /* tp name */ BPF_FD_TYPE_TRACEPOINT, /* tp name */ @@ -5134,11 +3621,9 @@ enum bpf_task_fd_type { BPF_FD_TYPE_URETPROBE, /* filename + offset */ }; -enum { - BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = (1U << 0), - BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = (1U << 1), - BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = (1U << 2), -}; +#define BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG (1U << 0) +#define BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL (1U << 1) +#define BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP (1U << 2) struct bpf_flow_keys { __u16 nhoff; @@ -5204,53 +3689,4 @@ struct bpf_sockopt { __s32 retval; }; -struct bpf_pidns_info { - __u32 pid; - __u32 tgid; -}; - -/* User accessible data for SK_LOOKUP programs. Add new fields at the end. */ -struct bpf_sk_lookup { - __bpf_md_ptr(struct bpf_sock *, sk); /* Selected socket */ - - __u32 family; /* Protocol family (AF_INET, AF_INET6) */ - __u32 protocol; /* IP protocol (IPPROTO_TCP, IPPROTO_UDP) */ - __u32 remote_ip4; /* Network byte order */ - __u32 remote_ip6[4]; /* Network byte order */ - __u32 remote_port; /* Network byte order */ - __u32 local_ip4; /* Network byte order */ - __u32 local_ip6[4]; /* Network byte order */ - __u32 local_port; /* Host byte order */ -}; - -/* - * struct btf_ptr is used for typed pointer representation; the - * type id is used to render the pointer data as the appropriate type - * via the bpf_snprintf_btf() helper described above. A flags field - - * potentially to specify additional details about the BTF pointer - * (rather than its mode of display) - is included for future use. - * Display flags - BTF_F_* - are passed to bpf_snprintf_btf separately. - */ -struct btf_ptr { - void *ptr; - __u32 type_id; - __u32 flags; /* BTF ptr flags; unused at present. */ -}; - -/* - * Flags to control bpf_snprintf_btf() behaviour. - * - BTF_F_COMPACT: no formatting around type information - * - BTF_F_NONAME: no struct/union member names/types - * - BTF_F_PTR_RAW: show raw (unobfuscated) pointer values; - * equivalent to %px. - * - BTF_F_ZERO: show zero-valued struct/union members; they - * are not displayed by default - */ -enum { - BTF_F_COMPACT = (1ULL << 0), - BTF_F_NONAME = (1ULL << 1), - BTF_F_PTR_RAW = (1ULL << 2), - BTF_F_ZERO = (1ULL << 3), -}; - #endif /* _UAPI__LINUX_BPF_H__ */ diff --git a/original/uapi/linux/btf.h b/original/uapi/linux/btf.h index 5a66710..c02dec9 100644 --- a/original/uapi/linux/btf.h +++ b/original/uapi/linux/btf.h @@ -142,14 +142,7 @@ struct btf_param { enum { BTF_VAR_STATIC = 0, - BTF_VAR_GLOBAL_ALLOCATED = 1, - BTF_VAR_GLOBAL_EXTERN = 2, -}; - -enum btf_func_linkage { - BTF_FUNC_STATIC = 0, - BTF_FUNC_GLOBAL = 1, - BTF_FUNC_EXTERN = 2, + BTF_VAR_GLOBAL_ALLOCATED, }; /* BTF_KIND_VAR is followed by a single "struct btf_var" to describe diff --git a/original/uapi/linux/btrfs.h b/original/uapi/linux/btrfs.h index 5df7300..7a8bc8b 100644 --- a/original/uapi/linux/btrfs.h +++ b/original/uapi/linux/btrfs.h @@ -36,22 +36,17 @@ struct btrfs_ioctl_vol_args { #define BTRFS_DEVICE_PATH_NAME_MAX 1024 #define BTRFS_SUBVOL_NAME_MAX 4039 -#ifndef __KERNEL__ -/* Deprecated since 5.7 */ -# define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) -#endif +#define BTRFS_SUBVOL_CREATE_ASYNC (1ULL << 0) #define BTRFS_SUBVOL_RDONLY (1ULL << 1) #define BTRFS_SUBVOL_QGROUP_INHERIT (1ULL << 2) #define BTRFS_DEVICE_SPEC_BY_ID (1ULL << 3) -#define BTRFS_SUBVOL_SPEC_BY_ID (1ULL << 4) - #define BTRFS_VOL_ARG_V2_FLAGS_SUPPORTED \ - (BTRFS_SUBVOL_RDONLY | \ + (BTRFS_SUBVOL_CREATE_ASYNC | \ + BTRFS_SUBVOL_RDONLY | \ BTRFS_SUBVOL_QGROUP_INHERIT | \ - BTRFS_DEVICE_SPEC_BY_ID | \ - BTRFS_SUBVOL_SPEC_BY_ID) + BTRFS_DEVICE_SPEC_BY_ID) #define BTRFS_FSID_SIZE 16 #define BTRFS_UUID_SIZE 16 @@ -102,29 +97,16 @@ struct btrfs_ioctl_qgroup_limit_args { }; /* - * Arguments for specification of subvolumes or devices, supporting by-name or - * by-id and flags + * flags for subvolumes * - * The set of supported flags depends on the ioctl + * Used by: + * struct btrfs_ioctl_vol_args_v2.flags * * BTRFS_SUBVOL_RDONLY is also provided/consumed by the following ioctls: * - BTRFS_IOC_SUBVOL_GETFLAGS * - BTRFS_IOC_SUBVOL_SETFLAGS */ -/* Supported flags for BTRFS_IOC_RM_DEV_V2 */ -#define BTRFS_DEVICE_REMOVE_ARGS_MASK \ - (BTRFS_DEVICE_SPEC_BY_ID) - -/* Supported flags for BTRFS_IOC_SNAP_CREATE_V2 and BTRFS_IOC_SUBVOL_CREATE_V2 */ -#define BTRFS_SUBVOL_CREATE_ARGS_MASK \ - (BTRFS_SUBVOL_RDONLY | \ - BTRFS_SUBVOL_QGROUP_INHERIT) - -/* Supported flags for BTRFS_IOC_SNAP_DESTROY_V2 */ -#define BTRFS_SUBVOL_DELETE_ARGS_MASK \ - (BTRFS_SUBVOL_SPEC_BY_ID) - struct btrfs_ioctl_vol_args_v2 { __s64 fd; __u64 transid; @@ -139,7 +121,6 @@ struct btrfs_ioctl_vol_args_v2 { union { char name[BTRFS_SUBVOL_NAME_MAX + 1]; __u64 devid; - __u64 subvolid; }; }; @@ -243,18 +224,6 @@ struct btrfs_ioctl_dev_info_args { __u8 path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */ }; -/* - * Retrieve information about the filesystem - */ - -/* Request information about checksum type and size */ -#define BTRFS_FS_INFO_FLAG_CSUM_INFO (1 << 0) - -/* Request information about filesystem generation */ -#define BTRFS_FS_INFO_FLAG_GENERATION (1 << 1) -/* Request information about filesystem metadata UUID */ -#define BTRFS_FS_INFO_FLAG_METADATA_UUID (1 << 2) - struct btrfs_ioctl_fs_info_args { __u64 max_id; /* out */ __u64 num_devices; /* out */ @@ -262,13 +231,8 @@ struct btrfs_ioctl_fs_info_args { __u32 nodesize; /* out */ __u32 sectorsize; /* out */ __u32 clone_alignment; /* out */ - /* See BTRFS_FS_INFO_FLAG_* */ - __u16 csum_type; /* out */ - __u16 csum_size; /* out */ - __u64 flags; /* in/out */ - __u64 generation; /* out */ - __u8 metadata_uuid[BTRFS_FSID_SIZE]; /* out */ - __u8 reserved[944]; /* pad to 1k */ + __u32 reserved32; + __u64 reserved[122]; /* pad to 1k */ }; /* @@ -307,7 +271,6 @@ struct btrfs_ioctl_fs_info_args { #define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9) #define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10) #define BTRFS_FEATURE_INCOMPAT_RAID1C34 (1ULL << 11) -#define BTRFS_FEATURE_INCOMPAT_ZONED (1ULL << 12) struct btrfs_ioctl_feature_flags { __u64 compat_flags; @@ -986,7 +949,5 @@ enum btrfs_err_code { struct btrfs_ioctl_get_subvol_rootref_args) #define BTRFS_IOC_INO_LOOKUP_USER _IOWR(BTRFS_IOCTL_MAGIC, 62, \ struct btrfs_ioctl_ino_lookup_user_args) -#define BTRFS_IOC_SNAP_DESTROY_V2 _IOW(BTRFS_IOCTL_MAGIC, 63, \ - struct btrfs_ioctl_vol_args_v2) #endif /* _UAPI_LINUX_BTRFS_H */ diff --git a/original/uapi/linux/btrfs_tree.h b/original/uapi/linux/btrfs_tree.h index 58d7cff..8e322e2 100644 --- a/original/uapi/linux/btrfs_tree.h +++ b/original/uapi/linux/btrfs_tree.h @@ -4,11 +4,6 @@ #include <linux/btrfs.h> #include <linux/types.h> -#ifdef __KERNEL__ -#include <linux/stddef.h> -#else -#include <stddef.h> -#endif /* * This header contains the structure definitions and constants used @@ -299,8 +294,7 @@ */ #define BTRFS_STRING_ITEM_KEY 253 -/* Maximum metadata block size (nodesize) */ -#define BTRFS_MAX_METADATA_BLOCKSIZE 65536 + /* 32 bytes in various csum fields */ #define BTRFS_CSUM_SIZE 32 @@ -525,6 +519,15 @@ struct btrfs_extent_inline_ref { __le64 offset; } __attribute__ ((__packed__)); +/* old style backrefs item */ +struct btrfs_extent_ref_v0 { + __le64 root; + __le64 generation; + __le64 objectid; + __le32 count; +} __attribute__ ((__packed__)); + + /* dev extents record free space on individual devices. The owner * field points back to the chunk allocation mapping tree that allocated * the extent. The chunk tree uuid field is a way to double check the owner @@ -651,15 +654,6 @@ struct btrfs_root_item { } __attribute__ ((__packed__)); /* - * Btrfs root item used to be smaller than current size. The old format ends - * at where member generation_v2 is. - */ -static inline __u32 btrfs_legacy_root_item_size(void) -{ - return offsetof(struct btrfs_root_item, generation_v2); -} - -/* * this is used for both forward and backward root refs */ struct btrfs_root_ref { @@ -928,9 +922,9 @@ struct btrfs_free_space_info { #define BTRFS_FREE_SPACE_USING_BITMAPS (1ULL << 0) #define BTRFS_QGROUP_LEVEL_SHIFT 48 -static inline __u16 btrfs_qgroup_level(__u64 qgroupid) +static inline __u64 btrfs_qgroup_level(__u64 qgroupid) { - return (__u16)(qgroupid >> BTRFS_QGROUP_LEVEL_SHIFT); + return qgroupid >> BTRFS_QGROUP_LEVEL_SHIFT; } /* diff --git a/original/uapi/linux/caif/caif_socket.h b/original/uapi/linux/caif/caif_socket.h index d9970bb..10ec1d1 100644 --- a/original/uapi/linux/caif/caif_socket.h +++ b/original/uapi/linux/caif/caif_socket.h @@ -169,7 +169,7 @@ struct sockaddr_caif { * @CAIFSO_LINK_SELECT: Selector used if multiple CAIF Link layers are * available. Either a high bandwidth * link can be selected (CAIF_LINK_HIGH_BANDW) or - * a low latency link (CAIF_LINK_LOW_LATENCY). + * or a low latency link (CAIF_LINK_LOW_LATENCY). * This option is of type __u32. * Alternatively SO_BINDTODEVICE can be used. * diff --git a/original/uapi/linux/can.h b/original/uapi/linux/can.h index c753535..6a6d2c7 100644 --- a/original/uapi/linux/can.h +++ b/original/uapi/linux/can.h @@ -84,7 +84,6 @@ typedef __u32 can_err_mask_t; /* CAN payload length and DLC definitions according to ISO 11898-1 */ #define CAN_MAX_DLC 8 -#define CAN_MAX_RAW_DLC 15 #define CAN_MAX_DLEN 8 /* CAN FD payload length and DLC definitions according to ISO 11898-7 */ @@ -92,32 +91,23 @@ typedef __u32 can_err_mask_t; #define CANFD_MAX_DLEN 64 /** - * struct can_frame - Classical CAN frame structure (aka CAN 2.0B) - * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition - * @len: CAN frame payload length in byte (0 .. 8) - * @can_dlc: deprecated name for CAN frame payload length in byte (0 .. 8) - * @__pad: padding - * @__res0: reserved / padding - * @len8_dlc: optional DLC value (9 .. 15) at 8 byte payload length - * len8_dlc contains values from 9 .. 15 when the payload length is - * 8 bytes but the DLC value (see ISO 11898-1) is greater then 8. - * CAN_CTRLMODE_CC_LEN8_DLC flag has to be enabled in CAN driver. - * @data: CAN frame payload (up to 8 byte) + * struct can_frame - basic CAN frame structure + * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition + * @can_dlc: frame payload length in byte (0 .. 8) aka data length code + * N.B. the DLC field from ISO 11898-1 Chapter 8.4.2.3 has a 1:1 + * mapping of the 'data length code' to the real payload length + * @__pad: padding + * @__res0: reserved / padding + * @__res1: reserved / padding + * @data: CAN frame payload (up to 8 byte) */ struct can_frame { canid_t can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */ - union { - /* CAN frame payload length in byte (0 .. CAN_MAX_DLEN) - * was previously named can_dlc so we need to carry that - * name for legacy support - */ - __u8 len; - __u8 can_dlc; /* deprecated */ - } __attribute__((packed)); /* disable padding added in some ABIs */ - __u8 __pad; /* padding */ - __u8 __res0; /* reserved / padding */ - __u8 len8_dlc; /* optional DLC for 8 byte payload length (9 .. 15) */ - __u8 data[CAN_MAX_DLEN] __attribute__((aligned(8))); + __u8 can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */ + __u8 __pad; /* padding */ + __u8 __res0; /* reserved / padding */ + __u8 __res1; /* reserved / padding */ + __u8 data[CAN_MAX_DLEN] __attribute__((aligned(8))); }; /* diff --git a/original/uapi/linux/can/gw.h b/original/uapi/linux/can/gw.h index e4f0957..c2190bb 100644 --- a/original/uapi/linux/can/gw.h +++ b/original/uapi/linux/can/gw.h @@ -98,8 +98,8 @@ enum { /* CAN frame elements that are affected by curr. 3 CAN frame modifications */ #define CGW_MOD_ID 0x01 -#define CGW_MOD_DLC 0x02 /* Classical CAN data length code */ -#define CGW_MOD_LEN CGW_MOD_DLC /* CAN FD (plain) data length */ +#define CGW_MOD_DLC 0x02 /* contains the data length in bytes */ +#define CGW_MOD_LEN CGW_MOD_DLC /* CAN FD length representation */ #define CGW_MOD_DATA 0x04 #define CGW_MOD_FLAGS 0x08 /* CAN FD flags */ diff --git a/original/uapi/linux/can/isotp.h b/original/uapi/linux/can/isotp.h deleted file mode 100644 index c55935b..0000000 --- a/original/uapi/linux/can/isotp.h +++ /dev/null @@ -1,165 +0,0 @@ -/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */ -/* - * linux/can/isotp.h - * - * Definitions for isotp CAN sockets (ISO 15765-2:2016) - * - * Copyright (c) 2020 Volkswagen Group Electronic Research - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Volkswagen nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * Alternatively, provided that this notice is retained in full, this - * software may be distributed under the terms of the GNU General - * Public License ("GPL") version 2, in which case the provisions of the - * GPL apply INSTEAD OF those given above. - * - * The provided data structures and external interfaces from this code - * are not restricted to be used by modules with a GPL compatible license. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - */ - -#ifndef _UAPI_CAN_ISOTP_H -#define _UAPI_CAN_ISOTP_H - -#include <linux/types.h> -#include <linux/can.h> - -#define SOL_CAN_ISOTP (SOL_CAN_BASE + CAN_ISOTP) - -/* for socket options affecting the socket (not the global system) */ - -#define CAN_ISOTP_OPTS 1 /* pass struct can_isotp_options */ - -#define CAN_ISOTP_RECV_FC 2 /* pass struct can_isotp_fc_options */ - -/* sockopts to force stmin timer values for protocol regression tests */ - -#define CAN_ISOTP_TX_STMIN 3 /* pass __u32 value in nano secs */ - /* use this time instead of value */ - /* provided in FC from the receiver */ - -#define CAN_ISOTP_RX_STMIN 4 /* pass __u32 value in nano secs */ - /* ignore received CF frames which */ - /* timestamps differ less than val */ - -#define CAN_ISOTP_LL_OPTS 5 /* pass struct can_isotp_ll_options */ - -struct can_isotp_options { - - __u32 flags; /* set flags for isotp behaviour. */ - /* __u32 value : flags see below */ - - __u32 frame_txtime; /* frame transmission time (N_As/N_Ar) */ - /* __u32 value : time in nano secs */ - - __u8 ext_address; /* set address for extended addressing */ - /* __u8 value : extended address */ - - __u8 txpad_content; /* set content of padding byte (tx) */ - /* __u8 value : content on tx path */ - - __u8 rxpad_content; /* set content of padding byte (rx) */ - /* __u8 value : content on rx path */ - - __u8 rx_ext_address; /* set address for extended addressing */ - /* __u8 value : extended address (rx) */ -}; - -struct can_isotp_fc_options { - - __u8 bs; /* blocksize provided in FC frame */ - /* __u8 value : blocksize. 0 = off */ - - __u8 stmin; /* separation time provided in FC frame */ - /* __u8 value : */ - /* 0x00 - 0x7F : 0 - 127 ms */ - /* 0x80 - 0xF0 : reserved */ - /* 0xF1 - 0xF9 : 100 us - 900 us */ - /* 0xFA - 0xFF : reserved */ - - __u8 wftmax; /* max. number of wait frame transmiss. */ - /* __u8 value : 0 = omit FC N_PDU WT */ -}; - -struct can_isotp_ll_options { - - __u8 mtu; /* generated & accepted CAN frame type */ - /* __u8 value : */ - /* CAN_MTU (16) -> standard CAN 2.0 */ - /* CANFD_MTU (72) -> CAN FD frame */ - - __u8 tx_dl; /* tx link layer data length in bytes */ - /* (configured maximum payload length) */ - /* __u8 value : 8,12,16,20,24,32,48,64 */ - /* => rx path supports all LL_DL values */ - - __u8 tx_flags; /* set into struct canfd_frame.flags */ - /* at frame creation: e.g. CANFD_BRS */ - /* Obsolete when the BRS flag is fixed */ - /* by the CAN netdriver configuration */ -}; - -/* flags for isotp behaviour */ - -#define CAN_ISOTP_LISTEN_MODE 0x001 /* listen only (do not send FC) */ -#define CAN_ISOTP_EXTEND_ADDR 0x002 /* enable extended addressing */ -#define CAN_ISOTP_TX_PADDING 0x004 /* enable CAN frame padding tx path */ -#define CAN_ISOTP_RX_PADDING 0x008 /* enable CAN frame padding rx path */ -#define CAN_ISOTP_CHK_PAD_LEN 0x010 /* check received CAN frame padding */ -#define CAN_ISOTP_CHK_PAD_DATA 0x020 /* check received CAN frame padding */ -#define CAN_ISOTP_HALF_DUPLEX 0x040 /* half duplex error state handling */ -#define CAN_ISOTP_FORCE_TXSTMIN 0x080 /* ignore stmin from received FC */ -#define CAN_ISOTP_FORCE_RXSTMIN 0x100 /* ignore CFs depending on rx stmin */ -#define CAN_ISOTP_RX_EXT_ADDR 0x200 /* different rx extended addressing */ -#define CAN_ISOTP_WAIT_TX_DONE 0x400 /* wait for tx completion */ -#define CAN_ISOTP_SF_BROADCAST 0x800 /* 1-to-N functional addressing */ - -/* default values */ - -#define CAN_ISOTP_DEFAULT_FLAGS 0 -#define CAN_ISOTP_DEFAULT_EXT_ADDRESS 0x00 -#define CAN_ISOTP_DEFAULT_PAD_CONTENT 0xCC /* prevent bit-stuffing */ -#define CAN_ISOTP_DEFAULT_FRAME_TXTIME 0 -#define CAN_ISOTP_DEFAULT_RECV_BS 0 -#define CAN_ISOTP_DEFAULT_RECV_STMIN 0x00 -#define CAN_ISOTP_DEFAULT_RECV_WFTMAX 0 - -#define CAN_ISOTP_DEFAULT_LL_MTU CAN_MTU -#define CAN_ISOTP_DEFAULT_LL_TX_DL CAN_MAX_DLEN -#define CAN_ISOTP_DEFAULT_LL_TX_FLAGS 0 - -/* - * Remark on CAN_ISOTP_DEFAULT_RECV_* values: - * - * We can strongly assume, that the Linux Kernel implementation of - * CAN_ISOTP is capable to run with BS=0, STmin=0 and WFTmax=0. - * But as we like to be able to behave as a commonly available ECU, - * these default settings can be changed via sockopts. - * For that reason the STmin value is intentionally _not_ checked for - * consistency and copied directly into the flow control (FC) frame. - */ - -#endif /* !_UAPI_CAN_ISOTP_H */ diff --git a/original/uapi/linux/can/netlink.h b/original/uapi/linux/can/netlink.h index f730d44..6f598b7 100644 --- a/original/uapi/linux/can/netlink.h +++ b/original/uapi/linux/can/netlink.h @@ -100,7 +100,6 @@ struct can_ctrlmode { #define CAN_CTRLMODE_FD 0x20 /* CAN FD mode */ #define CAN_CTRLMODE_PRESUME_ACK 0x40 /* Ignore missing CAN ACKs */ #define CAN_CTRLMODE_FD_NON_ISO 0x80 /* CAN FD in non-ISO mode */ -#define CAN_CTRLMODE_CC_LEN8_DLC 0x100 /* Classic CAN DLC option */ /* * CAN device statistics diff --git a/original/uapi/linux/can/raw.h b/original/uapi/linux/can/raw.h index 3386aa8..6a11d30 100644 --- a/original/uapi/linux/can/raw.h +++ b/original/uapi/linux/can/raw.h @@ -49,9 +49,6 @@ #include <linux/can.h> #define SOL_CAN_RAW (SOL_CAN_BASE + CAN_RAW) -enum { - SCM_CAN_RAW_ERRQUEUE = 1, -}; /* for socket options affecting the socket (not the global system) */ diff --git a/original/uapi/linux/capability.h b/original/uapi/linux/capability.h index 741985d..240fdb9 100644 --- a/original/uapi/linux/capability.h +++ b/original/uapi/linux/capability.h @@ -274,7 +274,6 @@ struct vfs_ns_cap_data { arbitrary SCSI commands */ /* Allow setting encryption key on loopback filesystem */ /* Allow setting zone reclaim policy */ -/* Allow everything under CAP_BPF and CAP_PERFMON for backward compatibility */ #define CAP_SYS_ADMIN 21 @@ -302,7 +301,6 @@ struct vfs_ns_cap_data { /* Allow more than 64hz interrupts from the real-time clock */ /* Override max number of consoles on console allocation */ /* Override max number of keymaps */ -/* Control memory reclaim behavior */ #define CAP_SYS_RESOURCE 24 @@ -333,9 +331,6 @@ struct vfs_ns_cap_data { #define CAP_AUDIT_CONTROL 30 -/* Set or remove capabilities on files. - Map uid=0 into a child user namespace. */ - #define CAP_SETFCAP 31 /* Override MAC access. @@ -371,52 +366,8 @@ struct vfs_ns_cap_data { #define CAP_AUDIT_READ 37 -/* - * Allow system performance and observability privileged operations - * using perf_events, i915_perf and other kernel subsystems - */ - -#define CAP_PERFMON 38 - -/* - * CAP_BPF allows the following BPF operations: - * - Creating all types of BPF maps - * - Advanced verifier features - * - Indirect variable access - * - Bounded loops - * - BPF to BPF function calls - * - Scalar precision tracking - * - Larger complexity limits - * - Dead code elimination - * - And potentially other features - * - Loading BPF Type Format (BTF) data - * - Retrieve xlated and JITed code of BPF programs - * - Use bpf_spin_lock() helper - * - * CAP_PERFMON relaxes the verifier checks further: - * - BPF progs can use of pointer-to-integer conversions - * - speculation attack hardening measures are bypassed - * - bpf_probe_read to read arbitrary kernel memory is allowed - * - bpf_trace_printk to print kernel memory is allowed - * - * CAP_SYS_ADMIN is required to use bpf_probe_write_user. - * - * CAP_SYS_ADMIN is required to iterate system wide loaded - * programs, maps, links, BTFs and convert their IDs to file descriptors. - * - * CAP_PERFMON and CAP_BPF are required to load tracing programs. - * CAP_NET_ADMIN and CAP_BPF are required to load networking programs. - */ -#define CAP_BPF 39 - - -/* Allow checkpoint/restore related operations */ -/* Allow PID selection during clone3() */ -/* Allow writing to ns_last_pid */ - -#define CAP_CHECKPOINT_RESTORE 40 -#define CAP_LAST_CAP CAP_CHECKPOINT_RESTORE +#define CAP_LAST_CAP CAP_AUDIT_READ #define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP) diff --git a/original/uapi/linux/ccs.h b/original/uapi/linux/ccs.h deleted file mode 100644 index 2896d3b..0000000 --- a/original/uapi/linux/ccs.h +++ /dev/null @@ -1,18 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ -/* Copyright (C) 2020 Intel Corporation */ - -#ifndef __UAPI_CCS_H__ -#define __UAPI_CCS_H__ - -#include <linux/v4l2-controls.h> - -#define V4L2_CID_CCS_ANALOGUE_GAIN_M0 (V4L2_CID_USER_CCS_BASE + 1) -#define V4L2_CID_CCS_ANALOGUE_GAIN_C0 (V4L2_CID_USER_CCS_BASE + 2) -#define V4L2_CID_CCS_ANALOGUE_GAIN_M1 (V4L2_CID_USER_CCS_BASE + 3) -#define V4L2_CID_CCS_ANALOGUE_GAIN_C1 (V4L2_CID_USER_CCS_BASE + 4) -#define V4L2_CID_CCS_ANALOGUE_LINEAR_GAIN (V4L2_CID_USER_CCS_BASE + 5) -#define V4L2_CID_CCS_ANALOGUE_EXPONENTIAL_GAIN (V4L2_CID_USER_CCS_BASE + 6) -#define V4L2_CID_CCS_SHADING_CORRECTION (V4L2_CID_USER_CCS_BASE + 8) -#define V4L2_CID_CCS_LUMINANCE_CORRECTION_LEVEL (V4L2_CID_USER_CCS_BASE + 9) - -#endif diff --git a/original/uapi/linux/cdrom.h b/original/uapi/linux/cdrom.h index 6c34f6e..2817230 100644 --- a/original/uapi/linux/cdrom.h +++ b/original/uapi/linux/cdrom.h @@ -289,10 +289,7 @@ struct cdrom_generic_command unsigned char data_direction; int quiet; int timeout; - union { - void __user *reserved[1]; /* unused, actually */ - void __user *unused; - }; + void __user *reserved[1]; /* unused, actually */ }; /* diff --git a/original/uapi/linux/cfm_bridge.h b/original/uapi/linux/cfm_bridge.h deleted file mode 100644 index 3c1cbd1..0000000 --- a/original/uapi/linux/cfm_bridge.h +++ /dev/null @@ -1,64 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ - -#ifndef _UAPI_LINUX_CFM_BRIDGE_H_ -#define _UAPI_LINUX_CFM_BRIDGE_H_ - -#include <linux/types.h> -#include <linux/if_ether.h> - -#define ETHER_HEADER_LENGTH (6+6+4+2) -#define CFM_MAID_LENGTH 48 -#define CFM_CCM_PDU_LENGTH 75 -#define CFM_PORT_STATUS_TLV_LENGTH 4 -#define CFM_IF_STATUS_TLV_LENGTH 4 -#define CFM_IF_STATUS_TLV_TYPE 4 -#define CFM_PORT_STATUS_TLV_TYPE 2 -#define CFM_ENDE_TLV_TYPE 0 -#define CFM_CCM_MAX_FRAME_LENGTH (ETHER_HEADER_LENGTH+\ - CFM_CCM_PDU_LENGTH+\ - CFM_PORT_STATUS_TLV_LENGTH+\ - CFM_IF_STATUS_TLV_LENGTH) -#define CFM_FRAME_PRIO 7 -#define CFM_CCM_TLV_OFFSET 70 -#define CFM_CCM_PDU_MAID_OFFSET 10 -#define CFM_CCM_PDU_MEPID_OFFSET 8 -#define CFM_CCM_PDU_SEQNR_OFFSET 4 -#define CFM_CCM_PDU_TLV_OFFSET 74 -#define CFM_CCM_ITU_RESERVED_SIZE 16 - -struct br_cfm_common_hdr { - __u8 mdlevel_version; - __u8 opcode; - __u8 flags; - __u8 tlv_offset; -}; - -enum br_cfm_opcodes { - BR_CFM_OPCODE_CCM = 0x1, -}; - -/* MEP domain */ -enum br_cfm_domain { - BR_CFM_PORT, - BR_CFM_VLAN, -}; - -/* MEP direction */ -enum br_cfm_mep_direction { - BR_CFM_MEP_DIRECTION_DOWN, - BR_CFM_MEP_DIRECTION_UP, -}; - -/* CCM interval supported. */ -enum br_cfm_ccm_interval { - BR_CFM_CCM_INTERVAL_NONE, - BR_CFM_CCM_INTERVAL_3_3_MS, - BR_CFM_CCM_INTERVAL_10_MS, - BR_CFM_CCM_INTERVAL_100_MS, - BR_CFM_CCM_INTERVAL_1_SEC, - BR_CFM_CCM_INTERVAL_10_SEC, - BR_CFM_CCM_INTERVAL_1_MIN, - BR_CFM_CCM_INTERVAL_10_MIN, -}; - -#endif diff --git a/original/uapi/linux/cifs/cifs_netlink.h b/original/uapi/linux/cifs/cifs_netlink.h deleted file mode 100644 index da31075..0000000 --- a/original/uapi/linux/cifs/cifs_netlink.h +++ /dev/null @@ -1,63 +0,0 @@ -/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ -/* - * Netlink routines for CIFS - * - * Copyright (c) 2020 Samuel Cabrero <scabrero@suse.de> - */ - - -#ifndef _UAPILINUX_CIFS_NETLINK_H -#define _UAPILINUX_CIFS_NETLINK_H - -#define CIFS_GENL_NAME "cifs" -#define CIFS_GENL_VERSION 0x1 - -#define CIFS_GENL_MCGRP_SWN_NAME "cifs_mcgrp_swn" - -enum cifs_genl_multicast_groups { - CIFS_GENL_MCGRP_SWN, -}; - -enum cifs_genl_attributes { - CIFS_GENL_ATTR_UNSPEC, - CIFS_GENL_ATTR_SWN_REGISTRATION_ID, - CIFS_GENL_ATTR_SWN_NET_NAME, - CIFS_GENL_ATTR_SWN_SHARE_NAME, - CIFS_GENL_ATTR_SWN_IP, - CIFS_GENL_ATTR_SWN_NET_NAME_NOTIFY, - CIFS_GENL_ATTR_SWN_SHARE_NAME_NOTIFY, - CIFS_GENL_ATTR_SWN_IP_NOTIFY, - CIFS_GENL_ATTR_SWN_KRB_AUTH, - CIFS_GENL_ATTR_SWN_USER_NAME, - CIFS_GENL_ATTR_SWN_PASSWORD, - CIFS_GENL_ATTR_SWN_DOMAIN_NAME, - CIFS_GENL_ATTR_SWN_NOTIFICATION_TYPE, - CIFS_GENL_ATTR_SWN_RESOURCE_STATE, - CIFS_GENL_ATTR_SWN_RESOURCE_NAME, - __CIFS_GENL_ATTR_MAX, -}; -#define CIFS_GENL_ATTR_MAX (__CIFS_GENL_ATTR_MAX - 1) - -enum cifs_genl_commands { - CIFS_GENL_CMD_UNSPEC, - CIFS_GENL_CMD_SWN_REGISTER, - CIFS_GENL_CMD_SWN_UNREGISTER, - CIFS_GENL_CMD_SWN_NOTIFY, - __CIFS_GENL_CMD_MAX -}; -#define CIFS_GENL_CMD_MAX (__CIFS_GENL_CMD_MAX - 1) - -enum cifs_swn_notification_type { - CIFS_SWN_NOTIFICATION_RESOURCE_CHANGE = 0x01, - CIFS_SWN_NOTIFICATION_CLIENT_MOVE = 0x02, - CIFS_SWN_NOTIFICATION_SHARE_MOVE = 0x03, - CIFS_SWN_NOTIFICATION_IP_CHANGE = 0x04, -}; - -enum cifs_swn_resource_state { - CIFS_SWN_RESOURCE_STATE_UNKNOWN = 0x00, - CIFS_SWN_RESOURCE_STATE_AVAILABLE = 0x01, - CIFS_SWN_RESOURCE_STATE_UNAVAILABLE = 0xFF -}; - -#endif /* _UAPILINUX_CIFS_NETLINK_H */ diff --git a/original/uapi/linux/close_range.h b/original/uapi/linux/close_range.h deleted file mode 100644 index 2d80428..0000000 --- a/original/uapi/linux/close_range.h +++ /dev/null @@ -1,12 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_LINUX_CLOSE_RANGE_H -#define _UAPI_LINUX_CLOSE_RANGE_H - -/* Unshare the file descriptor table before closing file descriptors. */ -#define CLOSE_RANGE_UNSHARE (1U << 1) - -/* Set the FD_CLOEXEC bit instead of closing the file descriptor. */ -#define CLOSE_RANGE_CLOEXEC (1U << 2) - -#endif /* _UAPI_LINUX_CLOSE_RANGE_H */ - diff --git a/original/uapi/linux/const.h b/original/uapi/linux/const.h index af2a44c..5ed721a 100644 --- a/original/uapi/linux/const.h +++ b/original/uapi/linux/const.h @@ -28,9 +28,4 @@ #define _BITUL(x) (_UL(1) << (x)) #define _BITULL(x) (_ULL(1) << (x)) -#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) -#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) - -#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) - #endif /* _UAPI_LINUX_CONST_H */ diff --git a/original/uapi/linux/coresight-stm.h b/original/uapi/linux/coresight-stm.h index 7ff3709..aac550a 100644 --- a/original/uapi/linux/coresight-stm.h +++ b/original/uapi/linux/coresight-stm.h @@ -2,11 +2,8 @@ #ifndef __UAPI_CORESIGHT_STM_H_ #define __UAPI_CORESIGHT_STM_H_ -#include <linux/const.h> - -#define STM_FLAG_TIMESTAMPED _BITUL(3) -#define STM_FLAG_MARKED _BITUL(4) -#define STM_FLAG_GUARANTEED _BITUL(7) +#define STM_FLAG_TIMESTAMPED BIT(3) +#define STM_FLAG_GUARANTEED BIT(7) /* * The CoreSight STM supports guaranteed and invariant timing diff --git a/original/uapi/linux/cxl_mem.h b/original/uapi/linux/cxl_mem.h deleted file mode 100644 index 3155382..0000000 --- a/original/uapi/linux/cxl_mem.h +++ /dev/null @@ -1,172 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * CXL IOCTLs for Memory Devices - */ - -#ifndef _UAPI_CXL_MEM_H_ -#define _UAPI_CXL_MEM_H_ - -#include <linux/types.h> - -/** - * DOC: UAPI - * - * Not all of all commands that the driver supports are always available for use - * by userspace. Userspace must check the results from the QUERY command in - * order to determine the live set of commands. - */ - -#define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands) -#define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command) - -#define CXL_CMDS \ - ___C(INVALID, "Invalid Command"), \ - ___C(IDENTIFY, "Identify Command"), \ - ___C(RAW, "Raw device command"), \ - ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), \ - ___C(GET_FW_INFO, "Get FW Info"), \ - ___C(GET_PARTITION_INFO, "Get Partition Information"), \ - ___C(GET_LSA, "Get Label Storage Area"), \ - ___C(GET_HEALTH_INFO, "Get Health Info"), \ - ___C(GET_LOG, "Get Log"), \ - ___C(MAX, "invalid / last command") - -#define ___C(a, b) CXL_MEM_COMMAND_ID_##a -enum { CXL_CMDS }; - -#undef ___C -#define ___C(a, b) { b } -static const struct { - const char *name; -} cxl_command_names[] = { CXL_CMDS }; - -/* - * Here's how this actually breaks out: - * cxl_command_names[] = { - * [CXL_MEM_COMMAND_ID_INVALID] = { "Invalid Command" }, - * [CXL_MEM_COMMAND_ID_IDENTIFY] = { "Identify Command" }, - * ... - * [CXL_MEM_COMMAND_ID_MAX] = { "invalid / last command" }, - * }; - */ - -#undef ___C - -/** - * struct cxl_command_info - Command information returned from a query. - * @id: ID number for the command. - * @flags: Flags that specify command behavior. - * @size_in: Expected input size, or -1 if variable length. - * @size_out: Expected output size, or -1 if variable length. - * - * Represents a single command that is supported by both the driver and the - * hardware. This is returned as part of an array from the query ioctl. The - * following would be a command that takes a variable length input and returns 0 - * bytes of output. - * - * - @id = 10 - * - @flags = 0 - * - @size_in = -1 - * - @size_out = 0 - * - * See struct cxl_mem_query_commands. - */ -struct cxl_command_info { - __u32 id; - - __u32 flags; -#define CXL_MEM_COMMAND_FLAG_MASK GENMASK(0, 0) - - __s32 size_in; - __s32 size_out; -}; - -/** - * struct cxl_mem_query_commands - Query supported commands. - * @n_commands: In/out parameter. When @n_commands is > 0, the driver will - * return min(num_support_commands, n_commands). When @n_commands - * is 0, driver will return the number of total supported commands. - * @rsvd: Reserved for future use. - * @commands: Output array of supported commands. This array must be allocated - * by userspace to be at least min(num_support_commands, @n_commands) - * - * Allow userspace to query the available commands supported by both the driver, - * and the hardware. Commands that aren't supported by either the driver, or the - * hardware are not returned in the query. - * - * Examples: - * - * - { .n_commands = 0 } // Get number of supported commands - * - { .n_commands = 15, .commands = buf } // Return first 15 (or less) - * supported commands - * - * See struct cxl_command_info. - */ -struct cxl_mem_query_commands { - /* - * Input: Number of commands to return (space allocated by user) - * Output: Number of commands supported by the driver/hardware - * - * If n_commands is 0, kernel will only return number of commands and - * not try to populate commands[], thus allowing userspace to know how - * much space to allocate - */ - __u32 n_commands; - __u32 rsvd; - - struct cxl_command_info __user commands[]; /* out: supported commands */ -}; - -/** - * struct cxl_send_command - Send a command to a memory device. - * @id: The command to send to the memory device. This must be one of the - * commands returned by the query command. - * @flags: Flags for the command (input). - * @raw: Special fields for raw commands - * @raw.opcode: Opcode passed to hardware when using the RAW command. - * @raw.rsvd: Must be zero. - * @rsvd: Must be zero. - * @retval: Return value from the memory device (output). - * @in: Parameters associated with input payload. - * @in.size: Size of the payload to provide to the device (input). - * @in.rsvd: Must be zero. - * @in.payload: Pointer to memory for payload input, payload is little endian. - * @out: Parameters associated with output payload. - * @out.size: Size of the payload received from the device (input/output). This - * field is filled in by userspace to let the driver know how much - * space was allocated for output. It is populated by the driver to - * let userspace know how large the output payload actually was. - * @out.rsvd: Must be zero. - * @out.payload: Pointer to memory for payload output, payload is little endian. - * - * Mechanism for userspace to send a command to the hardware for processing. The - * driver will do basic validation on the command sizes. In some cases even the - * payload may be introspected. Userspace is required to allocate large enough - * buffers for size_out which can be variable length in certain situations. - */ -struct cxl_send_command { - __u32 id; - __u32 flags; - union { - struct { - __u16 opcode; - __u16 rsvd; - } raw; - __u32 rsvd; - }; - __u32 retval; - - struct { - __s32 size; - __u32 rsvd; - __u64 payload; - } in; - - struct { - __s32 size; - __u32 rsvd; - __u64 payload; - } out; -}; - -#endif diff --git a/original/uapi/linux/devlink.h b/original/uapi/linux/devlink.h index f6008b2..ae37fd4 100644 --- a/original/uapi/linux/devlink.h +++ b/original/uapi/linux/devlink.h @@ -13,8 +13,6 @@ #ifndef _UAPI_LINUX_DEVLINK_H_ #define _UAPI_LINUX_DEVLINK_H_ -#include <linux/const.h> - #define DEVLINK_GENL_NAME "devlink" #define DEVLINK_GENL_VERSION 0x1 #define DEVLINK_GENL_MCGRP_CONFIG_NAME "config" @@ -119,13 +117,6 @@ enum devlink_command { DEVLINK_CMD_TRAP_GROUP_NEW, DEVLINK_CMD_TRAP_GROUP_DEL, - DEVLINK_CMD_TRAP_POLICER_GET, /* can dump */ - DEVLINK_CMD_TRAP_POLICER_SET, - DEVLINK_CMD_TRAP_POLICER_NEW, - DEVLINK_CMD_TRAP_POLICER_DEL, - - DEVLINK_CMD_HEALTH_REPORTER_TEST, - /* add new commands above here */ __DEVLINK_CMD_MAX, DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1 @@ -196,14 +187,6 @@ enum devlink_port_flavour { * for the PCI VF. It is an internal * port that faces the PCI VF. */ - DEVLINK_PORT_FLAVOUR_VIRTUAL, /* Any virtual port facing the user. */ - DEVLINK_PORT_FLAVOUR_UNUSED, /* Port which exists in the switch, but - * is not used in any way. - */ - DEVLINK_PORT_FLAVOUR_PCI_SF, /* Represents eswitch port - * for the PCI SF. It is an internal - * port that faces the PCI SF. - */ }; enum devlink_param_cmode { @@ -233,46 +216,20 @@ enum devlink_param_reset_dev_on_drv_probe_value { enum { DEVLINK_ATTR_STATS_RX_PACKETS, /* u64 */ DEVLINK_ATTR_STATS_RX_BYTES, /* u64 */ - DEVLINK_ATTR_STATS_RX_DROPPED, /* u64 */ __DEVLINK_ATTR_STATS_MAX, DEVLINK_ATTR_STATS_MAX = __DEVLINK_ATTR_STATS_MAX - 1 }; -/* Specify what sections of a flash component can be overwritten when - * performing an update. Overwriting of firmware binary sections is always - * implicitly assumed to be allowed. - * - * Each section must be documented in - * Documentation/networking/devlink/devlink-flash.rst - * - */ -enum { - DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT, - DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT, - - __DEVLINK_FLASH_OVERWRITE_MAX_BIT, - DEVLINK_FLASH_OVERWRITE_MAX_BIT = __DEVLINK_FLASH_OVERWRITE_MAX_BIT - 1 -}; - -#define DEVLINK_FLASH_OVERWRITE_SETTINGS _BITUL(DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT) -#define DEVLINK_FLASH_OVERWRITE_IDENTIFIERS _BITUL(DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT) - -#define DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS \ - (_BITUL(__DEVLINK_FLASH_OVERWRITE_MAX_BIT) - 1) - /** * enum devlink_trap_action - Packet trap action. * @DEVLINK_TRAP_ACTION_DROP: Packet is dropped by the device and a copy is not * sent to the CPU. * @DEVLINK_TRAP_ACTION_TRAP: The sole copy of the packet is sent to the CPU. - * @DEVLINK_TRAP_ACTION_MIRROR: Packet is forwarded by the device and a copy is - * sent to the CPU. */ enum devlink_trap_action { DEVLINK_TRAP_ACTION_DROP, DEVLINK_TRAP_ACTION_TRAP, - DEVLINK_TRAP_ACTION_MIRROR, }; /** @@ -286,48 +243,17 @@ enum devlink_trap_action { * control plane for resolution. Trapped packets * are processed by devlink and injected to * the kernel's Rx path. - * @DEVLINK_TRAP_TYPE_CONTROL: Packet was trapped because it is required for - * the correct functioning of the control plane. - * For example, an ARP request packet. Trapped - * packets are injected to the kernel's Rx path, - * but not reported to drop monitor. */ enum devlink_trap_type { DEVLINK_TRAP_TYPE_DROP, DEVLINK_TRAP_TYPE_EXCEPTION, - DEVLINK_TRAP_TYPE_CONTROL, }; enum { /* Trap can report input port as metadata */ DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT, - /* Trap can report flow action cookie as metadata */ - DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE, -}; - -enum devlink_reload_action { - DEVLINK_RELOAD_ACTION_UNSPEC, - DEVLINK_RELOAD_ACTION_DRIVER_REINIT, /* Driver entities re-instantiation */ - DEVLINK_RELOAD_ACTION_FW_ACTIVATE, /* FW activate */ - - /* Add new reload actions above */ - __DEVLINK_RELOAD_ACTION_MAX, - DEVLINK_RELOAD_ACTION_MAX = __DEVLINK_RELOAD_ACTION_MAX - 1 -}; - -enum devlink_reload_limit { - DEVLINK_RELOAD_LIMIT_UNSPEC, /* unspecified, no constraints */ - DEVLINK_RELOAD_LIMIT_NO_RESET, /* No reset allowed, no down time allowed, - * no link flap and no configuration is lost. - */ - - /* Add new reload limit above */ - __DEVLINK_RELOAD_LIMIT_MAX, - DEVLINK_RELOAD_LIMIT_MAX = __DEVLINK_RELOAD_LIMIT_MAX - 1 }; -#define DEVLINK_RELOAD_LIMITS_VALID_MASK (_BITUL(__DEVLINK_RELOAD_LIMIT_MAX) - 1) - enum devlink_attr { /* don't change the order or add anything between, this is ABI! */ DEVLINK_ATTR_UNSPEC, @@ -500,40 +426,6 @@ enum devlink_attr { DEVLINK_ATTR_NETNS_FD, /* u32 */ DEVLINK_ATTR_NETNS_PID, /* u32 */ DEVLINK_ATTR_NETNS_ID, /* u32 */ - - DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP, /* u8 */ - - DEVLINK_ATTR_TRAP_POLICER_ID, /* u32 */ - DEVLINK_ATTR_TRAP_POLICER_RATE, /* u64 */ - DEVLINK_ATTR_TRAP_POLICER_BURST, /* u64 */ - - DEVLINK_ATTR_PORT_FUNCTION, /* nested */ - - DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER, /* string */ - - DEVLINK_ATTR_PORT_LANES, /* u32 */ - DEVLINK_ATTR_PORT_SPLITTABLE, /* u8 */ - - DEVLINK_ATTR_PORT_EXTERNAL, /* u8 */ - DEVLINK_ATTR_PORT_CONTROLLER_NUMBER, /* u32 */ - - DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT, /* u64 */ - DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK, /* bitfield32 */ - - DEVLINK_ATTR_RELOAD_ACTION, /* u8 */ - DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED, /* bitfield32 */ - DEVLINK_ATTR_RELOAD_LIMITS, /* bitfield32 */ - - DEVLINK_ATTR_DEV_STATS, /* nested */ - DEVLINK_ATTR_RELOAD_STATS, /* nested */ - DEVLINK_ATTR_RELOAD_STATS_ENTRY, /* nested */ - DEVLINK_ATTR_RELOAD_STATS_LIMIT, /* u8 */ - DEVLINK_ATTR_RELOAD_STATS_VALUE, /* u32 */ - DEVLINK_ATTR_REMOTE_RELOAD_STATS, /* nested */ - DEVLINK_ATTR_RELOAD_ACTION_INFO, /* nested */ - DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */ - - DEVLINK_ATTR_PORT_PCI_SF_NUMBER, /* u32 */ /* add new attributes above here, update the policy in devlink.c */ __DEVLINK_ATTR_MAX, @@ -580,32 +472,4 @@ enum devlink_resource_unit { DEVLINK_RESOURCE_UNIT_ENTRY, }; -enum devlink_port_function_attr { - DEVLINK_PORT_FUNCTION_ATTR_UNSPEC, - DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */ - DEVLINK_PORT_FN_ATTR_STATE, /* u8 */ - DEVLINK_PORT_FN_ATTR_OPSTATE, /* u8 */ - - __DEVLINK_PORT_FUNCTION_ATTR_MAX, - DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1 -}; - -enum devlink_port_fn_state { - DEVLINK_PORT_FN_STATE_INACTIVE, - DEVLINK_PORT_FN_STATE_ACTIVE, -}; - -/** - * enum devlink_port_fn_opstate - indicates operational state of the function - * @DEVLINK_PORT_FN_OPSTATE_ATTACHED: Driver is attached to the function. - * For graceful tear down of the function, after inactivation of the - * function, user should wait for operational state to turn DETACHED. - * @DEVLINK_PORT_FN_OPSTATE_DETACHED: Driver is detached from the function. - * It is safe to delete the port. - */ -enum devlink_port_fn_opstate { - DEVLINK_PORT_FN_OPSTATE_DETACHED, - DEVLINK_PORT_FN_OPSTATE_ATTACHED, -}; - #endif /* _UAPI_LINUX_DEVLINK_H_ */ diff --git a/original/uapi/linux/dm-ioctl.h b/original/uapi/linux/dm-ioctl.h index fcff666..2df8cec 100644 --- a/original/uapi/linux/dm-ioctl.h +++ b/original/uapi/linux/dm-ioctl.h @@ -272,9 +272,9 @@ enum { #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) #define DM_VERSION_MAJOR 4 -#define DM_VERSION_MINOR 44 +#define DM_VERSION_MINOR 41 #define DM_VERSION_PATCHLEVEL 0 -#define DM_VERSION_EXTRA "-ioctl (2021-02-01)" +#define DM_VERSION_EXTRA "-ioctl (2019-09-16)" /* Status bits */ #define DM_READONLY_FLAG (1 << 0) /* In/Out */ diff --git a/original/uapi/linux/dm-user.h b/original/uapi/linux/dm-user.h deleted file mode 100644 index 6d8f535..0000000 --- a/original/uapi/linux/dm-user.h +++ /dev/null @@ -1,68 +0,0 @@ -/* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */ -/* - * Copyright (C) 2020 Google, Inc - * Copyright (C) 2020 Palmer Dabbelt <palmerdabbelt@google.com> - */ - -#ifndef _LINUX_DM_USER_H -#define _LINUX_DM_USER_H - -#include <linux/types.h> - -/* - * dm-user proxies device mapper ops between the kernel and userspace. It's - * essentially just an RPC mechanism: all kernel calls create a request, - * userspace handles that with a response. Userspace obtains requests via - * read() and provides responses via write(). - * - * See Documentation/block/dm-user.rst for more information. - */ - -#define DM_USER_REQ_MAP_READ 0 -#define DM_USER_REQ_MAP_WRITE 1 -#define DM_USER_REQ_MAP_FLUSH 2 -#define DM_USER_REQ_MAP_DISCARD 3 -#define DM_USER_REQ_MAP_SECURE_ERASE 4 -#define DM_USER_REQ_MAP_WRITE_SAME 5 -#define DM_USER_REQ_MAP_WRITE_ZEROES 6 -#define DM_USER_REQ_MAP_ZONE_OPEN 7 -#define DM_USER_REQ_MAP_ZONE_CLOSE 8 -#define DM_USER_REQ_MAP_ZONE_FINISH 9 -#define DM_USER_REQ_MAP_ZONE_APPEND 10 -#define DM_USER_REQ_MAP_ZONE_RESET 11 -#define DM_USER_REQ_MAP_ZONE_RESET_ALL 12 - -#define DM_USER_REQ_MAP_FLAG_FAILFAST_DEV 0x00001 -#define DM_USER_REQ_MAP_FLAG_FAILFAST_TRANSPORT 0x00002 -#define DM_USER_REQ_MAP_FLAG_FAILFAST_DRIVER 0x00004 -#define DM_USER_REQ_MAP_FLAG_SYNC 0x00008 -#define DM_USER_REQ_MAP_FLAG_META 0x00010 -#define DM_USER_REQ_MAP_FLAG_PRIO 0x00020 -#define DM_USER_REQ_MAP_FLAG_NOMERGE 0x00040 -#define DM_USER_REQ_MAP_FLAG_IDLE 0x00080 -#define DM_USER_REQ_MAP_FLAG_INTEGRITY 0x00100 -#define DM_USER_REQ_MAP_FLAG_FUA 0x00200 -#define DM_USER_REQ_MAP_FLAG_PREFLUSH 0x00400 -#define DM_USER_REQ_MAP_FLAG_RAHEAD 0x00800 -#define DM_USER_REQ_MAP_FLAG_BACKGROUND 0x01000 -#define DM_USER_REQ_MAP_FLAG_NOWAIT 0x02000 -#define DM_USER_REQ_MAP_FLAG_CGROUP_PUNT 0x04000 -#define DM_USER_REQ_MAP_FLAG_NOUNMAP 0x08000 -#define DM_USER_REQ_MAP_FLAG_HIPRI 0x10000 -#define DM_USER_REQ_MAP_FLAG_DRV 0x20000 -#define DM_USER_REQ_MAP_FLAG_SWAP 0x40000 - -#define DM_USER_RESP_SUCCESS 0 -#define DM_USER_RESP_ERROR 1 -#define DM_USER_RESP_UNSUPPORTED 2 - -struct dm_user_message { - __u64 seq; - __u64 type; - __u64 flags; - __u64 sector; - __u64 len; - __u8 buf[]; -}; - -#endif diff --git a/original/uapi/linux/dma-buf.h b/original/uapi/linux/dma-buf.h index 7f30393..dbc7092 100644 --- a/original/uapi/linux/dma-buf.h +++ b/original/uapi/linux/dma-buf.h @@ -39,12 +39,6 @@ struct dma_buf_sync { #define DMA_BUF_BASE 'b' #define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync) - -/* 32/64bitness of this uapi was botched in android, there's no difference - * between them in actual uapi, they're just different numbers. - */ #define DMA_BUF_SET_NAME _IOW(DMA_BUF_BASE, 1, const char *) -#define DMA_BUF_SET_NAME_A _IOW(DMA_BUF_BASE, 1, u32) -#define DMA_BUF_SET_NAME_B _IOW(DMA_BUF_BASE, 1, u64) #endif diff --git a/original/uapi/linux/dma-heap.h b/original/uapi/linux/dma-heap.h deleted file mode 100644 index 6f84fa0..0000000 --- a/original/uapi/linux/dma-heap.h +++ /dev/null @@ -1,53 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * DMABUF Heaps Userspace API - * - * Copyright (C) 2011 Google, Inc. - * Copyright (C) 2019 Linaro Ltd. - */ -#ifndef _UAPI_LINUX_DMABUF_POOL_H -#define _UAPI_LINUX_DMABUF_POOL_H - -#include <linux/ioctl.h> -#include <linux/types.h> - -/** - * DOC: DMABUF Heaps Userspace API - */ - -/* Valid FD_FLAGS are O_CLOEXEC, O_RDONLY, O_WRONLY, O_RDWR */ -#define DMA_HEAP_VALID_FD_FLAGS (O_CLOEXEC | O_ACCMODE) - -/* Currently no heap flags */ -#define DMA_HEAP_VALID_HEAP_FLAGS (0) - -/** - * struct dma_heap_allocation_data - metadata passed from userspace for - * allocations - * @len: size of the allocation - * @fd: will be populated with a fd which provides the - * handle to the allocated dma-buf - * @fd_flags: file descriptor flags used when allocating - * @heap_flags: flags passed to heap - * - * Provided by userspace as an argument to the ioctl - */ -struct dma_heap_allocation_data { - __u64 len; - __u32 fd; - __u32 fd_flags; - __u64 heap_flags; -}; - -#define DMA_HEAP_IOC_MAGIC 'H' - -/** - * DOC: DMA_HEAP_IOCTL_ALLOC - allocate memory from pool - * - * Takes a dma_heap_allocation_data struct and returns it with the fd field - * populated with the dmabuf handle of the allocation. - */ -#define DMA_HEAP_IOCTL_ALLOC _IOWR(DMA_HEAP_IOC_MAGIC, 0x0,\ - struct dma_heap_allocation_data) - -#endif /* _UAPI_LINUX_DMABUF_POOL_H */ diff --git a/original/uapi/linux/dqblk_xfs.h b/original/uapi/linux/dqblk_xfs.h index c71d909..03d890b 100644 --- a/original/uapi/linux/dqblk_xfs.h +++ b/original/uapi/linux/dqblk_xfs.h @@ -61,16 +61,12 @@ typedef struct fs_disk_quota { __u64 d_ino_softlimit;/* preferred inode limit */ __u64 d_bcount; /* # disk blocks owned by the user */ __u64 d_icount; /* # inodes owned by the user */ - __s32 d_itimer; /* Zero if within inode limits. If - * not, we refuse service at this time - * (in seconds since Unix epoch) */ + __s32 d_itimer; /* zero if within inode limits */ + /* if not, we refuse service */ __s32 d_btimer; /* similar to above; for disk blocks */ __u16 d_iwarns; /* # warnings issued wrt num inodes */ __u16 d_bwarns; /* # warnings issued wrt disk blocks */ - __s8 d_itimer_hi; /* upper 8 bits of timer values */ - __s8 d_btimer_hi; - __s8 d_rtbtimer_hi; - __s8 d_padding2; /* padding2 - for future use */ + __s32 d_padding2; /* padding2 - for future use */ __u64 d_rtb_hardlimit;/* absolute limit on realtime blks */ __u64 d_rtb_softlimit;/* preferred limit on RT disk blks */ __u64 d_rtbcount; /* # realtime blocks owned */ @@ -126,12 +122,6 @@ typedef struct fs_disk_quota { #define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT) /* - * Quota expiration timestamps are 40-bit signed integers, with the upper 8 - * bits encoded in the _hi fields. - */ -#define FS_DQ_BIGTIME (1<<15) - -/* * Various flags related to quotactl(2). */ #define FS_QUOTA_UDQ_ACCT (1<<0) /* user quota accounting */ diff --git a/original/uapi/linux/elf.h b/original/uapi/linux/elf.h index 30f68b4..34c02e4 100644 --- a/original/uapi/linux/elf.h +++ b/original/uapi/linux/elf.h @@ -36,7 +36,6 @@ typedef __s64 Elf64_Sxword; #define PT_LOPROC 0x70000000 #define PT_HIPROC 0x7fffffff #define PT_GNU_EH_FRAME 0x6474e550 -#define PT_GNU_PROPERTY 0x6474e553 #define PT_GNU_STACK (PT_LOOS + 0x474e551) @@ -53,7 +52,7 @@ typedef __s64 Elf64_Sxword; * * - Oracle: Linker and Libraries. * Part No: 817–1984–19, August 2011. - * https://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf + * http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf * * - System V ABI AMD64 Architecture Processor Supplement * Draft Version 0.99.4, @@ -368,7 +367,6 @@ typedef struct elf64_shdr { * Notes used in ET_CORE. Architectures export some of the arch register sets * using the corresponding note types via the PTRACE_GETREGSET and * PTRACE_SETREGSET requests. - * The note name for all these is "LINUX". */ #define NT_PRSTATUS 1 #define NT_PRFPREG 2 @@ -425,16 +423,12 @@ typedef struct elf64_shdr { #define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */ #define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */ #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */ -#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */ #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */ #define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */ #define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */ -/* Note types with note name "GNU" */ -#define NT_GNU_PROPERTY_TYPE_0 5 - /* Note header in a PT_NOTE section */ typedef struct elf32_note { Elf32_Word n_namesz; /* Name size */ @@ -449,10 +443,4 @@ typedef struct elf64_note { Elf64_Word n_type; /* Content type */ } Elf64_Nhdr; -/* .note.gnu.property types for EM_AARCH64: */ -#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000 - -/* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */ -#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0) - #endif /* _UAPI_LINUX_ELF_H */ diff --git a/original/uapi/linux/elfcore.h b/original/uapi/linux/elfcore.h new file mode 100644 index 0000000..baf0356 --- /dev/null +++ b/original/uapi/linux/elfcore.h @@ -0,0 +1,101 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _UAPI_LINUX_ELFCORE_H +#define _UAPI_LINUX_ELFCORE_H + +#include <linux/types.h> +#include <linux/signal.h> +#include <linux/time.h> +#include <linux/ptrace.h> +#include <linux/elf.h> +#include <linux/fs.h> + +struct elf_siginfo +{ + int si_signo; /* signal number */ + int si_code; /* extra code */ + int si_errno; /* errno */ +}; + + +#ifndef __KERNEL__ +typedef elf_greg_t greg_t; +typedef elf_gregset_t gregset_t; +typedef elf_fpregset_t fpregset_t; +typedef elf_fpxregset_t fpxregset_t; +#define NGREG ELF_NGREG +#endif + +/* + * Definitions to generate Intel SVR4-like core files. + * These mostly have the same names as the SVR4 types with "elf_" + * tacked on the front to prevent clashes with linux definitions, + * and the typedef forms have been avoided. This is mostly like + * the SVR4 structure, but more Linuxy, with things that Linux does + * not support and which gdb doesn't really use excluded. + * Fields present but not used are marked with "XXX". + */ +struct elf_prstatus +{ +#if 0 + long pr_flags; /* XXX Process flags */ + short pr_why; /* XXX Reason for process halt */ + short pr_what; /* XXX More detailed reason */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal */ + short pr_cursig; /* Current signal */ + unsigned long pr_sigpend; /* Set of pending signals */ + unsigned long pr_sighold; /* Set of held signals */ +#if 0 + struct sigaltstack pr_altstack; /* Alternate stack info */ + struct sigaction pr_action; /* Signal action for current sig */ +#endif + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + struct __kernel_old_timeval pr_utime; /* User time */ + struct __kernel_old_timeval pr_stime; /* System time */ + struct __kernel_old_timeval pr_cutime; /* Cumulative user time */ + struct __kernel_old_timeval pr_cstime; /* Cumulative system time */ +#if 0 + long pr_instr; /* Current instruction */ +#endif + elf_gregset_t pr_reg; /* GP registers */ +#ifdef CONFIG_BINFMT_ELF_FDPIC + /* When using FDPIC, the loadmap addresses need to be communicated + * to GDB in order for GDB to do the necessary relocations. The + * fields (below) used to communicate this information are placed + * immediately after ``pr_reg'', so that the loadmap addresses may + * be viewed as part of the register set if so desired. + */ + unsigned long pr_exec_fdpic_loadmap; + unsigned long pr_interp_fdpic_loadmap; +#endif + int pr_fpvalid; /* True if math co-processor being used. */ +}; + +#define ELF_PRARGSZ (80) /* Number of chars for args */ + +struct elf_prpsinfo +{ + char pr_state; /* numeric process state */ + char pr_sname; /* char for pr_state */ + char pr_zomb; /* zombie */ + char pr_nice; /* nice val */ + unsigned long pr_flag; /* flags */ + __kernel_uid_t pr_uid; + __kernel_gid_t pr_gid; + pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; + /* Lots missing */ + char pr_fname[16]; /* filename of executable */ + char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */ +}; + +#ifndef __KERNEL__ +typedef struct elf_prstatus prstatus_t; +typedef struct elf_prpsinfo prpsinfo_t; +#define PRARGSZ ELF_PRARGSZ +#endif + + +#endif /* _UAPI_LINUX_ELFCORE_H */ diff --git a/original/uapi/linux/errqueue.h b/original/uapi/linux/errqueue.h index 3c70e8a..0cca196 100644 --- a/original/uapi/linux/errqueue.h +++ b/original/uapi/linux/errqueue.h @@ -5,13 +5,6 @@ #include <linux/types.h> #include <linux/time_types.h> -/* RFC 4884: return offset to extension struct + validation */ -struct sock_ee_data_rfc4884 { - __u16 len; - __u8 flags; - __u8 reserved; -}; - struct sock_extended_err { __u32 ee_errno; __u8 ee_origin; @@ -19,10 +12,7 @@ struct sock_extended_err { __u8 ee_code; __u8 ee_pad; __u32 ee_info; - union { - __u32 ee_data; - struct sock_ee_data_rfc4884 ee_rfc4884; - }; + __u32 ee_data; }; #define SO_EE_ORIGIN_NONE 0 @@ -41,14 +31,12 @@ struct sock_extended_err { #define SO_EE_CODE_TXTIME_INVALID_PARAM 1 #define SO_EE_CODE_TXTIME_MISSED 2 -#define SO_EE_RFC4884_FLAG_INVALID 1 - /** * struct scm_timestamping - timestamps exposed through cmsg * * The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_* * communicate network timestamps by passing this struct in a cmsg with - * recvmsg(). See Documentation/networking/timestamping.rst for details. + * recvmsg(). See Documentation/networking/timestamping.txt for details. * User space sees a timespec definition that matches either * __kernel_timespec or __kernel_old_timespec, in the kernel we * require two structure definitions to provide both. diff --git a/original/uapi/linux/ethtool.h b/original/uapi/linux/ethtool.h index 5afea69..d459179 100644 --- a/original/uapi/linux/ethtool.h +++ b/original/uapi/linux/ethtool.h @@ -14,7 +14,7 @@ #ifndef _UAPI_LINUX_ETHTOOL_H #define _UAPI_LINUX_ETHTOOL_H -#include <linux/const.h> +#include <linux/kernel.h> #include <linux/types.h> #include <linux/if_ether.h> @@ -26,14 +26,6 @@ * have the same layout for 32-bit and 64-bit userland. */ -/* Note on reserved space. - * Reserved fields must not be accessed directly by user space because - * they may be replaced by a different field in the future. They must - * be initialized to zero before making the request, e.g. via memset - * of the entire structure or implicitly by not being set in a structure - * initializer. - */ - /** * struct ethtool_cmd - DEPRECATED, link control and status * This structure is DEPRECATED, please use struct ethtool_link_settings. @@ -75,7 +67,6 @@ * and other link features that the link partner advertised * through autonegotiation; 0 if unknown or not applicable. * Read-only. - * @reserved: Reserved for future use; see the note on reserved space. * * The link speed in Mbps is split between @speed and @speed_hi. Use * the ethtool_cmd_speed() and ethtool_cmd_speed_set() functions to @@ -164,7 +155,6 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) * @bus_info: Device bus address. This should match the dev_name() * string for the underlying bus device, if there is one. May be * an empty string. - * @reserved2: Reserved for future use; see the note on reserved space. * @n_priv_flags: Number of flags valid for %ETHTOOL_GPFLAGS and * %ETHTOOL_SPFLAGS commands; also the number of strings in the * %ETH_SS_PRIV_FLAGS set @@ -366,7 +356,6 @@ struct ethtool_eeprom { * @tx_lpi_timer: Time in microseconds the interface delays prior to asserting * its tx lpi (after reaching 'idle' state). Effective only when eee * was negotiated and tx_lpi_enabled was set. - * @reserved: Reserved for future use; see the note on reserved space. */ struct ethtool_eee { __u32 cmd; @@ -385,7 +374,6 @@ struct ethtool_eee { * @cmd: %ETHTOOL_GMODULEINFO * @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx * @eeprom_len: Length of the eeprom - * @reserved: Reserved for future use; see the note on reserved space. * * This structure is used to return the information to * properly size memory for a subsequent call to %ETHTOOL_GMODULEEEPROM. @@ -591,62 +579,6 @@ struct ethtool_pauseparam { __u32 tx_pause; }; -/* Link extended state */ -enum ethtool_link_ext_state { - ETHTOOL_LINK_EXT_STATE_AUTONEG, - ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE, - ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH, - ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY, - ETHTOOL_LINK_EXT_STATE_NO_CABLE, - ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE, - ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE, - ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE, - ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED, - ETHTOOL_LINK_EXT_STATE_OVERHEAT, -}; - -/* More information in addition to ETHTOOL_LINK_EXT_STATE_AUTONEG. */ -enum ethtool_link_ext_substate_autoneg { - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1, - ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED, - ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED, - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE, - ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE, - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD, -}; - -/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE. - */ -enum ethtool_link_ext_substate_link_training { - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1, - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT, - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY, - ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT, -}; - -/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH. - */ -enum ethtool_link_ext_substate_link_logical_mismatch { - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED, -}; - -/* More information in addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY. - */ -enum ethtool_link_ext_substate_bad_signal_integrity { - ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1, - ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE, -}; - -/* More information in addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. */ -enum ethtool_link_ext_substate_cable_issue { - ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, - ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE, -}; - #define ETH_GSTRING_LEN 32 /** @@ -659,18 +591,8 @@ enum ethtool_link_ext_substate_cable_issue { * now deprecated * @ETH_SS_FEATURES: Device feature names * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names - * @ETH_SS_TUNABLES: tunable names * @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS * @ETH_SS_PHY_TUNABLES: PHY tunable names - * @ETH_SS_LINK_MODES: link mode names - * @ETH_SS_MSG_CLASSES: debug message class names - * @ETH_SS_WOL_MODES: wake-on-lan modes - * @ETH_SS_SOF_TIMESTAMPING: SOF_TIMESTAMPING_* flags - * @ETH_SS_TS_TX_TYPES: timestamping Tx types - * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters - * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types - * - * @ETH_SS_COUNT: number of defined string sets */ enum ethtool_stringset { ETH_SS_TEST = 0, @@ -682,16 +604,6 @@ enum ethtool_stringset { ETH_SS_TUNABLES, ETH_SS_PHY_STATS, ETH_SS_PHY_TUNABLES, - ETH_SS_LINK_MODES, - ETH_SS_MSG_CLASSES, - ETH_SS_WOL_MODES, - ETH_SS_SOF_TIMESTAMPING, - ETH_SS_TS_TX_TYPES, - ETH_SS_TS_RX_FILTERS, - ETH_SS_UDP_TUNNEL_TYPES, - - /* add new constants above here */ - ETH_SS_COUNT }; /** @@ -716,7 +628,6 @@ struct ethtool_gstrings { /** * struct ethtool_sset_info - string set information * @cmd: Command number = %ETHTOOL_GSSET_INFO - * @reserved: Reserved for future use; see the note on reserved space. * @sset_mask: On entry, a bitmask of string sets to query, with bits * numbered according to &enum ethtool_stringset. On return, a * bitmask of those string sets queried that are supported. @@ -761,7 +672,6 @@ enum ethtool_test_flags { * @flags: A bitmask of flags from &enum ethtool_test_flags. Some * flags may be set by the user on entry; others may be set by * the driver on return. - * @reserved: Reserved for future use; see the note on reserved space. * @len: On return, the number of test results * @data: Array of test results * @@ -962,7 +872,6 @@ union ethtool_flow_union { * @vlan_etype: VLAN EtherType * @vlan_tci: VLAN tag control information * @data: user defined data - * @padding: Reserved for future use; see the note on reserved space. * * Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT * is set in &struct ethtool_rx_flow_spec @flow_type. @@ -1138,8 +1047,7 @@ struct ethtool_rxfh_indir { * hardware hash key. * @hfunc: Defines the current RSS hash function used by HW (or to be set to). * Valid values are one of the %ETH_RSS_HASH_*. - * @rsvd8: Reserved for future use; see the note on reserved space. - * @rsvd32: Reserved for future use; see the note on reserved space. + * @rsvd: Reserved for future extensions. * @rss_config: RX ring/queue index for each hash value i.e., indirection table * of @indir_size __u32 elements, followed by hash key of @key_size * bytes. @@ -1307,9 +1215,7 @@ struct ethtool_sfeatures { * @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags * @phc_index: device index of the associated PHC, or -1 if there is none * @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values - * @tx_reserved: Reserved for future use; see the note on reserved space. * @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values - * @rx_reserved: Reserved for future use; see the note on reserved space. * * The bits in the 'tx_types' and 'rx_filters' fields correspond to * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values, @@ -1415,7 +1321,6 @@ enum ethtool_fec_config_bits { ETHTOOL_FEC_OFF_BIT, ETHTOOL_FEC_RS_BIT, ETHTOOL_FEC_BASER_BIT, - ETHTOOL_FEC_LLRS_BIT, }; #define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT) @@ -1423,7 +1328,6 @@ enum ethtool_fec_config_bits { #define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT) #define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT) #define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT) -#define ETHTOOL_FEC_LLRS (1 << ETHTOOL_FEC_LLRS_BIT) /* CMDs currently supported */ #define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings. @@ -1608,24 +1512,7 @@ enum ethtool_link_mode_bit_indices { ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, + /* must be last entry */ __ETHTOOL_LINK_MODE_MASK_NBITS }; @@ -1762,18 +1649,6 @@ static inline int ethtool_validate_duplex(__u8 duplex) return 0; } -#define MASTER_SLAVE_CFG_UNSUPPORTED 0 -#define MASTER_SLAVE_CFG_UNKNOWN 1 -#define MASTER_SLAVE_CFG_MASTER_PREFERRED 2 -#define MASTER_SLAVE_CFG_SLAVE_PREFERRED 3 -#define MASTER_SLAVE_CFG_MASTER_FORCE 4 -#define MASTER_SLAVE_CFG_SLAVE_FORCE 5 -#define MASTER_SLAVE_STATE_UNSUPPORTED 0 -#define MASTER_SLAVE_STATE_UNKNOWN 1 -#define MASTER_SLAVE_STATE_MASTER 2 -#define MASTER_SLAVE_STATE_SLAVE 3 -#define MASTER_SLAVE_STATE_ERR 4 - /* Which connector port. */ #define PORT_TP 0x00 #define PORT_AUI 0x01 @@ -1813,8 +1688,6 @@ static inline int ethtool_validate_duplex(__u8 duplex) #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */ #define WAKE_FILTER (1 << 7) -#define WOL_MODE_COUNT 8 - /* L2-L4 network traffic flow types */ #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */ #define UDP_V4_FLOW 0x02 /* hash or spec (udp_ip4_spec) */ @@ -1965,11 +1838,6 @@ enum ethtool_reset_flags { * autonegotiation; 0 if unknown or not applicable. Read-only. * @transceiver: Used to distinguish different possible PHY types, * reported consistently by PHYLIB. Read-only. - * @master_slave_cfg: Master/slave port mode. - * @master_slave_state: Master/slave port state. - * @reserved: Reserved for future use; see the note on reserved space. - * @reserved1: Reserved for future use; see the note on reserved space. - * @link_mode_masks: Variable length bitmaps. * * If autonegotiation is disabled, the speed and @duplex represent the * fixed link mode and are writable if the driver supports multiple @@ -2017,9 +1885,7 @@ struct ethtool_link_settings { __u8 eth_tp_mdix_ctrl; __s8 link_mode_masks_nwords; __u8 transceiver; - __u8 master_slave_cfg; - __u8 master_slave_state; - __u8 reserved1[1]; + __u8 reserved1[3]; __u32 reserved[7]; __u32 link_mode_masks[0]; /* layout of link_mode_masks fields: diff --git a/original/uapi/linux/ethtool_netlink.h b/original/uapi/linux/ethtool_netlink.h deleted file mode 100644 index a286635..0000000 --- a/original/uapi/linux/ethtool_netlink.h +++ /dev/null @@ -1,638 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ -/* - * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool - * - * See Documentation/networking/ethtool-netlink.rst in kernel source tree for - * doucumentation of the interface. - */ - -#ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_ -#define _UAPI_LINUX_ETHTOOL_NETLINK_H_ - -#include <linux/ethtool.h> - -/* message types - userspace to kernel */ -enum { - ETHTOOL_MSG_USER_NONE, - ETHTOOL_MSG_STRSET_GET, - ETHTOOL_MSG_LINKINFO_GET, - ETHTOOL_MSG_LINKINFO_SET, - ETHTOOL_MSG_LINKMODES_GET, - ETHTOOL_MSG_LINKMODES_SET, - ETHTOOL_MSG_LINKSTATE_GET, - ETHTOOL_MSG_DEBUG_GET, - ETHTOOL_MSG_DEBUG_SET, - ETHTOOL_MSG_WOL_GET, - ETHTOOL_MSG_WOL_SET, - ETHTOOL_MSG_FEATURES_GET, - ETHTOOL_MSG_FEATURES_SET, - ETHTOOL_MSG_PRIVFLAGS_GET, - ETHTOOL_MSG_PRIVFLAGS_SET, - ETHTOOL_MSG_RINGS_GET, - ETHTOOL_MSG_RINGS_SET, - ETHTOOL_MSG_CHANNELS_GET, - ETHTOOL_MSG_CHANNELS_SET, - ETHTOOL_MSG_COALESCE_GET, - ETHTOOL_MSG_COALESCE_SET, - ETHTOOL_MSG_PAUSE_GET, - ETHTOOL_MSG_PAUSE_SET, - ETHTOOL_MSG_EEE_GET, - ETHTOOL_MSG_EEE_SET, - ETHTOOL_MSG_TSINFO_GET, - ETHTOOL_MSG_CABLE_TEST_ACT, - ETHTOOL_MSG_CABLE_TEST_TDR_ACT, - ETHTOOL_MSG_TUNNEL_INFO_GET, - - /* add new constants above here */ - __ETHTOOL_MSG_USER_CNT, - ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1 -}; - -/* message types - kernel to userspace */ -enum { - ETHTOOL_MSG_KERNEL_NONE, - ETHTOOL_MSG_STRSET_GET_REPLY, - ETHTOOL_MSG_LINKINFO_GET_REPLY, - ETHTOOL_MSG_LINKINFO_NTF, - ETHTOOL_MSG_LINKMODES_GET_REPLY, - ETHTOOL_MSG_LINKMODES_NTF, - ETHTOOL_MSG_LINKSTATE_GET_REPLY, - ETHTOOL_MSG_DEBUG_GET_REPLY, - ETHTOOL_MSG_DEBUG_NTF, - ETHTOOL_MSG_WOL_GET_REPLY, - ETHTOOL_MSG_WOL_NTF, - ETHTOOL_MSG_FEATURES_GET_REPLY, - ETHTOOL_MSG_FEATURES_SET_REPLY, - ETHTOOL_MSG_FEATURES_NTF, - ETHTOOL_MSG_PRIVFLAGS_GET_REPLY, - ETHTOOL_MSG_PRIVFLAGS_NTF, - ETHTOOL_MSG_RINGS_GET_REPLY, - ETHTOOL_MSG_RINGS_NTF, - ETHTOOL_MSG_CHANNELS_GET_REPLY, - ETHTOOL_MSG_CHANNELS_NTF, - ETHTOOL_MSG_COALESCE_GET_REPLY, - ETHTOOL_MSG_COALESCE_NTF, - ETHTOOL_MSG_PAUSE_GET_REPLY, - ETHTOOL_MSG_PAUSE_NTF, - ETHTOOL_MSG_EEE_GET_REPLY, - ETHTOOL_MSG_EEE_NTF, - ETHTOOL_MSG_TSINFO_GET_REPLY, - ETHTOOL_MSG_CABLE_TEST_NTF, - ETHTOOL_MSG_CABLE_TEST_TDR_NTF, - ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY, - - /* add new constants above here */ - __ETHTOOL_MSG_KERNEL_CNT, - ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1 -}; - -/* request header */ - -/* use compact bitsets in reply */ -#define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0) -/* provide optional reply for SET or ACT requests */ -#define ETHTOOL_FLAG_OMIT_REPLY (1 << 1) -/* request statistics, if supported by the driver */ -#define ETHTOOL_FLAG_STATS (1 << 2) - -#define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \ - ETHTOOL_FLAG_OMIT_REPLY | \ - ETHTOOL_FLAG_STATS) - -enum { - ETHTOOL_A_HEADER_UNSPEC, - ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */ - ETHTOOL_A_HEADER_DEV_NAME, /* string */ - ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */ - - /* add new constants above here */ - __ETHTOOL_A_HEADER_CNT, - ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1 -}; - -/* bit sets */ - -enum { - ETHTOOL_A_BITSET_BIT_UNSPEC, - ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */ - ETHTOOL_A_BITSET_BIT_NAME, /* string */ - ETHTOOL_A_BITSET_BIT_VALUE, /* flag */ - - /* add new constants above here */ - __ETHTOOL_A_BITSET_BIT_CNT, - ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1 -}; - -enum { - ETHTOOL_A_BITSET_BITS_UNSPEC, - ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */ - - /* add new constants above here */ - __ETHTOOL_A_BITSET_BITS_CNT, - ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1 -}; - -enum { - ETHTOOL_A_BITSET_UNSPEC, - ETHTOOL_A_BITSET_NOMASK, /* flag */ - ETHTOOL_A_BITSET_SIZE, /* u32 */ - ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */ - ETHTOOL_A_BITSET_VALUE, /* binary */ - ETHTOOL_A_BITSET_MASK, /* binary */ - - /* add new constants above here */ - __ETHTOOL_A_BITSET_CNT, - ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1 -}; - -/* string sets */ - -enum { - ETHTOOL_A_STRING_UNSPEC, - ETHTOOL_A_STRING_INDEX, /* u32 */ - ETHTOOL_A_STRING_VALUE, /* string */ - - /* add new constants above here */ - __ETHTOOL_A_STRING_CNT, - ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1 -}; - -enum { - ETHTOOL_A_STRINGS_UNSPEC, - ETHTOOL_A_STRINGS_STRING, /* nest - _A_STRINGS_* */ - - /* add new constants above here */ - __ETHTOOL_A_STRINGS_CNT, - ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1 -}; - -enum { - ETHTOOL_A_STRINGSET_UNSPEC, - ETHTOOL_A_STRINGSET_ID, /* u32 */ - ETHTOOL_A_STRINGSET_COUNT, /* u32 */ - ETHTOOL_A_STRINGSET_STRINGS, /* nest - _A_STRINGS_* */ - - /* add new constants above here */ - __ETHTOOL_A_STRINGSET_CNT, - ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1 -}; - -enum { - ETHTOOL_A_STRINGSETS_UNSPEC, - ETHTOOL_A_STRINGSETS_STRINGSET, /* nest - _A_STRINGSET_* */ - - /* add new constants above here */ - __ETHTOOL_A_STRINGSETS_CNT, - ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1 -}; - -/* STRSET */ - -enum { - ETHTOOL_A_STRSET_UNSPEC, - ETHTOOL_A_STRSET_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_STRSET_STRINGSETS, /* nest - _A_STRINGSETS_* */ - ETHTOOL_A_STRSET_COUNTS_ONLY, /* flag */ - - /* add new constants above here */ - __ETHTOOL_A_STRSET_CNT, - ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1 -}; - -/* LINKINFO */ - -enum { - ETHTOOL_A_LINKINFO_UNSPEC, - ETHTOOL_A_LINKINFO_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_LINKINFO_PORT, /* u8 */ - ETHTOOL_A_LINKINFO_PHYADDR, /* u8 */ - ETHTOOL_A_LINKINFO_TP_MDIX, /* u8 */ - ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, /* u8 */ - ETHTOOL_A_LINKINFO_TRANSCEIVER, /* u8 */ - - /* add new constants above here */ - __ETHTOOL_A_LINKINFO_CNT, - ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1 -}; - -/* LINKMODES */ - -enum { - ETHTOOL_A_LINKMODES_UNSPEC, - ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */ - ETHTOOL_A_LINKMODES_OURS, /* bitset */ - ETHTOOL_A_LINKMODES_PEER, /* bitset */ - ETHTOOL_A_LINKMODES_SPEED, /* u32 */ - ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */ - ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */ - ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */ - ETHTOOL_A_LINKMODES_LANES, /* u32 */ - - /* add new constants above here */ - __ETHTOOL_A_LINKMODES_CNT, - ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1 -}; - -/* LINKSTATE */ - -enum { - ETHTOOL_A_LINKSTATE_UNSPEC, - ETHTOOL_A_LINKSTATE_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_LINKSTATE_LINK, /* u8 */ - ETHTOOL_A_LINKSTATE_SQI, /* u32 */ - ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */ - ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */ - ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */ - - /* add new constants above here */ - __ETHTOOL_A_LINKSTATE_CNT, - ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1 -}; - -/* DEBUG */ - -enum { - ETHTOOL_A_DEBUG_UNSPEC, - ETHTOOL_A_DEBUG_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_DEBUG_MSGMASK, /* bitset */ - - /* add new constants above here */ - __ETHTOOL_A_DEBUG_CNT, - ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1 -}; - -/* WOL */ - -enum { - ETHTOOL_A_WOL_UNSPEC, - ETHTOOL_A_WOL_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_WOL_MODES, /* bitset */ - ETHTOOL_A_WOL_SOPASS, /* binary */ - - /* add new constants above here */ - __ETHTOOL_A_WOL_CNT, - ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1 -}; - -/* FEATURES */ - -enum { - ETHTOOL_A_FEATURES_UNSPEC, - ETHTOOL_A_FEATURES_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_FEATURES_HW, /* bitset */ - ETHTOOL_A_FEATURES_WANTED, /* bitset */ - ETHTOOL_A_FEATURES_ACTIVE, /* bitset */ - ETHTOOL_A_FEATURES_NOCHANGE, /* bitset */ - - /* add new constants above here */ - __ETHTOOL_A_FEATURES_CNT, - ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1 -}; - -/* PRIVFLAGS */ - -enum { - ETHTOOL_A_PRIVFLAGS_UNSPEC, - ETHTOOL_A_PRIVFLAGS_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_PRIVFLAGS_FLAGS, /* bitset */ - - /* add new constants above here */ - __ETHTOOL_A_PRIVFLAGS_CNT, - ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1 -}; - -/* RINGS */ - -enum { - ETHTOOL_A_RINGS_UNSPEC, - ETHTOOL_A_RINGS_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_RINGS_RX_MAX, /* u32 */ - ETHTOOL_A_RINGS_RX_MINI_MAX, /* u32 */ - ETHTOOL_A_RINGS_RX_JUMBO_MAX, /* u32 */ - ETHTOOL_A_RINGS_TX_MAX, /* u32 */ - ETHTOOL_A_RINGS_RX, /* u32 */ - ETHTOOL_A_RINGS_RX_MINI, /* u32 */ - ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */ - ETHTOOL_A_RINGS_TX, /* u32 */ - - /* add new constants above here */ - __ETHTOOL_A_RINGS_CNT, - ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1) -}; - -/* CHANNELS */ - -enum { - ETHTOOL_A_CHANNELS_UNSPEC, - ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */ - ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */ - ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */ - ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */ - ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */ - ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */ - ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */ - ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */ - - /* add new constants above here */ - __ETHTOOL_A_CHANNELS_CNT, - ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1) -}; - -/* COALESCE */ - -enum { - ETHTOOL_A_COALESCE_UNSPEC, - ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_COALESCE_RX_USECS, /* u32 */ - ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */ - ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */ - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */ - ETHTOOL_A_COALESCE_TX_USECS, /* u32 */ - ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */ - ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */ - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */ - ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */ - ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */ - ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */ - ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */ - ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */ - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */ - ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */ - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */ - ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */ - ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */ - ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */ - ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */ - ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */ - ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */ - - /* add new constants above here */ - __ETHTOOL_A_COALESCE_CNT, - ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1) -}; - -/* PAUSE */ - -enum { - ETHTOOL_A_PAUSE_UNSPEC, - ETHTOOL_A_PAUSE_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_PAUSE_AUTONEG, /* u8 */ - ETHTOOL_A_PAUSE_RX, /* u8 */ - ETHTOOL_A_PAUSE_TX, /* u8 */ - ETHTOOL_A_PAUSE_STATS, /* nest - _PAUSE_STAT_* */ - - /* add new constants above here */ - __ETHTOOL_A_PAUSE_CNT, - ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1) -}; - -enum { - ETHTOOL_A_PAUSE_STAT_UNSPEC, - ETHTOOL_A_PAUSE_STAT_PAD, - - ETHTOOL_A_PAUSE_STAT_TX_FRAMES, - ETHTOOL_A_PAUSE_STAT_RX_FRAMES, - - /* add new constants above here */ - __ETHTOOL_A_PAUSE_STAT_CNT, - ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1) -}; - -/* EEE */ - -enum { - ETHTOOL_A_EEE_UNSPEC, - ETHTOOL_A_EEE_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_EEE_MODES_OURS, /* bitset */ - ETHTOOL_A_EEE_MODES_PEER, /* bitset */ - ETHTOOL_A_EEE_ACTIVE, /* u8 */ - ETHTOOL_A_EEE_ENABLED, /* u8 */ - ETHTOOL_A_EEE_TX_LPI_ENABLED, /* u8 */ - ETHTOOL_A_EEE_TX_LPI_TIMER, /* u32 */ - - /* add new constants above here */ - __ETHTOOL_A_EEE_CNT, - ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1) -}; - -/* TSINFO */ - -enum { - ETHTOOL_A_TSINFO_UNSPEC, - ETHTOOL_A_TSINFO_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_TSINFO_TIMESTAMPING, /* bitset */ - ETHTOOL_A_TSINFO_TX_TYPES, /* bitset */ - ETHTOOL_A_TSINFO_RX_FILTERS, /* bitset */ - ETHTOOL_A_TSINFO_PHC_INDEX, /* u32 */ - - /* add new constants above here */ - __ETHTOOL_A_TSINFO_CNT, - ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1) -}; - -/* CABLE TEST */ - -enum { - ETHTOOL_A_CABLE_TEST_UNSPEC, - ETHTOOL_A_CABLE_TEST_HEADER, /* nest - _A_HEADER_* */ - - /* add new constants above here */ - __ETHTOOL_A_CABLE_TEST_CNT, - ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1 -}; - -/* CABLE TEST NOTIFY */ -enum { - ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC, - ETHTOOL_A_CABLE_RESULT_CODE_OK, - ETHTOOL_A_CABLE_RESULT_CODE_OPEN, - ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT, - ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT, -}; - -enum { - ETHTOOL_A_CABLE_PAIR_A, - ETHTOOL_A_CABLE_PAIR_B, - ETHTOOL_A_CABLE_PAIR_C, - ETHTOOL_A_CABLE_PAIR_D, -}; - -enum { - ETHTOOL_A_CABLE_RESULT_UNSPEC, - ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ - ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */ - - __ETHTOOL_A_CABLE_RESULT_CNT, - ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1) -}; - -enum { - ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC, - ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ - ETHTOOL_A_CABLE_FAULT_LENGTH_CM, /* u32 */ - - __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT, - ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1) -}; - -enum { - ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC, - ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED, - ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED -}; - -enum { - ETHTOOL_A_CABLE_NEST_UNSPEC, - ETHTOOL_A_CABLE_NEST_RESULT, /* nest - ETHTOOL_A_CABLE_RESULT_ */ - ETHTOOL_A_CABLE_NEST_FAULT_LENGTH, /* nest - ETHTOOL_A_CABLE_FAULT_LENGTH_ */ - __ETHTOOL_A_CABLE_NEST_CNT, - ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1) -}; - -enum { - ETHTOOL_A_CABLE_TEST_NTF_UNSPEC, - ETHTOOL_A_CABLE_TEST_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */ - ETHTOOL_A_CABLE_TEST_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */ - ETHTOOL_A_CABLE_TEST_NTF_NEST, /* nest - of results: */ - - __ETHTOOL_A_CABLE_TEST_NTF_CNT, - ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1) -}; - -/* CABLE TEST TDR */ - -enum { - ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC, - ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST, /* u32 */ - ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST, /* u32 */ - ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP, /* u32 */ - ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR, /* u8 */ - - /* add new constants above here */ - __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT, - ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1 -}; - -enum { - ETHTOOL_A_CABLE_TEST_TDR_UNSPEC, - ETHTOOL_A_CABLE_TEST_TDR_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_CABLE_TEST_TDR_CFG, /* nest - *_TDR_CFG_* */ - - /* add new constants above here */ - __ETHTOOL_A_CABLE_TEST_TDR_CNT, - ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1 -}; - -/* CABLE TEST TDR NOTIFY */ - -enum { - ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC, - ETHTOOL_A_CABLE_AMPLITUDE_PAIR, /* u8 */ - ETHTOOL_A_CABLE_AMPLITUDE_mV, /* s16 */ - - __ETHTOOL_A_CABLE_AMPLITUDE_CNT, - ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1) -}; - -enum { - ETHTOOL_A_CABLE_PULSE_UNSPEC, - ETHTOOL_A_CABLE_PULSE_mV, /* s16 */ - - __ETHTOOL_A_CABLE_PULSE_CNT, - ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1) -}; - -enum { - ETHTOOL_A_CABLE_STEP_UNSPEC, - ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, /* u32 */ - ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, /* u32 */ - ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, /* u32 */ - - __ETHTOOL_A_CABLE_STEP_CNT, - ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1) -}; - -enum { - ETHTOOL_A_CABLE_TDR_NEST_UNSPEC, - ETHTOOL_A_CABLE_TDR_NEST_STEP, /* nest - ETHTTOOL_A_CABLE_STEP */ - ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, /* nest - ETHTOOL_A_CABLE_AMPLITUDE */ - ETHTOOL_A_CABLE_TDR_NEST_PULSE, /* nest - ETHTOOL_A_CABLE_PULSE */ - - __ETHTOOL_A_CABLE_TDR_NEST_CNT, - ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1) -}; - -enum { - ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC, - ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */ - ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */ - ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST, /* nest - of results: */ - - /* add new constants above here */ - __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT, - ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1 -}; - -/* TUNNEL INFO */ - -enum { - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN, - ETHTOOL_UDP_TUNNEL_TYPE_GENEVE, - ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE, - - __ETHTOOL_UDP_TUNNEL_TYPE_CNT -}; - -enum { - ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC, - - ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT, /* be16 */ - ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE, /* u32 */ - - /* add new constants above here */ - __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT, - ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1) -}; - -enum { - ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC, - - ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE, /* u32 */ - ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES, /* bitset */ - ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY, /* nest - _UDP_ENTRY_* */ - - /* add new constants above here */ - __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT, - ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1) -}; - -enum { - ETHTOOL_A_TUNNEL_UDP_UNSPEC, - - ETHTOOL_A_TUNNEL_UDP_TABLE, /* nest - _UDP_TABLE_* */ - - /* add new constants above here */ - __ETHTOOL_A_TUNNEL_UDP_CNT, - ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1) -}; - -enum { - ETHTOOL_A_TUNNEL_INFO_UNSPEC, - ETHTOOL_A_TUNNEL_INFO_HEADER, /* nest - _A_HEADER_* */ - - ETHTOOL_A_TUNNEL_INFO_UDP_PORTS, /* nest - _UDP_TABLE */ - - /* add new constants above here */ - __ETHTOOL_A_TUNNEL_INFO_CNT, - ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1) -}; - -/* generic netlink info */ -#define ETHTOOL_GENL_NAME "ethtool" -#define ETHTOOL_GENL_VERSION 1 - -#define ETHTOOL_MCGRP_MONITOR_NAME "monitor" - -#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */ diff --git a/original/uapi/linux/f2fs.h b/original/uapi/linux/f2fs.h deleted file mode 100644 index 352a822..0000000 --- a/original/uapi/linux/f2fs.h +++ /dev/null @@ -1,98 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ - -#ifndef _UAPI_LINUX_F2FS_H -#define _UAPI_LINUX_F2FS_H -#include <linux/types.h> -#include <linux/ioctl.h> - -/* - * f2fs-specific ioctl commands - */ -#define F2FS_IOCTL_MAGIC 0xf5 -#define F2FS_IOC_START_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 1) -#define F2FS_IOC_COMMIT_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 2) -#define F2FS_IOC_START_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 3) -#define F2FS_IOC_RELEASE_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 4) -#define F2FS_IOC_ABORT_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 5) -#define F2FS_IOC_GARBAGE_COLLECT _IOW(F2FS_IOCTL_MAGIC, 6, __u32) -#define F2FS_IOC_WRITE_CHECKPOINT _IO(F2FS_IOCTL_MAGIC, 7) -#define F2FS_IOC_DEFRAGMENT _IOWR(F2FS_IOCTL_MAGIC, 8, \ - struct f2fs_defragment) -#define F2FS_IOC_MOVE_RANGE _IOWR(F2FS_IOCTL_MAGIC, 9, \ - struct f2fs_move_range) -#define F2FS_IOC_FLUSH_DEVICE _IOW(F2FS_IOCTL_MAGIC, 10, \ - struct f2fs_flush_device) -#define F2FS_IOC_GARBAGE_COLLECT_RANGE _IOW(F2FS_IOCTL_MAGIC, 11, \ - struct f2fs_gc_range) -#define F2FS_IOC_GET_FEATURES _IOR(F2FS_IOCTL_MAGIC, 12, __u32) -#define F2FS_IOC_SET_PIN_FILE _IOW(F2FS_IOCTL_MAGIC, 13, __u32) -#define F2FS_IOC_GET_PIN_FILE _IOR(F2FS_IOCTL_MAGIC, 14, __u32) -#define F2FS_IOC_PRECACHE_EXTENTS _IO(F2FS_IOCTL_MAGIC, 15) -#define F2FS_IOC_RESIZE_FS _IOW(F2FS_IOCTL_MAGIC, 16, __u64) -#define F2FS_IOC_GET_COMPRESS_BLOCKS _IOR(F2FS_IOCTL_MAGIC, 17, __u64) -#define F2FS_IOC_RELEASE_COMPRESS_BLOCKS \ - _IOR(F2FS_IOCTL_MAGIC, 18, __u64) -#define F2FS_IOC_RESERVE_COMPRESS_BLOCKS \ - _IOR(F2FS_IOCTL_MAGIC, 19, __u64) -#define F2FS_IOC_SEC_TRIM_FILE _IOW(F2FS_IOCTL_MAGIC, 20, \ - struct f2fs_sectrim_range) -#define F2FS_IOC_GET_COMPRESS_OPTION _IOR(F2FS_IOCTL_MAGIC, 21, \ - struct f2fs_comp_option) -#define F2FS_IOC_SET_COMPRESS_OPTION _IOW(F2FS_IOCTL_MAGIC, 22, \ - struct f2fs_comp_option) -#define F2FS_IOC_DECOMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 23) -#define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24) - -/* - * should be same as XFS_IOC_GOINGDOWN. - * Flags for going down operation used by FS_IOC_GOINGDOWN - */ -#define F2FS_IOC_SHUTDOWN _IOR('X', 125, __u32) /* Shutdown */ -#define F2FS_GOING_DOWN_FULLSYNC 0x0 /* going down with full sync */ -#define F2FS_GOING_DOWN_METASYNC 0x1 /* going down with metadata */ -#define F2FS_GOING_DOWN_NOSYNC 0x2 /* going down */ -#define F2FS_GOING_DOWN_METAFLUSH 0x3 /* going down with meta flush */ -#define F2FS_GOING_DOWN_NEED_FSCK 0x4 /* going down to trigger fsck */ - -/* - * Flags used by F2FS_IOC_SEC_TRIM_FILE - */ -#define F2FS_TRIM_FILE_DISCARD 0x1 /* send discard command */ -#define F2FS_TRIM_FILE_ZEROOUT 0x2 /* zero out */ -#define F2FS_TRIM_FILE_MASK 0x3 - -struct f2fs_gc_range { - __u32 sync; - __u64 start; - __u64 len; -}; - -struct f2fs_defragment { - __u64 start; - __u64 len; -}; - -struct f2fs_move_range { - __u32 dst_fd; /* destination fd */ - __u64 pos_in; /* start position in src_fd */ - __u64 pos_out; /* start position in dst_fd */ - __u64 len; /* size to move */ -}; - -struct f2fs_flush_device { - __u32 dev_num; /* device number to flush */ - __u32 segments; /* # of segments to flush */ -}; - -struct f2fs_sectrim_range { - __u64 start; - __u64 len; - __u64 flags; -}; - -struct f2fs_comp_option { - __u8 algorithm; - __u8 log_cluster_size; -}; - -#endif /* _UAPI_LINUX_F2FS_H */ diff --git a/original/uapi/linux/fanotify.h b/original/uapi/linux/fanotify.h index fbf9c5c..b9effa6 100644 --- a/original/uapi/linux/fanotify.h +++ b/original/uapi/linux/fanotify.h @@ -25,9 +25,9 @@ #define FAN_ACCESS_PERM 0x00020000 /* File accessed in perm check */ #define FAN_OPEN_EXEC_PERM 0x00040000 /* File open/exec in perm check */ -#define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */ +#define FAN_ONDIR 0x40000000 /* event occurred against dir */ -#define FAN_ONDIR 0x40000000 /* Event occurred against dir */ +#define FAN_EVENT_ON_CHILD 0x08000000 /* interested in child events */ /* helper events */ #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE) /* close */ @@ -53,11 +53,6 @@ /* Flags to determine fanotify event format */ #define FAN_REPORT_TID 0x00000100 /* event->pid is thread id */ #define FAN_REPORT_FID 0x00000200 /* Report unique file id */ -#define FAN_REPORT_DIR_FID 0x00000400 /* Report unique directory id */ -#define FAN_REPORT_NAME 0x00000800 /* Report events with name */ - -/* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */ -#define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME) /* Deprecated - do not use this in programs and do not add new flags here! */ #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \ @@ -121,8 +116,6 @@ struct fanotify_event_metadata { }; #define FAN_EVENT_INFO_TYPE_FID 1 -#define FAN_EVENT_INFO_TYPE_DFID_NAME 2 -#define FAN_EVENT_INFO_TYPE_DFID 3 /* Variable length info record following event metadata */ struct fanotify_event_info_header { @@ -131,13 +124,7 @@ struct fanotify_event_info_header { __u16 len; }; -/* - * Unique file identifier info record. - * This structure is used for records of types FAN_EVENT_INFO_TYPE_FID, - * FAN_EVENT_INFO_TYPE_DFID and FAN_EVENT_INFO_TYPE_DFID_NAME. - * For FAN_EVENT_INFO_TYPE_DFID_NAME there is additionally a null terminated - * name immediately after the file handle. - */ +/* Unique file identifier info record */ struct fanotify_event_info_fid { struct fanotify_event_info_header hdr; __kernel_fsid_t fsid; diff --git a/original/uapi/linux/fb.h b/original/uapi/linux/fb.h index 4c14e8b..b6aac7e 100644 --- a/original/uapi/linux/fb.h +++ b/original/uapi/linux/fb.h @@ -205,7 +205,6 @@ struct fb_bitfield { #define FB_ACTIVATE_ALL 64 /* change all VCs on this fb */ #define FB_ACTIVATE_FORCE 128 /* force apply even when no change*/ #define FB_ACTIVATE_INV_MODE 256 /* invalidate videomode */ -#define FB_ACTIVATE_KD_TEXT 512 /* for KDSET vt ioctl */ #define FB_ACCELF_TEXT 1 /* (OBSOLETE) see fb_info.flags and vc_mode */ diff --git a/original/uapi/linux/fcntl.h b/original/uapi/linux/fcntl.h index 2f86b2a..1f97b33 100644 --- a/original/uapi/linux/fcntl.h +++ b/original/uapi/linux/fcntl.h @@ -3,7 +3,6 @@ #define _UAPI_LINUX_FCNTL_H #include <asm/fcntl.h> -#include <linux/openat2.h> #define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0) #define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1) @@ -84,20 +83,10 @@ #define DN_ATTRIB 0x00000020 /* File changed attibutes */ #define DN_MULTISHOT 0x80000000 /* Don't remove notifier */ -/* - * The constants AT_REMOVEDIR and AT_EACCESS have the same value. AT_EACCESS is - * meaningful only to faccessat, while AT_REMOVEDIR is meaningful only to - * unlinkat. The two functions do completely different things and therefore, - * the flags can be allowed to overlap. For example, passing AT_REMOVEDIR to - * faccessat would be undefined behavior and thus treating it equivalent to - * AT_EACCESS is valid undefined behavior. - */ #define AT_FDCWD -100 /* Special value used to indicate openat should use the current working directory. */ #define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ -#define AT_EACCESS 0x200 /* Test access permitted for - effective IDs, not real IDs. */ #define AT_REMOVEDIR 0x200 /* Remove directory instead of unlinking file. */ #define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ @@ -111,4 +100,5 @@ #define AT_RECURSIVE 0x8000 /* Apply to the entire subtree */ + #endif /* _UAPI_LINUX_FCNTL_H */ diff --git a/original/uapi/linux/fd.h b/original/uapi/linux/fd.h index 8b80c63..90fb947 100644 --- a/original/uapi/linux/fd.h +++ b/original/uapi/linux/fd.h @@ -172,10 +172,7 @@ struct floppy_drive_params { * used in succession to try to read the disk. If the FDC cannot lock onto * the disk, the next format is tried. This uses the variable 'probing'. */ - -#define FD_AUTODETECT_SIZE 8 - - short autodetect[FD_AUTODETECT_SIZE]; /* autodetected formats */ + short autodetect[8]; /* autodetected formats */ int checkfreq; /* how often should the drive be checked for disk * changes */ @@ -360,25 +357,10 @@ struct floppy_raw_cmd { int buffer_length; /* length of allocated buffer */ unsigned char rate; - -#define FD_RAW_CMD_SIZE 16 -#define FD_RAW_REPLY_SIZE 16 -#define FD_RAW_CMD_FULLSIZE (FD_RAW_CMD_SIZE + 1 + FD_RAW_REPLY_SIZE) - - /* The command may take up the space initially intended for the reply - * and the reply count. Needed for long 82078 commands such as RESTORE, - * which takes 17 command bytes. - */ - unsigned char cmd_count; - union { - struct { - unsigned char cmd[FD_RAW_CMD_SIZE]; - unsigned char reply_count; - unsigned char reply[FD_RAW_REPLY_SIZE]; - }; - unsigned char fullcmd[FD_RAW_CMD_FULLSIZE]; - }; + unsigned char cmd[16]; + unsigned char reply_count; + unsigned char reply[16]; int track; int resultcode; diff --git a/original/uapi/linux/fdreg.h b/original/uapi/linux/fdreg.h index 10d3363..5e2981d 100644 --- a/original/uapi/linux/fdreg.h +++ b/original/uapi/linux/fdreg.h @@ -7,28 +7,26 @@ * Handbook", Sanches and Canton. */ -/* 82077's auxiliary status registers A & B (R) */ -#define FD_SRA 0 -#define FD_SRB 1 - -/* Digital Output Register */ -#define FD_DOR 2 - -/* 82077's tape drive register (R/W) */ -#define FD_TDR 3 - -/* 82077's data rate select register (W) */ -#define FD_DSR 4 +#ifdef FDPATCHES +#define FD_IOPORT fdc_state[fdc].address +#else +/* It would be a lot saner just to force fdc_state[fdc].address to always + be set ! FIXME */ +#define FD_IOPORT 0x3f0 +#endif /* Fd controller regs. S&C, about page 340 */ -#define FD_STATUS 4 -#define FD_DATA 5 +#define FD_STATUS (4 + FD_IOPORT ) +#define FD_DATA (5 + FD_IOPORT ) + +/* Digital Output Register */ +#define FD_DOR (2 + FD_IOPORT ) /* Digital Input Register (read) */ -#define FD_DIR 7 +#define FD_DIR (7 + FD_IOPORT ) /* Diskette Control Register (write)*/ -#define FD_DCR 7 +#define FD_DCR (7 + FD_IOPORT ) /* Bits of main status register */ #define STATUS_BUSYMASK 0x0F /* drive busy mask */ diff --git a/original/uapi/linux/fiemap.h b/original/uapi/linux/fiemap.h index 07c1cdc..8c0bc24 100644 --- a/original/uapi/linux/fiemap.h +++ b/original/uapi/linux/fiemap.h @@ -9,8 +9,8 @@ * Andreas Dilger <adilger@sun.com> */ -#ifndef _UAPI_LINUX_FIEMAP_H -#define _UAPI_LINUX_FIEMAP_H +#ifndef _LINUX_FIEMAP_H +#define _LINUX_FIEMAP_H #include <linux/types.h> @@ -67,4 +67,4 @@ struct fiemap { #define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other * files. */ -#endif /* _UAPI_LINUX_FIEMAP_H */ +#endif /* _LINUX_FIEMAP_H */ diff --git a/original/uapi/linux/firewire-cdev.h b/original/uapi/linux/firewire-cdev.h index 5effa98..1acd2b1 100644 --- a/original/uapi/linux/firewire-cdev.h +++ b/original/uapi/linux/firewire-cdev.h @@ -308,7 +308,7 @@ struct fw_cdev_event_iso_interrupt_mc { /** * struct fw_cdev_event_iso_resource - Iso resources were allocated or freed * @closure: See &fw_cdev_event_common; - * set by``FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE)`` ioctl + * set by %FW_CDEV_IOC_(DE)ALLOCATE_ISO_RESOURCE(_ONCE) ioctl * @type: %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or * %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED * @handle: Reference by which an allocated resource can be deallocated @@ -844,7 +844,7 @@ struct fw_cdev_queue_iso { * struct fw_cdev_start_iso - Start an isochronous transmission or reception * @cycle: Cycle in which to start I/O. If @cycle is greater than or * equal to 0, the I/O will start on that cycle. - * @sync: Determines the value to wait for receive packets that have + * @sync: Determines the value to wait for for receive packets that have * the %FW_CDEV_ISO_SYNC bit set * @tags: Tag filter bit mask. Only valid for isochronous reception. * Determines the tag values for which packets will be accepted. diff --git a/original/uapi/linux/fpga-dfl.h b/original/uapi/linux/fpga-dfl.h index 1621b07..ec70a07 100644 --- a/original/uapi/linux/fpga-dfl.h +++ b/original/uapi/linux/fpga-dfl.h @@ -151,65 +151,6 @@ struct dfl_fpga_port_dma_unmap { #define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4) -/** - * struct dfl_fpga_irq_set - the argument for DFL_FPGA_XXX_SET_IRQ ioctl. - * - * @start: Index of the first irq. - * @count: The number of eventfd handler. - * @evtfds: Eventfd handlers. - */ -struct dfl_fpga_irq_set { - __u32 start; - __u32 count; - __s32 evtfds[]; -}; - -/** - * DFL_FPGA_PORT_ERR_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 5, - * __u32 num_irqs) - * - * Get the number of irqs supported by the fpga port error reporting private - * feature. Currently hardware supports up to 1 irq. - * Return: 0 on success, -errno on failure. - */ -#define DFL_FPGA_PORT_ERR_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \ - DFL_PORT_BASE + 5, __u32) - -/** - * DFL_FPGA_PORT_ERR_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_PORT_BASE + 6, - * struct dfl_fpga_irq_set) - * - * Set fpga port error reporting interrupt trigger if evtfds[n] is valid. - * Unset related interrupt trigger if evtfds[n] is a negative value. - * Return: 0 on success, -errno on failure. - */ -#define DFL_FPGA_PORT_ERR_SET_IRQ _IOW(DFL_FPGA_MAGIC, \ - DFL_PORT_BASE + 6, \ - struct dfl_fpga_irq_set) - -/** - * DFL_FPGA_PORT_UINT_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 7, - * __u32 num_irqs) - * - * Get the number of irqs supported by the fpga AFU interrupt private - * feature. - * Return: 0 on success, -errno on failure. - */ -#define DFL_FPGA_PORT_UINT_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \ - DFL_PORT_BASE + 7, __u32) - -/** - * DFL_FPGA_PORT_UINT_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_PORT_BASE + 8, - * struct dfl_fpga_irq_set) - * - * Set fpga AFU interrupt trigger if evtfds[n] is valid. - * Unset related interrupt trigger if evtfds[n] is a negative value. - * Return: 0 on success, -errno on failure. - */ -#define DFL_FPGA_PORT_UINT_SET_IRQ _IOW(DFL_FPGA_MAGIC, \ - DFL_PORT_BASE + 8, \ - struct dfl_fpga_irq_set) - /* IOCTLs for FME file descriptor */ /** @@ -253,27 +194,4 @@ struct dfl_fpga_fme_port_pr { */ #define DFL_FPGA_FME_PORT_ASSIGN _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 2, int) -/** - * DFL_FPGA_FME_ERR_GET_IRQ_NUM - _IOR(DFL_FPGA_MAGIC, DFL_FME_BASE + 3, - * __u32 num_irqs) - * - * Get the number of irqs supported by the fpga fme error reporting private - * feature. Currently hardware supports up to 1 irq. - * Return: 0 on success, -errno on failure. - */ -#define DFL_FPGA_FME_ERR_GET_IRQ_NUM _IOR(DFL_FPGA_MAGIC, \ - DFL_FME_BASE + 3, __u32) - -/** - * DFL_FPGA_FME_ERR_SET_IRQ - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 4, - * struct dfl_fpga_irq_set) - * - * Set fpga fme error reporting interrupt trigger if evtfds[n] is valid. - * Unset related interrupt trigger if evtfds[n] is a negative value. - * Return: 0 on success, -errno on failure. - */ -#define DFL_FPGA_FME_ERR_SET_IRQ _IOW(DFL_FPGA_MAGIC, \ - DFL_FME_BASE + 4, \ - struct dfl_fpga_irq_set) - #endif /* _UAPI_LINUX_FPGA_DFL_H */ diff --git a/original/uapi/linux/fs.h b/original/uapi/linux/fs.h index f44eb0a..379a612 100644 --- a/original/uapi/linux/fs.h +++ b/original/uapi/linux/fs.h @@ -262,7 +262,6 @@ struct fsxattr { #define FS_EA_INODE_FL 0x00200000 /* Inode used for large EA */ #define FS_EOFBLOCKS_FL 0x00400000 /* Reserved for ext4 */ #define FS_NOCOW_FL 0x00800000 /* Do not cow file */ -#define FS_DAX_FL 0x02000000 /* Inode is DAX */ #define FS_INLINE_DATA_FL 0x10000000 /* Reserved for ext4 */ #define FS_PROJINHERIT_FL 0x20000000 /* Create with parents projid */ #define FS_CASEFOLD_FL 0x40000000 /* Folder is case insensitive */ diff --git a/original/uapi/linux/fscrypt.h b/original/uapi/linux/fscrypt.h index fceafb5..7d150d8 100644 --- a/original/uapi/linux/fscrypt.h +++ b/original/uapi/linux/fscrypt.h @@ -8,7 +8,6 @@ #ifndef _UAPI_LINUX_FSCRYPT_H #define _UAPI_LINUX_FSCRYPT_H -#include <linux/ioctl.h> #include <linux/types.h> /* Encryption policy flags */ @@ -19,7 +18,7 @@ #define FSCRYPT_POLICY_FLAGS_PAD_MASK 0x03 #define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x04 #define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 0x08 -#define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 0x10 +#define FSCRYPT_POLICY_FLAGS_VALID 0x0F /* Encryption algorithms */ #define FSCRYPT_MODE_AES_256_XTS 1 @@ -27,7 +26,7 @@ #define FSCRYPT_MODE_AES_128_CBC 5 #define FSCRYPT_MODE_AES_128_CTS 6 #define FSCRYPT_MODE_ADIANTUM 9 -/* If adding a mode number > 9, update FSCRYPT_MODE_MAX in fscrypt_private.h */ +#define __FSCRYPT_MODE_MAX 9 /* * Legacy policy version; ad-hoc KDF and no key verification. @@ -44,6 +43,7 @@ struct fscrypt_policy_v1 { __u8 flags; __u8 master_key_descriptor[FSCRYPT_KEY_DESCRIPTOR_SIZE]; }; +#define fscrypt_policy fscrypt_policy_v1 /* * Process-subscribed "logon" key description prefix and payload format. @@ -109,22 +109,11 @@ struct fscrypt_key_specifier { } u; }; -/* - * Payload of Linux keyring key of type "fscrypt-provisioning", referenced by - * fscrypt_add_key_arg::key_id as an alternative to fscrypt_add_key_arg::raw. - */ -struct fscrypt_provisioning_key_payload { - __u32 type; - __u32 __reserved; - __u8 raw[]; -}; - /* Struct passed to FS_IOC_ADD_ENCRYPTION_KEY */ struct fscrypt_add_key_arg { struct fscrypt_key_specifier key_spec; __u32 raw_size; - __u32 key_id; - __u32 __reserved[7]; + __u32 __reserved[8]; /* N.B.: "temporary" flag, not reserved upstream */ #define __FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED 0x00000001 __u32 __flags; @@ -157,21 +146,19 @@ struct fscrypt_get_key_status_arg { __u32 __out_reserved[13]; }; -#define FS_IOC_SET_ENCRYPTION_POLICY _IOR('f', 19, struct fscrypt_policy_v1) +#define FS_IOC_SET_ENCRYPTION_POLICY _IOR('f', 19, struct fscrypt_policy) #define FS_IOC_GET_ENCRYPTION_PWSALT _IOW('f', 20, __u8[16]) -#define FS_IOC_GET_ENCRYPTION_POLICY _IOW('f', 21, struct fscrypt_policy_v1) +#define FS_IOC_GET_ENCRYPTION_POLICY _IOW('f', 21, struct fscrypt_policy) #define FS_IOC_GET_ENCRYPTION_POLICY_EX _IOWR('f', 22, __u8[9]) /* size + version */ #define FS_IOC_ADD_ENCRYPTION_KEY _IOWR('f', 23, struct fscrypt_add_key_arg) #define FS_IOC_REMOVE_ENCRYPTION_KEY _IOWR('f', 24, struct fscrypt_remove_key_arg) #define FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS _IOWR('f', 25, struct fscrypt_remove_key_arg) #define FS_IOC_GET_ENCRYPTION_KEY_STATUS _IOWR('f', 26, struct fscrypt_get_key_status_arg) -#define FS_IOC_GET_ENCRYPTION_NONCE _IOR('f', 27, __u8[16]) /**********************************************************************/ /* old names; don't add anything new here! */ #ifndef __KERNEL__ -#define fscrypt_policy fscrypt_policy_v1 #define FS_KEY_DESCRIPTOR_SIZE FSCRYPT_KEY_DESCRIPTOR_SIZE #define FS_POLICY_FLAGS_PAD_4 FSCRYPT_POLICY_FLAGS_PAD_4 #define FS_POLICY_FLAGS_PAD_8 FSCRYPT_POLICY_FLAGS_PAD_8 @@ -179,7 +166,7 @@ struct fscrypt_get_key_status_arg { #define FS_POLICY_FLAGS_PAD_32 FSCRYPT_POLICY_FLAGS_PAD_32 #define FS_POLICY_FLAGS_PAD_MASK FSCRYPT_POLICY_FLAGS_PAD_MASK #define FS_POLICY_FLAG_DIRECT_KEY FSCRYPT_POLICY_FLAG_DIRECT_KEY -#define FS_POLICY_FLAGS_VALID 0x07 /* contains old flags only */ +#define FS_POLICY_FLAGS_VALID FSCRYPT_POLICY_FLAGS_VALID #define FS_ENCRYPTION_MODE_INVALID 0 /* never used */ #define FS_ENCRYPTION_MODE_AES_256_XTS FSCRYPT_MODE_AES_256_XTS #define FS_ENCRYPTION_MODE_AES_256_GCM 2 /* never used */ diff --git a/original/uapi/linux/fsl_mc.h b/original/uapi/linux/fsl_mc.h deleted file mode 100644 index e574515..0000000 --- a/original/uapi/linux/fsl_mc.h +++ /dev/null @@ -1,34 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Management Complex (MC) userspace public interface - * - * Copyright 2021 NXP - * - */ -#ifndef _UAPI_FSL_MC_H_ -#define _UAPI_FSL_MC_H_ - -#include <linux/types.h> - -#define MC_CMD_NUM_OF_PARAMS 7 - -/** - * struct fsl_mc_command - Management Complex (MC) command structure - * @header: MC command header - * @params: MC command parameters - * - * Used by FSL_MC_SEND_MC_COMMAND - */ -struct fsl_mc_command { - __le64 header; - __le64 params[MC_CMD_NUM_OF_PARAMS]; -}; - -#define FSL_MC_SEND_CMD_IOCTL_TYPE 'R' -#define FSL_MC_SEND_CMD_IOCTL_SEQ 0xE0 - -#define FSL_MC_SEND_MC_COMMAND \ - _IOWR(FSL_MC_SEND_CMD_IOCTL_TYPE, FSL_MC_SEND_CMD_IOCTL_SEQ, \ - struct fsl_mc_command) - -#endif /* _UAPI_FSL_MC_H_ */ diff --git a/original/uapi/linux/fsverity.h b/original/uapi/linux/fsverity.h index 15384e2..da0daf6 100644 --- a/original/uapi/linux/fsverity.h +++ b/original/uapi/linux/fsverity.h @@ -34,70 +34,7 @@ struct fsverity_digest { __u8 digest[]; }; -/* - * Struct containing a file's Merkle tree properties. The fs-verity file digest - * is the hash of this struct. A userspace program needs this struct only if it - * needs to compute fs-verity file digests itself, e.g. in order to sign files. - * It isn't needed just to enable fs-verity on a file. - * - * Note: when computing the file digest, 'sig_size' and 'signature' must be left - * zero and empty, respectively. These fields are present only because some - * filesystems reuse this struct as part of their on-disk format. - */ -struct fsverity_descriptor { - __u8 version; /* must be 1 */ - __u8 hash_algorithm; /* Merkle tree hash algorithm */ - __u8 log_blocksize; /* log2 of size of data and tree blocks */ - __u8 salt_size; /* size of salt in bytes; 0 if none */ -#ifdef __KERNEL__ - __le32 sig_size; -#else - __le32 __reserved_0x04; /* must be 0 */ -#endif - __le64 data_size; /* size of file the Merkle tree is built over */ - __u8 root_hash[64]; /* Merkle tree root hash */ - __u8 salt[32]; /* salt prepended to each hashed block */ - __u8 __reserved[144]; /* must be 0's */ -#ifdef __KERNEL__ - __u8 signature[]; -#endif -}; - -/* - * Format in which fs-verity file digests are signed in built-in signatures. - * This is the same as 'struct fsverity_digest', except here some magic bytes - * are prepended to provide some context about what is being signed in case the - * same key is used for non-fsverity purposes, and here the fields have fixed - * endianness. - * - * This struct is specific to the built-in signature verification support, which - * is optional. fs-verity users may also verify signatures in userspace, in - * which case userspace is responsible for deciding on what bytes are signed. - * This struct may still be used, but it doesn't have to be. For example, - * userspace could instead use a string like "sha256:$digest_as_hex_string". - */ -struct fsverity_formatted_digest { - char magic[8]; /* must be "FSVerity" */ - __le16 digest_algorithm; - __le16 digest_size; - __u8 digest[]; -}; - -#define FS_VERITY_METADATA_TYPE_MERKLE_TREE 1 -#define FS_VERITY_METADATA_TYPE_DESCRIPTOR 2 -#define FS_VERITY_METADATA_TYPE_SIGNATURE 3 - -struct fsverity_read_metadata_arg { - __u64 metadata_type; - __u64 offset; - __u64 length; - __u64 buf_ptr; - __u64 __reserved; -}; - #define FS_IOC_ENABLE_VERITY _IOW('f', 133, struct fsverity_enable_arg) #define FS_IOC_MEASURE_VERITY _IOWR('f', 134, struct fsverity_digest) -#define FS_IOC_READ_VERITY_METADATA \ - _IOWR('f', 135, struct fsverity_read_metadata_arg) #endif /* _UAPI_LINUX_FSVERITY_H */ diff --git a/original/uapi/linux/fuse.h b/original/uapi/linux/fuse.h index 8fa26a2..373cada 100644 --- a/original/uapi/linux/fuse.h +++ b/original/uapi/linux/fuse.h @@ -172,13 +172,6 @@ * - add FUSE_WRITE_KILL_PRIV flag * - add FUSE_SETUPMAPPING and FUSE_REMOVEMAPPING * - add map_alignment to fuse_init_out, add FUSE_MAP_ALIGNMENT flag - * - * 7.32 - * - add flags to fuse_attr, add FUSE_ATTR_SUBMOUNT, add FUSE_SUBMOUNTS - * - * 7.33 - * - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID - * - add FUSE_OPEN_KILL_SUIDGID */ #ifndef _LINUX_FUSE_H @@ -214,7 +207,7 @@ #define FUSE_KERNEL_VERSION 7 /** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 33 +#define FUSE_KERNEL_MINOR_VERSION 31 /** The node ID of the root inode */ #define FUSE_ROOT_ID 1 @@ -238,7 +231,7 @@ struct fuse_attr { uint32_t gid; uint32_t rdev; uint32_t blksize; - uint32_t flags; + uint32_t padding; }; struct fuse_kstatfs { @@ -275,7 +268,6 @@ struct fuse_file_lock { #define FATTR_MTIME_NOW (1 << 8) #define FATTR_LOCKOWNER (1 << 9) #define FATTR_CTIME (1 << 10) -#define FATTR_KILL_SUIDGID (1 << 11) /** * Flags returned by the OPEN request @@ -321,15 +313,7 @@ struct fuse_file_lock { * FUSE_CACHE_SYMLINKS: cache READLINK responses * FUSE_NO_OPENDIR_SUPPORT: kernel supports zero-message opendir * FUSE_EXPLICIT_INVAL_DATA: only invalidate cached pages on explicit request - * FUSE_MAP_ALIGNMENT: init_out.map_alignment contains log2(byte alignment) for - * foffset and moffset fields in struct - * fuse_setupmapping_out and fuse_removemapping_one. - * FUSE_SUBMOUNTS: kernel supports auto-mounting directory submounts - * FUSE_HANDLE_KILLPRIV_V2: fs kills suid/sgid/cap on write/chown/trunc. - * Upon write/truncate suid/sgid is only killed if caller - * does not have CAP_FSETID. Additionally upon - * write/truncate sgid is killed only if file has group - * execute permission. (Same as Linux VFS behavior). + * FUSE_MAP_ALIGNMENT: map_alignment field is valid */ #define FUSE_ASYNC_READ (1 << 0) #define FUSE_POSIX_LOCKS (1 << 1) @@ -358,9 +342,6 @@ struct fuse_file_lock { #define FUSE_NO_OPENDIR_SUPPORT (1 << 24) #define FUSE_EXPLICIT_INVAL_DATA (1 << 25) #define FUSE_MAP_ALIGNMENT (1 << 26) -#define FUSE_SUBMOUNTS (1 << 27) -#define FUSE_HANDLE_KILLPRIV_V2 (1 << 28) -#define FUSE_PASSTHROUGH (1 << 31) /** * CUSE INIT request/reply flags @@ -390,14 +371,11 @@ struct fuse_file_lock { * * FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed * FUSE_WRITE_LOCKOWNER: lock_owner field is valid - * FUSE_WRITE_KILL_SUIDGID: kill suid and sgid bits + * FUSE_WRITE_KILL_PRIV: kill suid and sgid bits */ #define FUSE_WRITE_CACHE (1 << 0) #define FUSE_WRITE_LOCKOWNER (1 << 1) -#define FUSE_WRITE_KILL_SUIDGID (1 << 2) - -/* Obsolete alias; this flag implies killing suid/sgid only. */ -#define FUSE_WRITE_KILL_PRIV FUSE_WRITE_KILL_SUIDGID +#define FUSE_WRITE_KILL_PRIV (1 << 2) /** * Read flags @@ -439,19 +417,6 @@ struct fuse_file_lock { */ #define FUSE_FSYNC_FDATASYNC (1 << 0) -/** - * fuse_attr flags - * - * FUSE_ATTR_SUBMOUNT: Object is a submount root - */ -#define FUSE_ATTR_SUBMOUNT (1 << 0) - -/** - * Open flags - * FUSE_OPEN_KILL_SUIDGID: Kill suid and sgid if executable - */ -#define FUSE_OPEN_KILL_SUIDGID (1 << 0) - enum fuse_opcode { FUSE_LOOKUP = 1, FUSE_FORGET = 2, /* no reply */ @@ -500,7 +465,6 @@ enum fuse_opcode { FUSE_COPY_FILE_RANGE = 47, FUSE_SETUPMAPPING = 48, FUSE_REMOVEMAPPING = 49, - FUSE_CANONICAL_PATH = 2016, /* CUSE specific operations */ CUSE_INIT = 4096, @@ -614,20 +578,20 @@ struct fuse_setattr_in { struct fuse_open_in { uint32_t flags; - uint32_t open_flags; /* FUSE_OPEN_... */ + uint32_t unused; }; struct fuse_create_in { uint32_t flags; uint32_t mode; uint32_t umask; - uint32_t open_flags; /* FUSE_OPEN_... */ + uint32_t padding; }; struct fuse_open_out { uint64_t fh; uint32_t open_flags; - uint32_t passthrough_fh; + uint32_t padding; }; struct fuse_release_in { @@ -830,14 +794,6 @@ struct fuse_in_header { uint32_t padding; }; -/* fuse_passthrough_out for passthrough V1 */ -struct fuse_passthrough_out { - uint32_t fd; - /* For future implementation */ - uint32_t len; - void *vec; -}; - struct fuse_out_header { uint32_t len; int32_t error; @@ -913,10 +869,7 @@ struct fuse_notify_retrieve_in { }; /* Device ioctls: */ -#define FUSE_DEV_IOC_MAGIC 229 -#define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t) -/* 127 is reserved for the V1 interface implementation in Android */ -#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out) +#define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t) struct fuse_lseek_in { uint64_t fh; @@ -939,34 +892,4 @@ struct fuse_copy_file_range_in { uint64_t flags; }; -#define FUSE_SETUPMAPPING_FLAG_WRITE (1ull << 0) -#define FUSE_SETUPMAPPING_FLAG_READ (1ull << 1) -struct fuse_setupmapping_in { - /* An already open handle */ - uint64_t fh; - /* Offset into the file to start the mapping */ - uint64_t foffset; - /* Length of mapping required */ - uint64_t len; - /* Flags, FUSE_SETUPMAPPING_FLAG_* */ - uint64_t flags; - /* Offset in Memory Window */ - uint64_t moffset; -}; - -struct fuse_removemapping_in { - /* number of fuse_removemapping_one follows */ - uint32_t count; -}; - -struct fuse_removemapping_one { - /* Offset into the dax window start the unmapping */ - uint64_t moffset; - /* Length of mapping required */ - uint64_t len; -}; - -#define FUSE_REMOVEMAPPING_MAX_ENTRY \ - (PAGE_SIZE / sizeof(struct fuse_removemapping_one)) - #endif /* _LINUX_FUSE_H */ diff --git a/original/uapi/linux/genetlink.h b/original/uapi/linux/genetlink.h index d83f214..877f7fa 100644 --- a/original/uapi/linux/genetlink.h +++ b/original/uapi/linux/genetlink.h @@ -48,7 +48,6 @@ enum { CTRL_CMD_NEWMCAST_GRP, CTRL_CMD_DELMCAST_GRP, CTRL_CMD_GETMCAST_GRP, /* unused */ - CTRL_CMD_GETPOLICY, __CTRL_CMD_MAX, }; @@ -63,9 +62,6 @@ enum { CTRL_ATTR_MAXATTR, CTRL_ATTR_OPS, CTRL_ATTR_MCAST_GROUPS, - CTRL_ATTR_POLICY, - CTRL_ATTR_OP_POLICY, - CTRL_ATTR_OP, __CTRL_ATTR_MAX, }; @@ -87,15 +83,6 @@ enum { __CTRL_ATTR_MCAST_GRP_MAX, }; -enum { - CTRL_ATTR_POLICY_UNSPEC, - CTRL_ATTR_POLICY_DO, - CTRL_ATTR_POLICY_DUMP, - - __CTRL_ATTR_POLICY_DUMP_MAX, - CTRL_ATTR_POLICY_DUMP_MAX = __CTRL_ATTR_POLICY_DUMP_MAX - 1 -}; - #define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1) diff --git a/original/uapi/linux/gfs2_ondisk.h b/original/uapi/linux/gfs2_ondisk.h index 6ec4291..2dc10a0 100644 --- a/original/uapi/linux/gfs2_ondisk.h +++ b/original/uapi/linux/gfs2_ondisk.h @@ -47,7 +47,7 @@ #define GFS2_FORMAT_DE 1200 #define GFS2_FORMAT_QU 1500 /* These are part of the superblock */ -#define GFS2_FORMAT_FS 1802 +#define GFS2_FORMAT_FS 1801 #define GFS2_FORMAT_MULTI 1900 /* @@ -171,12 +171,6 @@ struct gfs2_rindex { #define GFS2_RGF_NOALLOC 0x00000008 #define GFS2_RGF_TRIMMED 0x00000010 -struct gfs2_inode_lvb { - __be32 ri_magic; - __be32 __pad; - __be64 ri_generation_deleted; -}; - struct gfs2_rgrp_lvb { __be32 rl_magic; __be32 rl_flags; @@ -389,9 +383,8 @@ struct gfs2_leaf { #define GFS2_EATYPE_USR 1 #define GFS2_EATYPE_SYS 2 #define GFS2_EATYPE_SECURITY 3 -#define GFS2_EATYPE_TRUSTED 4 -#define GFS2_EATYPE_LAST 4 +#define GFS2_EATYPE_LAST 3 #define GFS2_EATYPE_VALID(x) ((x) <= GFS2_EATYPE_LAST) #define GFS2_EAFLAG_LAST 0x01 /* last ea in block */ diff --git a/original/uapi/linux/gigaset_dev.h b/original/uapi/linux/gigaset_dev.h new file mode 100644 index 0000000..279551a --- /dev/null +++ b/original/uapi/linux/gigaset_dev.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ +/* + * interface to user space for the gigaset driver + * + * Copyright (c) 2004 by Hansjoerg Lipp <hjlipp@web.de> + * + * ===================================================================== + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * ===================================================================== + */ + +#ifndef GIGASET_INTERFACE_H +#define GIGASET_INTERFACE_H + +#include <linux/ioctl.h> + +/* The magic IOCTL value for this interface. */ +#define GIGASET_IOCTL 0x47 + +/* enable/disable device control via character device (lock out ISDN subsys) */ +#define GIGASET_REDIR _IOWR(GIGASET_IOCTL, 0, int) + +/* enable adapter configuration mode (M10x only) */ +#define GIGASET_CONFIG _IOWR(GIGASET_IOCTL, 1, int) + +/* set break characters (M105 only) */ +#define GIGASET_BRKCHARS _IOW(GIGASET_IOCTL, 2, unsigned char[6]) + +/* get version information selected by arg[0] */ +#define GIGASET_VERSION _IOWR(GIGASET_IOCTL, 3, unsigned[4]) +/* values for GIGASET_VERSION arg[0] */ +#define GIGVER_DRIVER 0 /* get driver version */ +#define GIGVER_COMPAT 1 /* get interface compatibility version */ +#define GIGVER_FWBASE 2 /* get base station firmware version */ + +#endif diff --git a/original/uapi/linux/gpio.h b/original/uapi/linux/gpio.h index eaaea3d..799cf82 100644 --- a/original/uapi/linux/gpio.h +++ b/original/uapi/linux/gpio.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * <linux/gpio.h> - userspace ABI for the GPIO character devices * @@ -11,299 +11,22 @@ #ifndef _UAPI_GPIO_H_ #define _UAPI_GPIO_H_ -#include <linux/const.h> #include <linux/ioctl.h> #include <linux/types.h> -/* - * The maximum size of name and label arrays. - * - * Must be a multiple of 8 to ensure 32/64-bit alignment of structs. - */ -#define GPIO_MAX_NAME_SIZE 32 - /** * struct gpiochip_info - Information about a certain GPIO chip * @name: the Linux kernel name of this GPIO chip * @label: a functional name for this GPIO chip, such as a product - * number, may be empty (i.e. label[0] == '\0') + * number, may be NULL * @lines: number of GPIO lines on this chip */ struct gpiochip_info { - char name[GPIO_MAX_NAME_SIZE]; - char label[GPIO_MAX_NAME_SIZE]; + char name[32]; + char label[32]; __u32 lines; }; -/* - * Maximum number of requested lines. - * - * Must be no greater than 64, as bitmaps are restricted here to 64-bits - * for simplicity, and a multiple of 2 to ensure 32/64-bit alignment of - * structs. - */ -#define GPIO_V2_LINES_MAX 64 - -/* - * The maximum number of configuration attributes associated with a line - * request. - */ -#define GPIO_V2_LINE_NUM_ATTRS_MAX 10 - -/** - * enum gpio_v2_line_flag - &struct gpio_v2_line_attribute.flags values - * @GPIO_V2_LINE_FLAG_USED: line is not available for request - * @GPIO_V2_LINE_FLAG_ACTIVE_LOW: line active state is physical low - * @GPIO_V2_LINE_FLAG_INPUT: line is an input - * @GPIO_V2_LINE_FLAG_OUTPUT: line is an output - * @GPIO_V2_LINE_FLAG_EDGE_RISING: line detects rising (inactive to active) - * edges - * @GPIO_V2_LINE_FLAG_EDGE_FALLING: line detects falling (active to - * inactive) edges - * @GPIO_V2_LINE_FLAG_OPEN_DRAIN: line is an open drain output - * @GPIO_V2_LINE_FLAG_OPEN_SOURCE: line is an open source output - * @GPIO_V2_LINE_FLAG_BIAS_PULL_UP: line has pull-up bias enabled - * @GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN: line has pull-down bias enabled - * @GPIO_V2_LINE_FLAG_BIAS_DISABLED: line has bias disabled - * @GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME: line events contain REALTIME timestamps - */ -enum gpio_v2_line_flag { - GPIO_V2_LINE_FLAG_USED = _BITULL(0), - GPIO_V2_LINE_FLAG_ACTIVE_LOW = _BITULL(1), - GPIO_V2_LINE_FLAG_INPUT = _BITULL(2), - GPIO_V2_LINE_FLAG_OUTPUT = _BITULL(3), - GPIO_V2_LINE_FLAG_EDGE_RISING = _BITULL(4), - GPIO_V2_LINE_FLAG_EDGE_FALLING = _BITULL(5), - GPIO_V2_LINE_FLAG_OPEN_DRAIN = _BITULL(6), - GPIO_V2_LINE_FLAG_OPEN_SOURCE = _BITULL(7), - GPIO_V2_LINE_FLAG_BIAS_PULL_UP = _BITULL(8), - GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = _BITULL(9), - GPIO_V2_LINE_FLAG_BIAS_DISABLED = _BITULL(10), - GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = _BITULL(11), -}; - -/** - * struct gpio_v2_line_values - Values of GPIO lines - * @bits: a bitmap containing the value of the lines, set to 1 for active - * and 0 for inactive. - * @mask: a bitmap identifying the lines to get or set, with each bit - * number corresponding to the index into &struct - * gpio_v2_line_request.offsets. - */ -struct gpio_v2_line_values { - __aligned_u64 bits; - __aligned_u64 mask; -}; - -/** - * enum gpio_v2_line_attr_id - &struct gpio_v2_line_attribute.id values - * identifying which field of the attribute union is in use. - * @GPIO_V2_LINE_ATTR_ID_FLAGS: flags field is in use - * @GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES: values field is in use - * @GPIO_V2_LINE_ATTR_ID_DEBOUNCE: debounce_period_us field is in use - */ -enum gpio_v2_line_attr_id { - GPIO_V2_LINE_ATTR_ID_FLAGS = 1, - GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, - GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, -}; - -/** - * struct gpio_v2_line_attribute - a configurable attribute of a line - * @id: attribute identifier with value from &enum gpio_v2_line_attr_id - * @padding: reserved for future use and must be zero filled - * @flags: if id is %GPIO_V2_LINE_ATTR_ID_FLAGS, the flags for the GPIO - * line, with values from &enum gpio_v2_line_flag, such as - * %GPIO_V2_LINE_FLAG_ACTIVE_LOW, %GPIO_V2_LINE_FLAG_OUTPUT etc, added - * together. This overrides the default flags contained in the &struct - * gpio_v2_line_config for the associated line. - * @values: if id is %GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES, a bitmap - * containing the values to which the lines will be set, with each bit - * number corresponding to the index into &struct - * gpio_v2_line_request.offsets. - * @debounce_period_us: if id is %GPIO_V2_LINE_ATTR_ID_DEBOUNCE, the - * desired debounce period, in microseconds - */ -struct gpio_v2_line_attribute { - __u32 id; - __u32 padding; - union { - __aligned_u64 flags; - __aligned_u64 values; - __u32 debounce_period_us; - }; -}; - -/** - * struct gpio_v2_line_config_attribute - a configuration attribute - * associated with one or more of the requested lines. - * @attr: the configurable attribute - * @mask: a bitmap identifying the lines to which the attribute applies, - * with each bit number corresponding to the index into &struct - * gpio_v2_line_request.offsets. - */ -struct gpio_v2_line_config_attribute { - struct gpio_v2_line_attribute attr; - __aligned_u64 mask; -}; - -/** - * struct gpio_v2_line_config - Configuration for GPIO lines - * @flags: flags for the GPIO lines, with values from &enum - * gpio_v2_line_flag, such as %GPIO_V2_LINE_FLAG_ACTIVE_LOW, - * %GPIO_V2_LINE_FLAG_OUTPUT etc, added together. This is the default for - * all requested lines but may be overridden for particular lines using - * @attrs. - * @num_attrs: the number of attributes in @attrs - * @padding: reserved for future use and must be zero filled - * @attrs: the configuration attributes associated with the requested - * lines. Any attribute should only be associated with a particular line - * once. If an attribute is associated with a line multiple times then the - * first occurrence (i.e. lowest index) has precedence. - */ -struct gpio_v2_line_config { - __aligned_u64 flags; - __u32 num_attrs; - /* Pad to fill implicit padding and reserve space for future use. */ - __u32 padding[5]; - struct gpio_v2_line_config_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; -}; - -/** - * struct gpio_v2_line_request - Information about a request for GPIO lines - * @offsets: an array of desired lines, specified by offset index for the - * associated GPIO chip - * @consumer: a desired consumer label for the selected GPIO lines such as - * "my-bitbanged-relay" - * @config: requested configuration for the lines. - * @num_lines: number of lines requested in this request, i.e. the number - * of valid fields in the %GPIO_V2_LINES_MAX sized arrays, set to 1 to - * request a single line - * @event_buffer_size: a suggested minimum number of line events that the - * kernel should buffer. This is only relevant if edge detection is - * enabled in the configuration. Note that this is only a suggested value - * and the kernel may allocate a larger buffer or cap the size of the - * buffer. If this field is zero then the buffer size defaults to a minimum - * of @num_lines * 16. - * @padding: reserved for future use and must be zero filled - * @fd: if successful this field will contain a valid anonymous file handle - * after a %GPIO_GET_LINE_IOCTL operation, zero or negative value means - * error - */ -struct gpio_v2_line_request { - __u32 offsets[GPIO_V2_LINES_MAX]; - char consumer[GPIO_MAX_NAME_SIZE]; - struct gpio_v2_line_config config; - __u32 num_lines; - __u32 event_buffer_size; - /* Pad to fill implicit padding and reserve space for future use. */ - __u32 padding[5]; - __s32 fd; -}; - -/** - * struct gpio_v2_line_info - Information about a certain GPIO line - * @name: the name of this GPIO line, such as the output pin of the line on - * the chip, a rail or a pin header name on a board, as specified by the - * GPIO chip, may be empty (i.e. name[0] == '\0') - * @consumer: a functional name for the consumer of this GPIO line as set - * by whatever is using it, will be empty if there is no current user but - * may also be empty if the consumer doesn't set this up - * @offset: the local offset on this GPIO chip, fill this in when - * requesting the line information from the kernel - * @num_attrs: the number of attributes in @attrs - * @flags: flags for this GPIO line, with values from &enum - * gpio_v2_line_flag, such as %GPIO_V2_LINE_FLAG_ACTIVE_LOW, - * %GPIO_V2_LINE_FLAG_OUTPUT etc, added together. - * @attrs: the configuration attributes associated with the line - * @padding: reserved for future use - */ -struct gpio_v2_line_info { - char name[GPIO_MAX_NAME_SIZE]; - char consumer[GPIO_MAX_NAME_SIZE]; - __u32 offset; - __u32 num_attrs; - __aligned_u64 flags; - struct gpio_v2_line_attribute attrs[GPIO_V2_LINE_NUM_ATTRS_MAX]; - /* Space reserved for future use. */ - __u32 padding[4]; -}; - -/** - * enum gpio_v2_line_changed_type - &struct gpio_v2_line_changed.event_type - * values - * @GPIO_V2_LINE_CHANGED_REQUESTED: line has been requested - * @GPIO_V2_LINE_CHANGED_RELEASED: line has been released - * @GPIO_V2_LINE_CHANGED_CONFIG: line has been reconfigured - */ -enum gpio_v2_line_changed_type { - GPIO_V2_LINE_CHANGED_REQUESTED = 1, - GPIO_V2_LINE_CHANGED_RELEASED = 2, - GPIO_V2_LINE_CHANGED_CONFIG = 3, -}; - -/** - * struct gpio_v2_line_info_changed - Information about a change in status - * of a GPIO line - * @info: updated line information - * @timestamp_ns: estimate of time of status change occurrence, in nanoseconds - * @event_type: the type of change with a value from &enum - * gpio_v2_line_changed_type - * @padding: reserved for future use - */ -struct gpio_v2_line_info_changed { - struct gpio_v2_line_info info; - __aligned_u64 timestamp_ns; - __u32 event_type; - /* Pad struct to 64-bit boundary and reserve space for future use. */ - __u32 padding[5]; -}; - -/** - * enum gpio_v2_line_event_id - &struct gpio_v2_line_event.id values - * @GPIO_V2_LINE_EVENT_RISING_EDGE: event triggered by a rising edge - * @GPIO_V2_LINE_EVENT_FALLING_EDGE: event triggered by a falling edge - */ -enum gpio_v2_line_event_id { - GPIO_V2_LINE_EVENT_RISING_EDGE = 1, - GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, -}; - -/** - * struct gpio_v2_line_event - The actual event being pushed to userspace - * @timestamp_ns: best estimate of time of event occurrence, in nanoseconds. - * @id: event identifier with value from &enum gpio_v2_line_event_id - * @offset: the offset of the line that triggered the event - * @seqno: the sequence number for this event in the sequence of events for - * all the lines in this line request - * @line_seqno: the sequence number for this event in the sequence of - * events on this particular line - * @padding: reserved for future use - * - * By default the @timestamp_ns is read from %CLOCK_MONOTONIC and is - * intended to allow the accurate measurement of the time between events. - * It does not provide the wall-clock time. - * - * If the %GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME flag is set then the - * @timestamp_ns is read from %CLOCK_REALTIME. - */ -struct gpio_v2_line_event { - __aligned_u64 timestamp_ns; - __u32 id; - __u32 offset; - __u32 seqno; - __u32 line_seqno; - /* Space reserved for future use. */ - __u32 padding[6]; -}; - -/* - * ABI v1 - * - * This version of the ABI is deprecated. - * Use the latest version of the ABI, defined above, instead. - */ - /* Informational flags */ #define GPIOLINE_FLAG_KERNEL (1UL << 0) /* Line used by the kernel */ #define GPIOLINE_FLAG_IS_OUT (1UL << 1) @@ -321,56 +44,21 @@ struct gpio_v2_line_event { * @flags: various flags for this line * @name: the name of this GPIO line, such as the output pin of the line on the * chip, a rail or a pin header name on a board, as specified by the gpio - * chip, may be empty (i.e. name[0] == '\0') + * chip, may be NULL * @consumer: a functional name for the consumer of this GPIO line as set by - * whatever is using it, will be empty if there is no current user but may - * also be empty if the consumer doesn't set this up - * - * Note: This struct is part of ABI v1 and is deprecated. - * Use &struct gpio_v2_line_info instead. + * whatever is using it, will be NULL if there is no current user but may + * also be NULL if the consumer doesn't set this up */ struct gpioline_info { __u32 line_offset; __u32 flags; - char name[GPIO_MAX_NAME_SIZE]; - char consumer[GPIO_MAX_NAME_SIZE]; + char name[32]; + char consumer[32]; }; /* Maximum number of requested handles */ #define GPIOHANDLES_MAX 64 -/* Possible line status change events */ -enum { - GPIOLINE_CHANGED_REQUESTED = 1, - GPIOLINE_CHANGED_RELEASED, - GPIOLINE_CHANGED_CONFIG, -}; - -/** - * struct gpioline_info_changed - Information about a change in status - * of a GPIO line - * @info: updated line information - * @timestamp: estimate of time of status change occurrence, in nanoseconds - * @event_type: one of %GPIOLINE_CHANGED_REQUESTED, - * %GPIOLINE_CHANGED_RELEASED and %GPIOLINE_CHANGED_CONFIG - * @padding: reserved for future use - * - * The &struct gpioline_info embedded here has 32-bit alignment on its own, - * but it works fine with 64-bit alignment too. With its 72 byte size, we can - * guarantee there are no implicit holes between it and subsequent members. - * The 20-byte padding at the end makes sure we don't add any implicit padding - * at the end of the structure on 64-bit architectures. - * - * Note: This struct is part of ABI v1 and is deprecated. - * Use &struct gpio_v2_line_info_changed instead. - */ -struct gpioline_info_changed { - struct gpioline_info info; - __u64 timestamp; - __u32 event_type; - __u32 padding[5]; /* for future use */ -}; - /* Linerequest flags */ #define GPIOHANDLE_REQUEST_INPUT (1UL << 0) #define GPIOHANDLE_REQUEST_OUTPUT (1UL << 1) @@ -386,13 +74,13 @@ struct gpioline_info_changed { * @lineoffsets: an array of desired lines, specified by offset index for the * associated GPIO device * @flags: desired flags for the desired GPIO lines, such as - * %GPIOHANDLE_REQUEST_OUTPUT, %GPIOHANDLE_REQUEST_ACTIVE_LOW etc, added + * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed * together. Note that even if multiple lines are requested, the same flags * must be applicable to all of them, if you want lines with individual * flags set, request them one by one. It is possible to select * a batch of input or output lines, but they must all have the same * characteristics, i.e. all inputs or all outputs, all active low etc - * @default_values: if the %GPIOHANDLE_REQUEST_OUTPUT is set for a requested + * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set for a requested * line, this specifies the default output value, should be 0 (low) or * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high) * @consumer_label: a desired consumer label for the selected GPIO line(s) @@ -400,17 +88,14 @@ struct gpioline_info_changed { * @lines: number of lines requested in this request, i.e. the number of * valid fields in the above arrays, set to 1 to request a single line * @fd: if successful this field will contain a valid anonymous file handle - * after a %GPIO_GET_LINEHANDLE_IOCTL operation, zero or negative value + * after a GPIO_GET_LINEHANDLE_IOCTL operation, zero or negative value * means error - * - * Note: This struct is part of ABI v1 and is deprecated. - * Use &struct gpio_v2_line_request instead. */ struct gpiohandle_request { __u32 lineoffsets[GPIOHANDLES_MAX]; __u32 flags; __u8 default_values[GPIOHANDLES_MAX]; - char consumer_label[GPIO_MAX_NAME_SIZE]; + char consumer_label[32]; __u32 lines; int fd; }; @@ -418,15 +103,12 @@ struct gpiohandle_request { /** * struct gpiohandle_config - Configuration for a GPIO handle request * @flags: updated flags for the requested GPIO lines, such as - * %GPIOHANDLE_REQUEST_OUTPUT, %GPIOHANDLE_REQUEST_ACTIVE_LOW etc, added + * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed * together - * @default_values: if the %GPIOHANDLE_REQUEST_OUTPUT is set in flags, + * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags, * this specifies the default output value, should be 0 (low) or * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high) * @padding: reserved for future use and should be zero filled - * - * Note: This struct is part of ABI v1 and is deprecated. - * Use &struct gpio_v2_line_config instead. */ struct gpiohandle_config { __u32 flags; @@ -434,19 +116,21 @@ struct gpiohandle_config { __u32 padding[4]; /* padding for future use */ }; +#define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0a, struct gpiohandle_config) + /** * struct gpiohandle_data - Information of values on a GPIO handle * @values: when getting the state of lines this contains the current * state of a line, when setting the state of lines these should contain * the desired target state - * - * Note: This struct is part of ABI v1 and is deprecated. - * Use &struct gpio_v2_line_values instead. */ struct gpiohandle_data { __u8 values[GPIOHANDLES_MAX]; }; +#define GPIOHANDLE_GET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x08, struct gpiohandle_data) +#define GPIOHANDLE_SET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x09, struct gpiohandle_data) + /* Eventrequest flags */ #define GPIOEVENT_REQUEST_RISING_EDGE (1UL << 0) #define GPIOEVENT_REQUEST_FALLING_EDGE (1UL << 1) @@ -457,27 +141,24 @@ struct gpiohandle_data { * @lineoffset: the desired line to subscribe to events from, specified by * offset index for the associated GPIO device * @handleflags: desired handle flags for the desired GPIO line, such as - * %GPIOHANDLE_REQUEST_ACTIVE_LOW or %GPIOHANDLE_REQUEST_OPEN_DRAIN + * GPIOHANDLE_REQUEST_ACTIVE_LOW or GPIOHANDLE_REQUEST_OPEN_DRAIN * @eventflags: desired flags for the desired GPIO event line, such as - * %GPIOEVENT_REQUEST_RISING_EDGE or %GPIOEVENT_REQUEST_FALLING_EDGE + * GPIOEVENT_REQUEST_RISING_EDGE or GPIOEVENT_REQUEST_FALLING_EDGE * @consumer_label: a desired consumer label for the selected GPIO line(s) * such as "my-listener" * @fd: if successful this field will contain a valid anonymous file handle - * after a %GPIO_GET_LINEEVENT_IOCTL operation, zero or negative value + * after a GPIO_GET_LINEEVENT_IOCTL operation, zero or negative value * means error - * - * Note: This struct is part of ABI v1 and is deprecated. - * Use &struct gpio_v2_line_request instead. */ struct gpioevent_request { __u32 lineoffset; __u32 handleflags; __u32 eventflags; - char consumer_label[GPIO_MAX_NAME_SIZE]; + char consumer_label[32]; int fd; }; -/* +/** * GPIO event types */ #define GPIOEVENT_EVENT_RISING_EDGE 0x01 @@ -487,42 +168,15 @@ struct gpioevent_request { * struct gpioevent_data - The actual event being pushed to userspace * @timestamp: best estimate of time of event occurrence, in nanoseconds * @id: event identifier - * - * Note: This struct is part of ABI v1 and is deprecated. - * Use &struct gpio_v2_line_event instead. */ struct gpioevent_data { __u64 timestamp; __u32 id; }; -/* - * v1 and v2 ioctl()s - */ #define GPIO_GET_CHIPINFO_IOCTL _IOR(0xB4, 0x01, struct gpiochip_info) -#define GPIO_GET_LINEINFO_UNWATCH_IOCTL _IOWR(0xB4, 0x0C, __u32) - -/* - * v2 ioctl()s - */ -#define GPIO_V2_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x05, struct gpio_v2_line_info) -#define GPIO_V2_GET_LINEINFO_WATCH_IOCTL _IOWR(0xB4, 0x06, struct gpio_v2_line_info) -#define GPIO_V2_GET_LINE_IOCTL _IOWR(0xB4, 0x07, struct gpio_v2_line_request) -#define GPIO_V2_LINE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0D, struct gpio_v2_line_config) -#define GPIO_V2_LINE_GET_VALUES_IOCTL _IOWR(0xB4, 0x0E, struct gpio_v2_line_values) -#define GPIO_V2_LINE_SET_VALUES_IOCTL _IOWR(0xB4, 0x0F, struct gpio_v2_line_values) - -/* - * v1 ioctl()s - * - * These ioctl()s are deprecated. Use the v2 equivalent instead. - */ #define GPIO_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x02, struct gpioline_info) #define GPIO_GET_LINEHANDLE_IOCTL _IOWR(0xB4, 0x03, struct gpiohandle_request) #define GPIO_GET_LINEEVENT_IOCTL _IOWR(0xB4, 0x04, struct gpioevent_request) -#define GPIOHANDLE_GET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x08, struct gpiohandle_data) -#define GPIOHANDLE_SET_LINE_VALUES_IOCTL _IOWR(0xB4, 0x09, struct gpiohandle_data) -#define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0A, struct gpiohandle_config) -#define GPIO_GET_LINEINFO_WATCH_IOCTL _IOWR(0xB4, 0x0B, struct gpioline_info) #endif /* _UAPI_GPIO_H_ */ diff --git a/original/uapi/linux/gtp.h b/original/uapi/linux/gtp.h index 79f9191..c7d6675 100644 --- a/original/uapi/linux/gtp.h +++ b/original/uapi/linux/gtp.h @@ -2,8 +2,6 @@ #ifndef _UAPI_LINUX_GTP_H_ #define _UAPI_LINUX_GTP_H_ -#define GTP_GENL_MCGRP_NAME "gtp" - enum gtp_genl_cmds { GTP_CMD_NEWPDP, GTP_CMD_DELPDP, diff --git a/original/uapi/linux/hdlc/ioctl.h b/original/uapi/linux/hdlc/ioctl.h index b06341a..0fe4238 100644 --- a/original/uapi/linux/hdlc/ioctl.h +++ b/original/uapi/linux/hdlc/ioctl.h @@ -79,15 +79,6 @@ typedef struct { unsigned int timeout; } cisco_proto; -typedef struct { - unsigned short dce; /* 1 for DCE (network side) operation */ - unsigned int modulo; /* modulo (8 = basic / 128 = extended) */ - unsigned int window; /* frame window size */ - unsigned int t1; /* timeout t1 */ - unsigned int t2; /* timeout t2 */ - unsigned int n2; /* frame retry counter */ -} x25_hdlc_proto; - /* PPP doesn't need any info now - supply length = 0 to ioctl */ #endif /* __ASSEMBLY__ */ diff --git a/original/uapi/linux/hidraw.h b/original/uapi/linux/hidraw.h index 33ebad8..98e2c49 100644 --- a/original/uapi/linux/hidraw.h +++ b/original/uapi/linux/hidraw.h @@ -39,13 +39,6 @@ struct hidraw_devinfo { /* The first byte of SFEATURE and GFEATURE is the report number */ #define HIDIOCSFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len) #define HIDIOCGFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len) -#define HIDIOCGRAWUNIQ(len) _IOC(_IOC_READ, 'H', 0x08, len) -/* The first byte of SINPUT and GINPUT is the report number */ -#define HIDIOCSINPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x09, len) -#define HIDIOCGINPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0A, len) -/* The first byte of SOUTPUT and GOUTPUT is the report number */ -#define HIDIOCSOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0B, len) -#define HIDIOCGOUTPUT(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0C, len) #define HIDRAW_FIRST_MINOR 0 #define HIDRAW_MAX_DEVICES 64 diff --git a/original/uapi/linux/hsr_netlink.h b/original/uapi/linux/hsr_netlink.h index d540ea9..c218ef9 100644 --- a/original/uapi/linux/hsr_netlink.h +++ b/original/uapi/linux/hsr_netlink.h @@ -17,7 +17,7 @@ /* Generic Netlink HSR family definition */ -/* attributes for HSR or PRP node */ +/* attributes */ enum { HSR_A_UNSPEC, HSR_A_NODE_ADDR, diff --git a/original/uapi/linux/hyperv.h b/original/uapi/linux/hyperv.h index 6135d92..991b2b7 100644 --- a/original/uapi/linux/hyperv.h +++ b/original/uapi/linux/hyperv.h @@ -119,8 +119,8 @@ enum hv_fcopy_op { struct hv_fcopy_hdr { __u32 operation; - __u8 service_id0[16]; /* currently unused */ - __u8 service_id1[16]; /* currently unused */ + uuid_le service_id0; /* currently unused */ + uuid_le service_id1; /* currently unused */ } __attribute__((packed)); #define OVER_WRITE 0x1 @@ -219,7 +219,7 @@ struct hv_do_fcopy { * kernel and user-level daemon communicate using a connector channel. * * The user mode component first registers with the - * kernel component. Subsequently, the kernel component requests, data + * the kernel component. Subsequently, the kernel component requests, data * for the specified keys. In response to this message the user mode component * fills in the value corresponding to the specified key. We overload the * sequence field in the cn_msg header to define our KVP message types. diff --git a/original/uapi/linux/hysdn_if.h b/original/uapi/linux/hysdn_if.h new file mode 100644 index 0000000..99f77c5 --- /dev/null +++ b/original/uapi/linux/hysdn_if.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* $Id: hysdn_if.h,v 1.1.8.3 2001/09/23 22:25:05 kai Exp $ + * + * Linux driver for HYSDN cards + * ioctl definitions shared by hynetmgr and driver. + * + * Author Werner Cornelius (werner@titro.de) for Hypercope GmbH + * Copyright 1999 by Werner Cornelius (werner@titro.de) + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + * + */ + +/****************/ +/* error values */ +/****************/ +#define ERR_NONE 0 /* no error occurred */ +#define ERR_ALREADY_BOOT 1000 /* we are already booting */ +#define EPOF_BAD_MAGIC 1001 /* bad magic in POF header */ +#define ERR_BOARD_DPRAM 1002 /* board DPRAM failed */ +#define EPOF_INTERNAL 1003 /* internal POF handler error */ +#define EPOF_BAD_IMG_SIZE 1004 /* POF boot image size invalid */ +#define ERR_BOOTIMG_FAIL 1005 /* 1. stage boot image did not start */ +#define ERR_BOOTSEQ_FAIL 1006 /* 2. stage boot seq handshake timeout */ +#define ERR_POF_TIMEOUT 1007 /* timeout waiting for card pof ready */ +#define ERR_NOT_BOOTED 1008 /* operation only allowed when booted */ +#define ERR_CONF_LONG 1009 /* conf line is too long */ +#define ERR_INV_CHAN 1010 /* invalid channel number */ +#define ERR_ASYNC_TIME 1011 /* timeout sending async data */ + + + + diff --git a/original/uapi/linux/i2c-dev.h b/original/uapi/linux/i2c-dev.h index 1c4cec4..85f8047 100644 --- a/original/uapi/linux/i2c-dev.h +++ b/original/uapi/linux/i2c-dev.h @@ -1,10 +1,25 @@ /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ /* - * i2c-dev.h - I2C bus char device interface - * - * Copyright (C) 1995-97 Simon G. Vogl - * Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl> - */ + i2c-dev.h - i2c-bus driver, char device interface + + Copyright (C) 1995-97 Simon G. Vogl + Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301 USA. +*/ #ifndef _UAPI_LINUX_I2C_DEV_H #define _UAPI_LINUX_I2C_DEV_H diff --git a/original/uapi/linux/i2c.h b/original/uapi/linux/i2c.h index 92326eb..f71a175 100644 --- a/original/uapi/linux/i2c.h +++ b/original/uapi/linux/i2c.h @@ -1,11 +1,29 @@ /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * i2c.h - definitions for the I2C bus interface - * - * Copyright (C) 1995-2000 Simon G. Vogl - * With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and - * Frodo Looijaard <frodol@dds.nl> - */ +/* ------------------------------------------------------------------------- */ +/* */ +/* i2c.h - definitions for the i2c-bus interface */ +/* */ +/* ------------------------------------------------------------------------- */ +/* Copyright (C) 1995-2000 Simon G. Vogl + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301 USA. */ +/* ------------------------------------------------------------------------- */ + +/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and + Frodo Looijaard <frodol@dds.nl> */ #ifndef _UAPI_LINUX_I2C_H #define _UAPI_LINUX_I2C_H @@ -14,41 +32,18 @@ /** * struct i2c_msg - an I2C transaction segment beginning with START - * - * @addr: Slave address, either 7 or 10 bits. When this is a 10 bit address, - * %I2C_M_TEN must be set in @flags and the adapter must support - * %I2C_FUNC_10BIT_ADDR. - * - * @flags: - * Supported by all adapters: - * %I2C_M_RD: read data (from slave to master). Guaranteed to be 0x0001! - * - * Optional: - * %I2C_M_DMA_SAFE: the buffer of this message is DMA safe. Makes only sense - * in kernelspace, because userspace buffers are copied anyway - * - * Only if I2C_FUNC_10BIT_ADDR is set: - * %I2C_M_TEN: this is a 10 bit chip address - * - * Only if I2C_FUNC_SMBUS_READ_BLOCK_DATA is set: - * %I2C_M_RECV_LEN: message length will be first received byte - * - * Only if I2C_FUNC_NOSTART is set: - * %I2C_M_NOSTART: skip repeated start sequence - - * Only if I2C_FUNC_PROTOCOL_MANGLING is set: - * %I2C_M_NO_RD_ACK: in a read message, master ACK/NACK bit is skipped - * %I2C_M_IGNORE_NAK: treat NACK from client as ACK - * %I2C_M_REV_DIR_ADDR: toggles the Rd/Wr bit - * %I2C_M_STOP: force a STOP condition after the message - * - * @len: Number of data bytes in @buf being read from or written to the I2C - * slave address. For read transactions where %I2C_M_RECV_LEN is set, the - * caller guarantees that this buffer can hold up to %I2C_SMBUS_BLOCK_MAX - * bytes in addition to the initial length byte sent by the slave (plus, - * if used, the SMBus PEC); and this value will be incremented by the number - * of block data bytes received. - * + * @addr: Slave address, either seven or ten bits. When this is a ten + * bit address, I2C_M_TEN must be set in @flags and the adapter + * must support I2C_FUNC_10BIT_ADDR. + * @flags: I2C_M_RD is handled by all adapters. No other flags may be + * provided unless the adapter exported the relevant I2C_FUNC_* + * flags through i2c_check_functionality(). + * @len: Number of data bytes in @buf being read from or written to the + * I2C slave address. For read transactions where I2C_M_RECV_LEN + * is set, the caller guarantees that this buffer can hold up to + * 32 bytes in addition to the initial length byte sent by the + * slave (plus, if used, the SMBus PEC); and this value will be + * incremented by the number of block data bytes received. * @buf: The buffer into which data is read, or from which it's written. * * An i2c_msg is the low level representation of one segment of an I2C @@ -65,36 +60,40 @@ * group, it is followed by a STOP. Otherwise it is followed by the next * @i2c_msg transaction segment, beginning with a (repeated) START. * - * Alternatively, when the adapter supports %I2C_FUNC_PROTOCOL_MANGLING then + * Alternatively, when the adapter supports I2C_FUNC_PROTOCOL_MANGLING then * passing certain @flags may have changed those standard protocol behaviors. * Those flags are only for use with broken/nonconforming slaves, and with - * adapters which are known to support the specific mangling options they need. + * adapters which are known to support the specific mangling options they + * need (one or more of IGNORE_NAK, NO_RD_ACK, NOSTART, and REV_DIR_ADDR). */ struct i2c_msg { - __u16 addr; + __u16 addr; /* slave address */ __u16 flags; -#define I2C_M_RD 0x0001 /* guaranteed to be 0x0001! */ -#define I2C_M_TEN 0x0010 /* use only if I2C_FUNC_10BIT_ADDR */ -#define I2C_M_DMA_SAFE 0x0200 /* use only in kernel space */ -#define I2C_M_RECV_LEN 0x0400 /* use only if I2C_FUNC_SMBUS_READ_BLOCK_DATA */ -#define I2C_M_NO_RD_ACK 0x0800 /* use only if I2C_FUNC_PROTOCOL_MANGLING */ -#define I2C_M_IGNORE_NAK 0x1000 /* use only if I2C_FUNC_PROTOCOL_MANGLING */ -#define I2C_M_REV_DIR_ADDR 0x2000 /* use only if I2C_FUNC_PROTOCOL_MANGLING */ -#define I2C_M_NOSTART 0x4000 /* use only if I2C_FUNC_NOSTART */ -#define I2C_M_STOP 0x8000 /* use only if I2C_FUNC_PROTOCOL_MANGLING */ - __u16 len; - __u8 *buf; +#define I2C_M_RD 0x0001 /* read data, from slave to master */ + /* I2C_M_RD is guaranteed to be 0x0001! */ +#define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ +#define I2C_M_DMA_SAFE 0x0200 /* the buffer of this message is DMA safe */ + /* makes only sense in kernelspace */ + /* userspace buffers are copied anyway */ +#define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */ +#define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ +#define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */ +#define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */ +#define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_NOSTART */ +#define I2C_M_STOP 0x8000 /* if I2C_FUNC_PROTOCOL_MANGLING */ + __u16 len; /* msg length */ + __u8 *buf; /* pointer to msg data */ }; /* To determine what functionality is present */ #define I2C_FUNC_I2C 0x00000001 -#define I2C_FUNC_10BIT_ADDR 0x00000002 /* required for I2C_M_TEN */ -#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* required for I2C_M_IGNORE_NAK etc. */ +#define I2C_FUNC_10BIT_ADDR 0x00000002 +#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_IGNORE_NAK etc. */ #define I2C_FUNC_SMBUS_PEC 0x00000008 -#define I2C_FUNC_NOSTART 0x00000010 /* required for I2C_M_NOSTART */ +#define I2C_FUNC_NOSTART 0x00000010 /* I2C_M_NOSTART */ #define I2C_FUNC_SLAVE 0x00000020 -#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 or later */ +#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 */ #define I2C_FUNC_SMBUS_QUICK 0x00010000 #define I2C_FUNC_SMBUS_READ_BYTE 0x00020000 #define I2C_FUNC_SMBUS_WRITE_BYTE 0x00040000 @@ -103,11 +102,11 @@ struct i2c_msg { #define I2C_FUNC_SMBUS_READ_WORD_DATA 0x00200000 #define I2C_FUNC_SMBUS_WRITE_WORD_DATA 0x00400000 #define I2C_FUNC_SMBUS_PROC_CALL 0x00800000 -#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000 /* required for I2C_M_RECV_LEN */ +#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000 #define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000 #define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000 /* I2C-like block xfer */ #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 /* w/ 1-byte reg. addr. */ -#define I2C_FUNC_SMBUS_HOST_NOTIFY 0x10000000 /* SMBus 2.0 or later */ +#define I2C_FUNC_SMBUS_HOST_NOTIFY 0x10000000 #define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | \ I2C_FUNC_SMBUS_WRITE_BYTE) @@ -129,11 +128,6 @@ struct i2c_msg { I2C_FUNC_SMBUS_I2C_BLOCK | \ I2C_FUNC_SMBUS_PEC) -/* if I2C_M_RECV_LEN is also supported */ -#define I2C_FUNC_SMBUS_EMUL_ALL (I2C_FUNC_SMBUS_EMUL | \ - I2C_FUNC_SMBUS_READ_BLOCK_DATA | \ - I2C_FUNC_SMBUS_BLOCK_PROC_CALL) - /* * Data for SMBus Messages */ diff --git a/original/uapi/linux/icmp.h b/original/uapi/linux/icmp.h index fb169a5..5589eeb 100644 --- a/original/uapi/linux/icmp.h +++ b/original/uapi/linux/icmp.h @@ -19,7 +19,6 @@ #define _UAPI_LINUX_ICMP_H #include <linux/types.h> -#include <asm/byteorder.h> #define ICMP_ECHOREPLY 0 /* Echo Reply */ #define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ @@ -96,26 +95,5 @@ struct icmp_filter { __u32 data; }; -/* RFC 4884 extension struct: one per message */ -struct icmp_ext_hdr { -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u8 reserved1:4, - version:4; -#elif defined(__BIG_ENDIAN_BITFIELD) - __u8 version:4, - reserved1:4; -#else -#error "Please fix <asm/byteorder.h>" -#endif - __u8 reserved2; - __sum16 checksum; -}; - -/* RFC 4884 extension object header: one for each object */ -struct icmp_extobj_hdr { - __be16 length; - __u8 class_num; - __u8 class_type; -}; #endif /* _UAPI_LINUX_ICMP_H */ diff --git a/original/uapi/linux/icmpv6.h b/original/uapi/linux/icmpv6.h index 0564fd7..2622b5a 100644 --- a/original/uapi/linux/icmpv6.h +++ b/original/uapi/linux/icmpv6.h @@ -68,7 +68,6 @@ struct icmp6hdr { #define icmp6_mtu icmp6_dataun.un_data32[0] #define icmp6_unused icmp6_dataun.un_data32[0] #define icmp6_maxdelay icmp6_dataun.un_data16[0] -#define icmp6_datagram_len icmp6_dataun.un_data8[0] #define icmp6_router icmp6_dataun.u_nd_advt.router #define icmp6_solicited icmp6_dataun.u_nd_advt.solicited #define icmp6_override icmp6_dataun.u_nd_advt.override @@ -138,7 +137,6 @@ struct icmp6hdr { #define ICMPV6_HDR_FIELD 0 #define ICMPV6_UNK_NEXTHDR 1 #define ICMPV6_UNK_OPTION 2 -#define ICMPV6_HDR_INCOMP 3 /* * constants for (set|get)sockopt diff --git a/original/uapi/linux/idxd.h b/original/uapi/linux/idxd.h deleted file mode 100644 index e33997b..0000000 --- a/original/uapi/linux/idxd.h +++ /dev/null @@ -1,305 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* Copyright(c) 2019 Intel Corporation. All rights rsvd. */ -#ifndef _USR_IDXD_H_ -#define _USR_IDXD_H_ - -#ifdef __KERNEL__ -#include <linux/types.h> -#else -#include <stdint.h> -#endif - -/* Descriptor flags */ -#define IDXD_OP_FLAG_FENCE 0x0001 -#define IDXD_OP_FLAG_BOF 0x0002 -#define IDXD_OP_FLAG_CRAV 0x0004 -#define IDXD_OP_FLAG_RCR 0x0008 -#define IDXD_OP_FLAG_RCI 0x0010 -#define IDXD_OP_FLAG_CRSTS 0x0020 -#define IDXD_OP_FLAG_CR 0x0080 -#define IDXD_OP_FLAG_CC 0x0100 -#define IDXD_OP_FLAG_ADDR1_TCS 0x0200 -#define IDXD_OP_FLAG_ADDR2_TCS 0x0400 -#define IDXD_OP_FLAG_ADDR3_TCS 0x0800 -#define IDXD_OP_FLAG_CR_TCS 0x1000 -#define IDXD_OP_FLAG_STORD 0x2000 -#define IDXD_OP_FLAG_DRDBK 0x4000 -#define IDXD_OP_FLAG_DSTS 0x8000 - -/* IAX */ -#define IDXD_OP_FLAG_RD_SRC2_AECS 0x010000 - -/* Opcode */ -enum dsa_opcode { - DSA_OPCODE_NOOP = 0, - DSA_OPCODE_BATCH, - DSA_OPCODE_DRAIN, - DSA_OPCODE_MEMMOVE, - DSA_OPCODE_MEMFILL, - DSA_OPCODE_COMPARE, - DSA_OPCODE_COMPVAL, - DSA_OPCODE_CR_DELTA, - DSA_OPCODE_AP_DELTA, - DSA_OPCODE_DUALCAST, - DSA_OPCODE_CRCGEN = 0x10, - DSA_OPCODE_COPY_CRC, - DSA_OPCODE_DIF_CHECK, - DSA_OPCODE_DIF_INS, - DSA_OPCODE_DIF_STRP, - DSA_OPCODE_DIF_UPDT, - DSA_OPCODE_CFLUSH = 0x20, -}; - -enum iax_opcode { - IAX_OPCODE_NOOP = 0, - IAX_OPCODE_DRAIN = 2, - IAX_OPCODE_MEMMOVE, - IAX_OPCODE_DECOMPRESS = 0x42, - IAX_OPCODE_COMPRESS, -}; - -/* Completion record status */ -enum dsa_completion_status { - DSA_COMP_NONE = 0, - DSA_COMP_SUCCESS, - DSA_COMP_SUCCESS_PRED, - DSA_COMP_PAGE_FAULT_NOBOF, - DSA_COMP_PAGE_FAULT_IR, - DSA_COMP_BATCH_FAIL, - DSA_COMP_BATCH_PAGE_FAULT, - DSA_COMP_DR_OFFSET_NOINC, - DSA_COMP_DR_OFFSET_ERANGE, - DSA_COMP_DIF_ERR, - DSA_COMP_BAD_OPCODE = 0x10, - DSA_COMP_INVALID_FLAGS, - DSA_COMP_NOZERO_RESERVE, - DSA_COMP_XFER_ERANGE, - DSA_COMP_DESC_CNT_ERANGE, - DSA_COMP_DR_ERANGE, - DSA_COMP_OVERLAP_BUFFERS, - DSA_COMP_DCAST_ERR, - DSA_COMP_DESCLIST_ALIGN, - DSA_COMP_INT_HANDLE_INVAL, - DSA_COMP_CRA_XLAT, - DSA_COMP_CRA_ALIGN, - DSA_COMP_ADDR_ALIGN, - DSA_COMP_PRIV_BAD, - DSA_COMP_TRAFFIC_CLASS_CONF, - DSA_COMP_PFAULT_RDBA, - DSA_COMP_HW_ERR1, - DSA_COMP_HW_ERR_DRB, - DSA_COMP_TRANSLATION_FAIL, -}; - -enum iax_completion_status { - IAX_COMP_NONE = 0, - IAX_COMP_SUCCESS, - IAX_COMP_PAGE_FAULT_IR = 0x04, - IAX_COMP_OUTBUF_OVERFLOW, - IAX_COMP_BAD_OPCODE = 0x10, - IAX_COMP_INVALID_FLAGS, - IAX_COMP_NOZERO_RESERVE, - IAX_COMP_INVALID_SIZE, - IAX_COMP_OVERLAP_BUFFERS = 0x16, - IAX_COMP_INT_HANDLE_INVAL = 0x19, - IAX_COMP_CRA_XLAT, - IAX_COMP_CRA_ALIGN, - IAX_COMP_ADDR_ALIGN, - IAX_COMP_PRIV_BAD, - IAX_COMP_TRAFFIC_CLASS_CONF, - IAX_COMP_PFAULT_RDBA, - IAX_COMP_HW_ERR1, - IAX_COMP_HW_ERR_DRB, - IAX_COMP_TRANSLATION_FAIL, - IAX_COMP_PRS_TIMEOUT, - IAX_COMP_WATCHDOG, - IAX_COMP_INVALID_COMP_FLAG = 0x30, - IAX_COMP_INVALID_FILTER_FLAG, - IAX_COMP_INVALID_NUM_ELEMS = 0x33, -}; - -#define DSA_COMP_STATUS_MASK 0x7f -#define DSA_COMP_STATUS_WRITE 0x80 - -struct dsa_hw_desc { - uint32_t pasid:20; - uint32_t rsvd:11; - uint32_t priv:1; - uint32_t flags:24; - uint32_t opcode:8; - uint64_t completion_addr; - union { - uint64_t src_addr; - uint64_t rdback_addr; - uint64_t pattern; - uint64_t desc_list_addr; - }; - union { - uint64_t dst_addr; - uint64_t rdback_addr2; - uint64_t src2_addr; - uint64_t comp_pattern; - }; - union { - uint32_t xfer_size; - uint32_t desc_count; - }; - uint16_t int_handle; - uint16_t rsvd1; - union { - uint8_t expected_res; - /* create delta record */ - struct { - uint64_t delta_addr; - uint32_t max_delta_size; - uint32_t delt_rsvd; - uint8_t expected_res_mask; - }; - uint32_t delta_rec_size; - uint64_t dest2; - /* CRC */ - struct { - uint32_t crc_seed; - uint32_t crc_rsvd; - uint64_t seed_addr; - }; - /* DIF check or strip */ - struct { - uint8_t src_dif_flags; - uint8_t dif_chk_res; - uint8_t dif_chk_flags; - uint8_t dif_chk_res2[5]; - uint32_t chk_ref_tag_seed; - uint16_t chk_app_tag_mask; - uint16_t chk_app_tag_seed; - }; - /* DIF insert */ - struct { - uint8_t dif_ins_res; - uint8_t dest_dif_flag; - uint8_t dif_ins_flags; - uint8_t dif_ins_res2[13]; - uint32_t ins_ref_tag_seed; - uint16_t ins_app_tag_mask; - uint16_t ins_app_tag_seed; - }; - /* DIF update */ - struct { - uint8_t src_upd_flags; - uint8_t upd_dest_flags; - uint8_t dif_upd_flags; - uint8_t dif_upd_res[5]; - uint32_t src_ref_tag_seed; - uint16_t src_app_tag_mask; - uint16_t src_app_tag_seed; - uint32_t dest_ref_tag_seed; - uint16_t dest_app_tag_mask; - uint16_t dest_app_tag_seed; - }; - - uint8_t op_specific[24]; - }; -} __attribute__((packed)); - -struct iax_hw_desc { - uint32_t pasid:20; - uint32_t rsvd:11; - uint32_t priv:1; - uint32_t flags:24; - uint32_t opcode:8; - uint64_t completion_addr; - uint64_t src1_addr; - uint64_t dst_addr; - uint32_t src1_size; - uint16_t int_handle; - union { - uint16_t compr_flags; - uint16_t decompr_flags; - }; - uint64_t src2_addr; - uint32_t max_dst_size; - uint32_t src2_size; - uint32_t filter_flags; - uint32_t num_inputs; -} __attribute__((packed)); - -struct dsa_raw_desc { - uint64_t field[8]; -} __attribute__((packed)); - -/* - * The status field will be modified by hardware, therefore it should be - * volatile and prevent the compiler from optimize the read. - */ -struct dsa_completion_record { - volatile uint8_t status; - union { - uint8_t result; - uint8_t dif_status; - }; - uint16_t rsvd; - uint32_t bytes_completed; - uint64_t fault_addr; - union { - /* common record */ - struct { - uint32_t invalid_flags:24; - uint32_t rsvd2:8; - }; - - uint32_t delta_rec_size; - uint32_t crc_val; - - /* DIF check & strip */ - struct { - uint32_t dif_chk_ref_tag; - uint16_t dif_chk_app_tag_mask; - uint16_t dif_chk_app_tag; - }; - - /* DIF insert */ - struct { - uint64_t dif_ins_res; - uint32_t dif_ins_ref_tag; - uint16_t dif_ins_app_tag_mask; - uint16_t dif_ins_app_tag; - }; - - /* DIF update */ - struct { - uint32_t dif_upd_src_ref_tag; - uint16_t dif_upd_src_app_tag_mask; - uint16_t dif_upd_src_app_tag; - uint32_t dif_upd_dest_ref_tag; - uint16_t dif_upd_dest_app_tag_mask; - uint16_t dif_upd_dest_app_tag; - }; - - uint8_t op_specific[16]; - }; -} __attribute__((packed)); - -struct dsa_raw_completion_record { - uint64_t field[4]; -} __attribute__((packed)); - -struct iax_completion_record { - volatile uint8_t status; - uint8_t error_code; - uint16_t rsvd; - uint32_t bytes_completed; - uint64_t fault_addr; - uint32_t invalid_flags; - uint32_t rsvd2; - uint32_t output_size; - uint8_t output_bits; - uint8_t rsvd3; - uint16_t rsvd4; - uint64_t rsvd5[4]; -} __attribute__((packed)); - -struct iax_raw_completion_record { - uint64_t field[8]; -} __attribute__((packed)); - -#endif diff --git a/original/uapi/linux/if.h b/original/uapi/linux/if.h index 797ba2c..4bf3334 100644 --- a/original/uapi/linux/if.h +++ b/original/uapi/linux/if.h @@ -178,7 +178,6 @@ enum { enum { IF_LINK_MODE_DEFAULT, IF_LINK_MODE_DORMANT, /* limit upward transition to dormant */ - IF_LINK_MODE_TESTING, /* limit upward transition to testing */ }; /* @@ -214,7 +213,6 @@ struct if_settings { fr_proto __user *fr; fr_proto_pvc __user *fr_pvc; fr_proto_pvc_info __user *fr_pvc_info; - x25_hdlc_proto __user *x25; /* interface settings */ sync_serial_settings __user *sync; diff --git a/original/uapi/linux/if_alg.h b/original/uapi/linux/if_alg.h index dc52a11..bc2bcde 100644 --- a/original/uapi/linux/if_alg.h +++ b/original/uapi/linux/if_alg.h @@ -24,22 +24,6 @@ struct sockaddr_alg { __u8 salg_name[64]; }; -/* - * Linux v4.12 and later removed the 64-byte limit on salg_name[]; it's now an - * arbitrary-length field. We had to keep the original struct above for source - * compatibility with existing userspace programs, though. Use the new struct - * below if support for very long algorithm names is needed. To do this, - * allocate 'sizeof(struct sockaddr_alg_new) + strlen(algname) + 1' bytes, and - * copy algname (including the null terminator) into salg_name. - */ -struct sockaddr_alg_new { - __u16 salg_family; - __u8 salg_type[14]; - __u32 salg_feat; - __u32 salg_mask; - __u8 salg_name[]; -}; - struct af_alg_iv { __u32 ivlen; __u8 iv[0]; @@ -51,7 +35,6 @@ struct af_alg_iv { #define ALG_SET_OP 3 #define ALG_SET_AEAD_ASSOCLEN 4 #define ALG_SET_AEAD_AUTHSIZE 5 -#define ALG_SET_DRBG_ENTROPY 6 /* Operations */ #define ALG_OP_DECRYPT 0 diff --git a/original/uapi/linux/if_bonding.h b/original/uapi/linux/if_bonding.h index e8eb4ad..790585f 100644 --- a/original/uapi/linux/if_bonding.h +++ b/original/uapi/linux/if_bonding.h @@ -94,17 +94,6 @@ #define BOND_XMIT_POLICY_LAYER23 2 /* layer 2+3 (IP ^ MAC) */ #define BOND_XMIT_POLICY_ENCAP23 3 /* encapsulated layer 2+3 */ #define BOND_XMIT_POLICY_ENCAP34 4 /* encapsulated layer 3+4 */ -#define BOND_XMIT_POLICY_VLAN_SRCMAC 5 /* vlan + source MAC */ - -/* 802.3ad port state definitions (43.4.2.2 in the 802.3ad standard) */ -#define LACP_STATE_LACP_ACTIVITY 0x1 -#define LACP_STATE_LACP_TIMEOUT 0x2 -#define LACP_STATE_AGGREGATION 0x4 -#define LACP_STATE_SYNCHRONIZATION 0x8 -#define LACP_STATE_COLLECTING 0x10 -#define LACP_STATE_DISTRIBUTING 0x20 -#define LACP_STATE_DEFAULTED 0x40 -#define LACP_STATE_EXPIRED 0x80 typedef struct ifbond { __s32 bond_mode; diff --git a/original/uapi/linux/if_bridge.h b/original/uapi/linux/if_bridge.h index 13d59c5..1b3c2b6 100644 --- a/original/uapi/linux/if_bridge.h +++ b/original/uapi/linux/if_bridge.h @@ -120,8 +120,6 @@ enum { IFLA_BRIDGE_MODE, IFLA_BRIDGE_VLAN_INFO, IFLA_BRIDGE_VLAN_TUNNEL_INFO, - IFLA_BRIDGE_MRP, - IFLA_BRIDGE_CFM, __IFLA_BRIDGE_MAX, }; #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) @@ -132,7 +130,6 @@ enum { #define BRIDGE_VLAN_INFO_RANGE_BEGIN (1<<3) /* VLAN is start of vlan range */ #define BRIDGE_VLAN_INFO_RANGE_END (1<<4) /* VLAN is end of vlan range */ #define BRIDGE_VLAN_INFO_BRENTRY (1<<5) /* Global bridge VLAN entry */ -#define BRIDGE_VLAN_INFO_ONLY_OPTS (1<<6) /* Skip create/delete/flags */ struct bridge_vlan_info { __u16 flags; @@ -159,385 +156,6 @@ struct bridge_vlan_xstats { __u32 pad2; }; -enum { - IFLA_BRIDGE_MRP_UNSPEC, - IFLA_BRIDGE_MRP_INSTANCE, - IFLA_BRIDGE_MRP_PORT_STATE, - IFLA_BRIDGE_MRP_PORT_ROLE, - IFLA_BRIDGE_MRP_RING_STATE, - IFLA_BRIDGE_MRP_RING_ROLE, - IFLA_BRIDGE_MRP_START_TEST, - IFLA_BRIDGE_MRP_INFO, - IFLA_BRIDGE_MRP_IN_ROLE, - IFLA_BRIDGE_MRP_IN_STATE, - IFLA_BRIDGE_MRP_START_IN_TEST, - __IFLA_BRIDGE_MRP_MAX, -}; - -#define IFLA_BRIDGE_MRP_MAX (__IFLA_BRIDGE_MRP_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_INSTANCE_UNSPEC, - IFLA_BRIDGE_MRP_INSTANCE_RING_ID, - IFLA_BRIDGE_MRP_INSTANCE_P_IFINDEX, - IFLA_BRIDGE_MRP_INSTANCE_S_IFINDEX, - IFLA_BRIDGE_MRP_INSTANCE_PRIO, - __IFLA_BRIDGE_MRP_INSTANCE_MAX, -}; - -#define IFLA_BRIDGE_MRP_INSTANCE_MAX (__IFLA_BRIDGE_MRP_INSTANCE_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_PORT_STATE_UNSPEC, - IFLA_BRIDGE_MRP_PORT_STATE_STATE, - __IFLA_BRIDGE_MRP_PORT_STATE_MAX, -}; - -#define IFLA_BRIDGE_MRP_PORT_STATE_MAX (__IFLA_BRIDGE_MRP_PORT_STATE_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_PORT_ROLE_UNSPEC, - IFLA_BRIDGE_MRP_PORT_ROLE_ROLE, - __IFLA_BRIDGE_MRP_PORT_ROLE_MAX, -}; - -#define IFLA_BRIDGE_MRP_PORT_ROLE_MAX (__IFLA_BRIDGE_MRP_PORT_ROLE_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_RING_STATE_UNSPEC, - IFLA_BRIDGE_MRP_RING_STATE_RING_ID, - IFLA_BRIDGE_MRP_RING_STATE_STATE, - __IFLA_BRIDGE_MRP_RING_STATE_MAX, -}; - -#define IFLA_BRIDGE_MRP_RING_STATE_MAX (__IFLA_BRIDGE_MRP_RING_STATE_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_RING_ROLE_UNSPEC, - IFLA_BRIDGE_MRP_RING_ROLE_RING_ID, - IFLA_BRIDGE_MRP_RING_ROLE_ROLE, - __IFLA_BRIDGE_MRP_RING_ROLE_MAX, -}; - -#define IFLA_BRIDGE_MRP_RING_ROLE_MAX (__IFLA_BRIDGE_MRP_RING_ROLE_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_START_TEST_UNSPEC, - IFLA_BRIDGE_MRP_START_TEST_RING_ID, - IFLA_BRIDGE_MRP_START_TEST_INTERVAL, - IFLA_BRIDGE_MRP_START_TEST_MAX_MISS, - IFLA_BRIDGE_MRP_START_TEST_PERIOD, - IFLA_BRIDGE_MRP_START_TEST_MONITOR, - __IFLA_BRIDGE_MRP_START_TEST_MAX, -}; - -#define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_INFO_UNSPEC, - IFLA_BRIDGE_MRP_INFO_RING_ID, - IFLA_BRIDGE_MRP_INFO_P_IFINDEX, - IFLA_BRIDGE_MRP_INFO_S_IFINDEX, - IFLA_BRIDGE_MRP_INFO_PRIO, - IFLA_BRIDGE_MRP_INFO_RING_STATE, - IFLA_BRIDGE_MRP_INFO_RING_ROLE, - IFLA_BRIDGE_MRP_INFO_TEST_INTERVAL, - IFLA_BRIDGE_MRP_INFO_TEST_MAX_MISS, - IFLA_BRIDGE_MRP_INFO_TEST_MONITOR, - IFLA_BRIDGE_MRP_INFO_I_IFINDEX, - IFLA_BRIDGE_MRP_INFO_IN_STATE, - IFLA_BRIDGE_MRP_INFO_IN_ROLE, - IFLA_BRIDGE_MRP_INFO_IN_TEST_INTERVAL, - IFLA_BRIDGE_MRP_INFO_IN_TEST_MAX_MISS, - __IFLA_BRIDGE_MRP_INFO_MAX, -}; - -#define IFLA_BRIDGE_MRP_INFO_MAX (__IFLA_BRIDGE_MRP_INFO_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_IN_STATE_UNSPEC, - IFLA_BRIDGE_MRP_IN_STATE_IN_ID, - IFLA_BRIDGE_MRP_IN_STATE_STATE, - __IFLA_BRIDGE_MRP_IN_STATE_MAX, -}; - -#define IFLA_BRIDGE_MRP_IN_STATE_MAX (__IFLA_BRIDGE_MRP_IN_STATE_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_IN_ROLE_UNSPEC, - IFLA_BRIDGE_MRP_IN_ROLE_RING_ID, - IFLA_BRIDGE_MRP_IN_ROLE_IN_ID, - IFLA_BRIDGE_MRP_IN_ROLE_ROLE, - IFLA_BRIDGE_MRP_IN_ROLE_I_IFINDEX, - __IFLA_BRIDGE_MRP_IN_ROLE_MAX, -}; - -#define IFLA_BRIDGE_MRP_IN_ROLE_MAX (__IFLA_BRIDGE_MRP_IN_ROLE_MAX - 1) - -enum { - IFLA_BRIDGE_MRP_START_IN_TEST_UNSPEC, - IFLA_BRIDGE_MRP_START_IN_TEST_IN_ID, - IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL, - IFLA_BRIDGE_MRP_START_IN_TEST_MAX_MISS, - IFLA_BRIDGE_MRP_START_IN_TEST_PERIOD, - __IFLA_BRIDGE_MRP_START_IN_TEST_MAX, -}; - -#define IFLA_BRIDGE_MRP_START_IN_TEST_MAX (__IFLA_BRIDGE_MRP_START_IN_TEST_MAX - 1) - -struct br_mrp_instance { - __u32 ring_id; - __u32 p_ifindex; - __u32 s_ifindex; - __u16 prio; -}; - -struct br_mrp_ring_state { - __u32 ring_id; - __u32 ring_state; -}; - -struct br_mrp_ring_role { - __u32 ring_id; - __u32 ring_role; -}; - -struct br_mrp_start_test { - __u32 ring_id; - __u32 interval; - __u32 max_miss; - __u32 period; - __u32 monitor; -}; - -struct br_mrp_in_state { - __u32 in_state; - __u16 in_id; -}; - -struct br_mrp_in_role { - __u32 ring_id; - __u32 in_role; - __u32 i_ifindex; - __u16 in_id; -}; - -struct br_mrp_start_in_test { - __u32 interval; - __u32 max_miss; - __u32 period; - __u16 in_id; -}; - -enum { - IFLA_BRIDGE_CFM_UNSPEC, - IFLA_BRIDGE_CFM_MEP_CREATE, - IFLA_BRIDGE_CFM_MEP_DELETE, - IFLA_BRIDGE_CFM_MEP_CONFIG, - IFLA_BRIDGE_CFM_CC_CONFIG, - IFLA_BRIDGE_CFM_CC_PEER_MEP_ADD, - IFLA_BRIDGE_CFM_CC_PEER_MEP_REMOVE, - IFLA_BRIDGE_CFM_CC_RDI, - IFLA_BRIDGE_CFM_CC_CCM_TX, - IFLA_BRIDGE_CFM_MEP_CREATE_INFO, - IFLA_BRIDGE_CFM_MEP_CONFIG_INFO, - IFLA_BRIDGE_CFM_CC_CONFIG_INFO, - IFLA_BRIDGE_CFM_CC_RDI_INFO, - IFLA_BRIDGE_CFM_CC_CCM_TX_INFO, - IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO, - IFLA_BRIDGE_CFM_MEP_STATUS_INFO, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO, - __IFLA_BRIDGE_CFM_MAX, -}; - -#define IFLA_BRIDGE_CFM_MAX (__IFLA_BRIDGE_CFM_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_MEP_CREATE_UNSPEC, - IFLA_BRIDGE_CFM_MEP_CREATE_INSTANCE, - IFLA_BRIDGE_CFM_MEP_CREATE_DOMAIN, - IFLA_BRIDGE_CFM_MEP_CREATE_DIRECTION, - IFLA_BRIDGE_CFM_MEP_CREATE_IFINDEX, - __IFLA_BRIDGE_CFM_MEP_CREATE_MAX, -}; - -#define IFLA_BRIDGE_CFM_MEP_CREATE_MAX (__IFLA_BRIDGE_CFM_MEP_CREATE_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_MEP_DELETE_UNSPEC, - IFLA_BRIDGE_CFM_MEP_DELETE_INSTANCE, - __IFLA_BRIDGE_CFM_MEP_DELETE_MAX, -}; - -#define IFLA_BRIDGE_CFM_MEP_DELETE_MAX (__IFLA_BRIDGE_CFM_MEP_DELETE_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_MEP_CONFIG_UNSPEC, - IFLA_BRIDGE_CFM_MEP_CONFIG_INSTANCE, - IFLA_BRIDGE_CFM_MEP_CONFIG_UNICAST_MAC, - IFLA_BRIDGE_CFM_MEP_CONFIG_MDLEVEL, - IFLA_BRIDGE_CFM_MEP_CONFIG_MEPID, - __IFLA_BRIDGE_CFM_MEP_CONFIG_MAX, -}; - -#define IFLA_BRIDGE_CFM_MEP_CONFIG_MAX (__IFLA_BRIDGE_CFM_MEP_CONFIG_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_CC_CONFIG_UNSPEC, - IFLA_BRIDGE_CFM_CC_CONFIG_INSTANCE, - IFLA_BRIDGE_CFM_CC_CONFIG_ENABLE, - IFLA_BRIDGE_CFM_CC_CONFIG_EXP_INTERVAL, - IFLA_BRIDGE_CFM_CC_CONFIG_EXP_MAID, - __IFLA_BRIDGE_CFM_CC_CONFIG_MAX, -}; - -#define IFLA_BRIDGE_CFM_CC_CONFIG_MAX (__IFLA_BRIDGE_CFM_CC_CONFIG_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_CC_PEER_MEP_UNSPEC, - IFLA_BRIDGE_CFM_CC_PEER_MEP_INSTANCE, - IFLA_BRIDGE_CFM_CC_PEER_MEPID, - __IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX, -}; - -#define IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX (__IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_CC_RDI_UNSPEC, - IFLA_BRIDGE_CFM_CC_RDI_INSTANCE, - IFLA_BRIDGE_CFM_CC_RDI_RDI, - __IFLA_BRIDGE_CFM_CC_RDI_MAX, -}; - -#define IFLA_BRIDGE_CFM_CC_RDI_MAX (__IFLA_BRIDGE_CFM_CC_RDI_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_CC_CCM_TX_UNSPEC, - IFLA_BRIDGE_CFM_CC_CCM_TX_INSTANCE, - IFLA_BRIDGE_CFM_CC_CCM_TX_DMAC, - IFLA_BRIDGE_CFM_CC_CCM_TX_SEQ_NO_UPDATE, - IFLA_BRIDGE_CFM_CC_CCM_TX_PERIOD, - IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV, - IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV_VALUE, - IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV, - IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV_VALUE, - __IFLA_BRIDGE_CFM_CC_CCM_TX_MAX, -}; - -#define IFLA_BRIDGE_CFM_CC_CCM_TX_MAX (__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_MEP_STATUS_UNSPEC, - IFLA_BRIDGE_CFM_MEP_STATUS_INSTANCE, - IFLA_BRIDGE_CFM_MEP_STATUS_OPCODE_UNEXP_SEEN, - IFLA_BRIDGE_CFM_MEP_STATUS_VERSION_UNEXP_SEEN, - IFLA_BRIDGE_CFM_MEP_STATUS_RX_LEVEL_LOW_SEEN, - __IFLA_BRIDGE_CFM_MEP_STATUS_MAX, -}; - -#define IFLA_BRIDGE_CFM_MEP_STATUS_MAX (__IFLA_BRIDGE_CFM_MEP_STATUS_MAX - 1) - -enum { - IFLA_BRIDGE_CFM_CC_PEER_STATUS_UNSPEC, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_INSTANCE, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_PEER_MEPID, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_CCM_DEFECT, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_RDI, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_PORT_TLV_VALUE, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_IF_TLV_VALUE, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEEN, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_TLV_SEEN, - IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEQ_UNEXP_SEEN, - __IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX, -}; - -#define IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX (__IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX - 1) - -struct bridge_stp_xstats { - __u64 transition_blk; - __u64 transition_fwd; - __u64 rx_bpdu; - __u64 tx_bpdu; - __u64 rx_tcn; - __u64 tx_tcn; -}; - -/* Bridge vlan RTM header */ -struct br_vlan_msg { - __u8 family; - __u8 reserved1; - __u16 reserved2; - __u32 ifindex; -}; - -enum { - BRIDGE_VLANDB_DUMP_UNSPEC, - BRIDGE_VLANDB_DUMP_FLAGS, - __BRIDGE_VLANDB_DUMP_MAX, -}; -#define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1) - -/* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */ -#define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) /* Include stats in the dump */ - -/* Bridge vlan RTM attributes - * [BRIDGE_VLANDB_ENTRY] = { - * [BRIDGE_VLANDB_ENTRY_INFO] - * ... - * } - */ -enum { - BRIDGE_VLANDB_UNSPEC, - BRIDGE_VLANDB_ENTRY, - __BRIDGE_VLANDB_MAX, -}; -#define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1) - -enum { - BRIDGE_VLANDB_ENTRY_UNSPEC, - BRIDGE_VLANDB_ENTRY_INFO, - BRIDGE_VLANDB_ENTRY_RANGE, - BRIDGE_VLANDB_ENTRY_STATE, - BRIDGE_VLANDB_ENTRY_TUNNEL_INFO, - BRIDGE_VLANDB_ENTRY_STATS, - __BRIDGE_VLANDB_ENTRY_MAX, -}; -#define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) - -/* [BRIDGE_VLANDB_ENTRY] = { - * [BRIDGE_VLANDB_ENTRY_TUNNEL_INFO] = { - * [BRIDGE_VLANDB_TINFO_ID] - * ... - * } - * } - */ -enum { - BRIDGE_VLANDB_TINFO_UNSPEC, - BRIDGE_VLANDB_TINFO_ID, - BRIDGE_VLANDB_TINFO_CMD, - __BRIDGE_VLANDB_TINFO_MAX, -}; -#define BRIDGE_VLANDB_TINFO_MAX (__BRIDGE_VLANDB_TINFO_MAX - 1) - -/* [BRIDGE_VLANDB_ENTRY] = { - * [BRIDGE_VLANDB_ENTRY_STATS] = { - * [BRIDGE_VLANDB_STATS_RX_BYTES] - * ... - * } - * ... - * } - */ -enum { - BRIDGE_VLANDB_STATS_UNSPEC, - BRIDGE_VLANDB_STATS_RX_BYTES, - BRIDGE_VLANDB_STATS_RX_PACKETS, - BRIDGE_VLANDB_STATS_TX_BYTES, - BRIDGE_VLANDB_STATS_TX_PACKETS, - BRIDGE_VLANDB_STATS_PAD, - __BRIDGE_VLANDB_STATS_MAX, -}; -#define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1) - /* Bridge multicast database attributes * [MDBA_MDB] = { * [MDBA_MDB_ENTRY] = { @@ -580,33 +198,10 @@ enum { enum { MDBA_MDB_EATTR_UNSPEC, MDBA_MDB_EATTR_TIMER, - MDBA_MDB_EATTR_SRC_LIST, - MDBA_MDB_EATTR_GROUP_MODE, - MDBA_MDB_EATTR_SOURCE, - MDBA_MDB_EATTR_RTPROT, __MDBA_MDB_EATTR_MAX }; #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1) -/* per mdb entry source */ -enum { - MDBA_MDB_SRCLIST_UNSPEC, - MDBA_MDB_SRCLIST_ENTRY, - __MDBA_MDB_SRCLIST_MAX -}; -#define MDBA_MDB_SRCLIST_MAX (__MDBA_MDB_SRCLIST_MAX - 1) - -/* per mdb entry per source attributes - * these are embedded in MDBA_MDB_SRCLIST_ENTRY - */ -enum { - MDBA_MDB_SRCATTR_UNSPEC, - MDBA_MDB_SRCATTR_ADDRESS, - MDBA_MDB_SRCATTR_TIMER, - __MDBA_MDB_SRCATTR_MAX -}; -#define MDBA_MDB_SRCATTR_MAX (__MDBA_MDB_SRCATTR_MAX - 1) - /* multicast router types */ enum { MDB_RTR_TYPE_DISABLED, @@ -643,15 +238,12 @@ struct br_mdb_entry { __u8 state; #define MDB_FLAGS_OFFLOAD (1 << 0) #define MDB_FLAGS_FAST_LEAVE (1 << 1) -#define MDB_FLAGS_STAR_EXCL (1 << 2) -#define MDB_FLAGS_BLOCKED (1 << 3) __u8 flags; __u16 vid; struct { union { __be32 ip4; struct in6_addr ip6; - unsigned char mac_addr[ETH_ALEN]; } u; __be16 proto; } addr; @@ -660,30 +252,16 @@ struct br_mdb_entry { enum { MDBA_SET_ENTRY_UNSPEC, MDBA_SET_ENTRY, - MDBA_SET_ENTRY_ATTRS, __MDBA_SET_ENTRY_MAX, }; #define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1) -/* [MDBA_SET_ENTRY_ATTRS] = { - * [MDBE_ATTR_xxx] - * ... - * } - */ -enum { - MDBE_ATTR_UNSPEC, - MDBE_ATTR_SOURCE, - __MDBE_ATTR_MAX, -}; -#define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) - /* Embedded inside LINK_XSTATS_TYPE_BRIDGE */ enum { BRIDGE_XSTATS_UNSPEC, BRIDGE_XSTATS_VLAN, BRIDGE_XSTATS_MCAST, BRIDGE_XSTATS_PAD, - BRIDGE_XSTATS_STP, __BRIDGE_XSTATS_MAX }; #define BRIDGE_XSTATS_MAX (__BRIDGE_XSTATS_MAX - 1) diff --git a/original/uapi/linux/if_ether.h b/original/uapi/linux/if_ether.h index a0b6379..f6ceb2e 100644 --- a/original/uapi/linux/if_ether.h +++ b/original/uapi/linux/if_ether.h @@ -92,14 +92,12 @@ #define ETH_P_PREAUTH 0x88C7 /* 802.11 Preauthentication */ #define ETH_P_TIPC 0x88CA /* TIPC */ #define ETH_P_LLDP 0x88CC /* Link Layer Discovery Protocol */ -#define ETH_P_MRP 0x88E3 /* Media Redundancy Protocol */ #define ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */ #define ETH_P_8021AH 0x88E7 /* 802.1ah Backbone Service Tag */ #define ETH_P_MVRP 0x88F5 /* 802.1Q MVRP */ #define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */ #define ETH_P_NCSI 0x88F8 /* NCSI protocol */ #define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */ -#define ETH_P_CFM 0x8902 /* Connectivity Fault Management */ #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ #define ETH_P_IBOE 0x8915 /* Infiniband over Ethernet */ #define ETH_P_TDLS 0x890D /* TDLS */ diff --git a/original/uapi/linux/if_frad.h b/original/uapi/linux/if_frad.h new file mode 100644 index 0000000..3c6ee85 --- /dev/null +++ b/original/uapi/linux/if_frad.h @@ -0,0 +1,123 @@ +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ +/* + * DLCI/FRAD Definitions for Frame Relay Access Devices. DLCI devices are + * created for each DLCI associated with a FRAD. The FRAD driver + * is not truly a network device, but the lower level device + * handler. This allows other FRAD manufacturers to use the DLCI + * code, including its RFC1490 encapsulation alongside the current + * implementation for the Sangoma cards. + * + * Version: @(#)if_ifrad.h 0.15 31 Mar 96 + * + * Author: Mike McLagan <mike.mclagan@linux.org> + * + * Changes: + * 0.15 Mike McLagan changed structure defs (packed) + * re-arranged flags + * added DLCI_RET vars + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _UAPI_FRAD_H_ +#define _UAPI_FRAD_H_ + +#include <linux/if.h> + +/* Structures and constants associated with the DLCI device driver */ + +struct dlci_add +{ + char devname[IFNAMSIZ]; + short dlci; +}; + +#define DLCI_GET_CONF (SIOCDEVPRIVATE + 2) +#define DLCI_SET_CONF (SIOCDEVPRIVATE + 3) + +/* + * These are related to the Sangoma SDLA and should remain in order. + * Code within the SDLA module is based on the specifics of this + * structure. Change at your own peril. + */ +struct dlci_conf { + short flags; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; + +/* these are part of the status read */ + short Tc_fwd; + short Tc_bwd; + short Tf_max; + short Tb_max; + +/* add any new fields here above is a mirror of sdla_dlci_conf */ +}; + +#define DLCI_GET_SLAVE (SIOCDEVPRIVATE + 4) + +/* configuration flags for DLCI */ +#define DLCI_IGNORE_CIR_OUT 0x0001 +#define DLCI_ACCOUNT_CIR_IN 0x0002 +#define DLCI_BUFFER_IF 0x0008 + +#define DLCI_VALID_FLAGS 0x000B + +/* defines for the actual Frame Relay hardware */ +#define FRAD_GET_CONF (SIOCDEVPRIVATE) +#define FRAD_SET_CONF (SIOCDEVPRIVATE + 1) + +#define FRAD_LAST_IOCTL FRAD_SET_CONF + +/* + * Based on the setup for the Sangoma SDLA. If changes are + * necessary to this structure, a routine will need to be + * added to that module to copy fields. + */ +struct frad_conf +{ + short station; + short flags; + short kbaud; + short clocking; + short mtu; + short T391; + short T392; + short N391; + short N392; + short N393; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; + +/* Add new fields here, above is a mirror of the sdla_conf */ + +}; + +#define FRAD_STATION_CPE 0x0000 +#define FRAD_STATION_NODE 0x0001 + +#define FRAD_TX_IGNORE_CIR 0x0001 +#define FRAD_RX_ACCOUNT_CIR 0x0002 +#define FRAD_DROP_ABORTED 0x0004 +#define FRAD_BUFFERIF 0x0008 +#define FRAD_STATS 0x0010 +#define FRAD_MCI 0x0100 +#define FRAD_AUTODLCI 0x8000 +#define FRAD_VALID_FLAGS 0x811F + +#define FRAD_CLOCK_INT 0x0001 +#define FRAD_CLOCK_EXT 0x0000 + + +#endif /* _UAPI_FRAD_H_ */ diff --git a/original/uapi/linux/if_link.h b/original/uapi/linux/if_link.h index 91c8dda..8aec876 100644 --- a/original/uapi/linux/if_link.h +++ b/original/uapi/linux/if_link.h @@ -7,23 +7,24 @@ /* This struct should be in sync with struct rtnl_link_stats64 */ struct rtnl_link_stats { - __u32 rx_packets; - __u32 tx_packets; - __u32 rx_bytes; - __u32 tx_bytes; - __u32 rx_errors; - __u32 tx_errors; - __u32 rx_dropped; - __u32 tx_dropped; - __u32 multicast; + __u32 rx_packets; /* total packets received */ + __u32 tx_packets; /* total packets transmitted */ + __u32 rx_bytes; /* total bytes received */ + __u32 tx_bytes; /* total bytes transmitted */ + __u32 rx_errors; /* bad packets received */ + __u32 tx_errors; /* packet transmit problems */ + __u32 rx_dropped; /* no space in linux buffers */ + __u32 tx_dropped; /* no space available in linux */ + __u32 multicast; /* multicast packets received */ __u32 collisions; + /* detailed rx_errors: */ __u32 rx_length_errors; - __u32 rx_over_errors; - __u32 rx_crc_errors; - __u32 rx_frame_errors; - __u32 rx_fifo_errors; - __u32 rx_missed_errors; + __u32 rx_over_errors; /* receiver ring buff overflow */ + __u32 rx_crc_errors; /* recved pkt with crc error */ + __u32 rx_frame_errors; /* recv'd frame alignment error */ + __u32 rx_fifo_errors; /* recv'r fifo overrun */ + __u32 rx_missed_errors; /* receiver missed packet */ /* detailed tx_errors */ __u32 tx_aborted_errors; @@ -36,201 +37,29 @@ struct rtnl_link_stats { __u32 rx_compressed; __u32 tx_compressed; - __u32 rx_nohandler; + __u32 rx_nohandler; /* dropped, no handler found */ }; -/** - * struct rtnl_link_stats64 - The main device statistics structure. - * - * @rx_packets: Number of good packets received by the interface. - * For hardware interfaces counts all good packets received from the device - * by the host, including packets which host had to drop at various stages - * of processing (even in the driver). - * - * @tx_packets: Number of packets successfully transmitted. - * For hardware interfaces counts packets which host was able to successfully - * hand over to the device, which does not necessarily mean that packets - * had been successfully transmitted out of the device, only that device - * acknowledged it copied them out of host memory. - * - * @rx_bytes: Number of good received bytes, corresponding to @rx_packets. - * - * For IEEE 802.3 devices should count the length of Ethernet Frames - * excluding the FCS. - * - * @tx_bytes: Number of good transmitted bytes, corresponding to @tx_packets. - * - * For IEEE 802.3 devices should count the length of Ethernet Frames - * excluding the FCS. - * - * @rx_errors: Total number of bad packets received on this network device. - * This counter must include events counted by @rx_length_errors, - * @rx_crc_errors, @rx_frame_errors and other errors not otherwise - * counted. - * - * @tx_errors: Total number of transmit problems. - * This counter must include events counter by @tx_aborted_errors, - * @tx_carrier_errors, @tx_fifo_errors, @tx_heartbeat_errors, - * @tx_window_errors and other errors not otherwise counted. - * - * @rx_dropped: Number of packets received but not processed, - * e.g. due to lack of resources or unsupported protocol. - * For hardware interfaces this counter may include packets discarded - * due to L2 address filtering but should not include packets dropped - * by the device due to buffer exhaustion which are counted separately in - * @rx_missed_errors (since procfs folds those two counters together). - * - * @tx_dropped: Number of packets dropped on their way to transmission, - * e.g. due to lack of resources. - * - * @multicast: Multicast packets received. - * For hardware interfaces this statistic is commonly calculated - * at the device level (unlike @rx_packets) and therefore may include - * packets which did not reach the host. - * - * For IEEE 802.3 devices this counter may be equivalent to: - * - * - 30.3.1.1.21 aMulticastFramesReceivedOK - * - * @collisions: Number of collisions during packet transmissions. - * - * @rx_length_errors: Number of packets dropped due to invalid length. - * Part of aggregate "frame" errors in `/proc/net/dev`. - * - * For IEEE 802.3 devices this counter should be equivalent to a sum - * of the following attributes: - * - * - 30.3.1.1.23 aInRangeLengthErrors - * - 30.3.1.1.24 aOutOfRangeLengthField - * - 30.3.1.1.25 aFrameTooLongErrors - * - * @rx_over_errors: Receiver FIFO overflow event counter. - * - * Historically the count of overflow events. Such events may be - * reported in the receive descriptors or via interrupts, and may - * not correspond one-to-one with dropped packets. - * - * The recommended interpretation for high speed interfaces is - - * number of packets dropped because they did not fit into buffers - * provided by the host, e.g. packets larger than MTU or next buffer - * in the ring was not available for a scatter transfer. - * - * Part of aggregate "frame" errors in `/proc/net/dev`. - * - * This statistics was historically used interchangeably with - * @rx_fifo_errors. - * - * This statistic corresponds to hardware events and is not commonly used - * on software devices. - * - * @rx_crc_errors: Number of packets received with a CRC error. - * Part of aggregate "frame" errors in `/proc/net/dev`. - * - * For IEEE 802.3 devices this counter must be equivalent to: - * - * - 30.3.1.1.6 aFrameCheckSequenceErrors - * - * @rx_frame_errors: Receiver frame alignment errors. - * Part of aggregate "frame" errors in `/proc/net/dev`. - * - * For IEEE 802.3 devices this counter should be equivalent to: - * - * - 30.3.1.1.7 aAlignmentErrors - * - * @rx_fifo_errors: Receiver FIFO error counter. - * - * Historically the count of overflow events. Those events may be - * reported in the receive descriptors or via interrupts, and may - * not correspond one-to-one with dropped packets. - * - * This statistics was used interchangeably with @rx_over_errors. - * Not recommended for use in drivers for high speed interfaces. - * - * This statistic is used on software devices, e.g. to count software - * packet queue overflow (can) or sequencing errors (GRE). - * - * @rx_missed_errors: Count of packets missed by the host. - * Folded into the "drop" counter in `/proc/net/dev`. - * - * Counts number of packets dropped by the device due to lack - * of buffer space. This usually indicates that the host interface - * is slower than the network interface, or host is not keeping up - * with the receive packet rate. - * - * This statistic corresponds to hardware events and is not used - * on software devices. - * - * @tx_aborted_errors: - * Part of aggregate "carrier" errors in `/proc/net/dev`. - * For IEEE 802.3 devices capable of half-duplex operation this counter - * must be equivalent to: - * - * - 30.3.1.1.11 aFramesAbortedDueToXSColls - * - * High speed interfaces may use this counter as a general device - * discard counter. - * - * @tx_carrier_errors: Number of frame transmission errors due to loss - * of carrier during transmission. - * Part of aggregate "carrier" errors in `/proc/net/dev`. - * - * For IEEE 802.3 devices this counter must be equivalent to: - * - * - 30.3.1.1.13 aCarrierSenseErrors - * - * @tx_fifo_errors: Number of frame transmission errors due to device - * FIFO underrun / underflow. This condition occurs when the device - * begins transmission of a frame but is unable to deliver the - * entire frame to the transmitter in time for transmission. - * Part of aggregate "carrier" errors in `/proc/net/dev`. - * - * @tx_heartbeat_errors: Number of Heartbeat / SQE Test errors for - * old half-duplex Ethernet. - * Part of aggregate "carrier" errors in `/proc/net/dev`. - * - * For IEEE 802.3 devices possibly equivalent to: - * - * - 30.3.2.1.4 aSQETestErrors - * - * @tx_window_errors: Number of frame transmission errors due - * to late collisions (for Ethernet - after the first 64B of transmission). - * Part of aggregate "carrier" errors in `/proc/net/dev`. - * - * For IEEE 802.3 devices this counter must be equivalent to: - * - * - 30.3.1.1.10 aLateCollisions - * - * @rx_compressed: Number of correctly received compressed packets. - * This counters is only meaningful for interfaces which support - * packet compression (e.g. CSLIP, PPP). - * - * @tx_compressed: Number of transmitted compressed packets. - * This counters is only meaningful for interfaces which support - * packet compression (e.g. CSLIP, PPP). - * - * @rx_nohandler: Number of packets received on the interface - * but dropped by the networking stack because the device is - * not designated to receive packets (e.g. backup link in a bond). - */ +/* The main device statistics structure */ struct rtnl_link_stats64 { - __u64 rx_packets; - __u64 tx_packets; - __u64 rx_bytes; - __u64 tx_bytes; - __u64 rx_errors; - __u64 tx_errors; - __u64 rx_dropped; - __u64 tx_dropped; - __u64 multicast; + __u64 rx_packets; /* total packets received */ + __u64 tx_packets; /* total packets transmitted */ + __u64 rx_bytes; /* total bytes received */ + __u64 tx_bytes; /* total bytes transmitted */ + __u64 rx_errors; /* bad packets received */ + __u64 tx_errors; /* packet transmit problems */ + __u64 rx_dropped; /* no space in linux buffers */ + __u64 tx_dropped; /* no space available in linux */ + __u64 multicast; /* multicast packets received */ __u64 collisions; /* detailed rx_errors: */ __u64 rx_length_errors; - __u64 rx_over_errors; - __u64 rx_crc_errors; - __u64 rx_frame_errors; - __u64 rx_fifo_errors; - __u64 rx_missed_errors; + __u64 rx_over_errors; /* receiver ring buff overflow */ + __u64 rx_crc_errors; /* recved pkt with crc error */ + __u64 rx_frame_errors; /* recv'd frame alignment error */ + __u64 rx_fifo_errors; /* recv'r fifo overrun */ + __u64 rx_missed_errors; /* receiver missed packet */ /* detailed tx_errors */ __u64 tx_aborted_errors; @@ -242,7 +71,8 @@ struct rtnl_link_stats64 { /* for cslip etc */ __u64 rx_compressed; __u64 tx_compressed; - __u64 rx_nohandler; + + __u64 rx_nohandler; /* dropped, no handler found */ }; /* The struct should be in sync with struct ifmap */ @@ -339,23 +169,12 @@ enum { IFLA_MAX_MTU, IFLA_PROP_LIST, IFLA_ALT_IFNAME, /* Alternative ifname */ - IFLA_PERM_ADDRESS, - IFLA_PROTO_DOWN_REASON, __IFLA_MAX }; #define IFLA_MAX (__IFLA_MAX - 1) -enum { - IFLA_PROTO_DOWN_REASON_UNSPEC, - IFLA_PROTO_DOWN_REASON_MASK, /* u32, mask for reason bits */ - IFLA_PROTO_DOWN_REASON_VALUE, /* u32, reason bit value */ - - __IFLA_PROTO_DOWN_REASON_CNT, - IFLA_PROTO_DOWN_REASON_MAX = __IFLA_PROTO_DOWN_REASON_CNT - 1 -}; - /* backwards compatibility for userspace */ #ifndef __KERNEL__ #define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) @@ -523,10 +342,6 @@ enum { IFLA_BRPORT_NEIGH_SUPPRESS, IFLA_BRPORT_ISOLATED, IFLA_BRPORT_BACKUP_PORT, - IFLA_BRPORT_MRP_RING_OPEN, - IFLA_BRPORT_MRP_IN_OPEN, - IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, __IFLA_BRPORT_MAX }; #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) @@ -591,8 +406,6 @@ enum { IFLA_MACVLAN_MACADDR, IFLA_MACVLAN_MACADDR_DATA, IFLA_MACVLAN_MACADDR_COUNT, - IFLA_MACVLAN_BC_QUEUE_LEN, - IFLA_MACVLAN_BC_QUEUE_LEN_USED, __IFLA_MACVLAN_MAX, }; @@ -649,7 +462,6 @@ enum { IFLA_MACSEC_REPLAY_PROTECT, IFLA_MACSEC_VALIDATION, IFLA_MACSEC_PAD, - IFLA_MACSEC_OFFLOAD, __IFLA_MACSEC_MAX, }; @@ -673,14 +485,6 @@ enum macsec_validation_type { MACSEC_VALIDATE_MAX = __MACSEC_VALIDATE_END - 1, }; -enum macsec_offload { - MACSEC_OFFLOAD_OFF = 0, - MACSEC_OFFLOAD_PHY = 1, - MACSEC_OFFLOAD_MAC = 2, - __MACSEC_OFFLOAD_END, - MACSEC_OFFLOAD_MAX = __MACSEC_OFFLOAD_END - 1, -}; - /* IPVLAN section */ enum { IFLA_IPVLAN_UNSPEC, @@ -778,18 +582,6 @@ enum ifla_geneve_df { GENEVE_DF_MAX = __GENEVE_DF_END - 1, }; -/* Bareudp section */ -enum { - IFLA_BAREUDP_UNSPEC, - IFLA_BAREUDP_PORT, - IFLA_BAREUDP_ETHERTYPE, - IFLA_BAREUDP_SRCPORT_MIN, - IFLA_BAREUDP_MULTIPROTO_MODE, - __IFLA_BAREUDP_MAX -}; - -#define IFLA_BAREUDP_MAX (__IFLA_BAREUDP_MAX - 1) - /* PPP section */ enum { IFLA_PPP_UNSPEC, @@ -1091,14 +883,7 @@ enum { #define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1) -/* HSR/PRP section, both uses same interface */ - -/* Different redundancy protocols for hsr device */ -enum { - HSR_PROTOCOL_HSR, - HSR_PROTOCOL_PRP, - HSR_PROTOCOL_MAX, -}; +/* HSR section */ enum { IFLA_HSR_UNSPEC, @@ -1108,9 +893,6 @@ enum { IFLA_HSR_SUPERVISION_ADDR, /* Supervision frame multicast addr */ IFLA_HSR_SEQ_NR, IFLA_HSR_VERSION, /* HSR version */ - IFLA_HSR_PROTOCOL, /* Indicate different protocol than - * HSR. For example PRP. - */ __IFLA_HSR_MAX, }; @@ -1170,12 +952,11 @@ enum { #define XDP_FLAGS_SKB_MODE (1U << 1) #define XDP_FLAGS_DRV_MODE (1U << 2) #define XDP_FLAGS_HW_MODE (1U << 3) -#define XDP_FLAGS_REPLACE (1U << 4) #define XDP_FLAGS_MODES (XDP_FLAGS_SKB_MODE | \ XDP_FLAGS_DRV_MODE | \ XDP_FLAGS_HW_MODE) #define XDP_FLAGS_MASK (XDP_FLAGS_UPDATE_IF_NOEXIST | \ - XDP_FLAGS_MODES | XDP_FLAGS_REPLACE) + XDP_FLAGS_MODES) /* These are stored into IFLA_XDP_ATTACHED on dump. */ enum { @@ -1195,7 +976,6 @@ enum { IFLA_XDP_DRV_PROG_ID, IFLA_XDP_SKB_PROG_ID, IFLA_XDP_HW_PROG_ID, - IFLA_XDP_EXPECTED_FD, __IFLA_XDP_MAX, }; diff --git a/original/uapi/linux/if_macsec.h b/original/uapi/linux/if_macsec.h index 3af2aa0..98e4d5d 100644 --- a/original/uapi/linux/if_macsec.h +++ b/original/uapi/linux/if_macsec.h @@ -22,11 +22,9 @@ #define MACSEC_KEYID_LEN 16 -/* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */ +/* cipher IDs as per IEEE802.1AEbn-2011 */ #define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL #define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL -#define MACSEC_CIPHER_ID_GCM_AES_XPN_128 0x0080C20001000003ULL -#define MACSEC_CIPHER_ID_GCM_AES_XPN_256 0x0080C20001000004ULL /* deprecated cipher ID for GCM-AES-128 */ #define MACSEC_DEFAULT_CIPHER_ID 0x0080020001000001ULL @@ -47,7 +45,6 @@ enum macsec_attrs { MACSEC_ATTR_RXSC_LIST, /* dump, nested, macsec_rxsc_attrs for each RXSC */ MACSEC_ATTR_TXSC_STATS, /* dump, nested, macsec_txsc_stats_attr */ MACSEC_ATTR_SECY_STATS, /* dump, nested, macsec_secy_stats_attr */ - MACSEC_ATTR_OFFLOAD, /* config, nested, macsec_offload_attrs */ __MACSEC_ATTR_END, NUM_MACSEC_ATTR = __MACSEC_ATTR_END, MACSEC_ATTR_MAX = __MACSEC_ATTR_END - 1, @@ -90,27 +87,16 @@ enum macsec_sa_attrs { MACSEC_SA_ATTR_UNSPEC, MACSEC_SA_ATTR_AN, /* config/dump, u8 0..3 */ MACSEC_SA_ATTR_ACTIVE, /* config/dump, u8 0..1 */ - MACSEC_SA_ATTR_PN, /* config/dump, u32/u64 (u64 if XPN) */ + MACSEC_SA_ATTR_PN, /* config/dump, u32 */ MACSEC_SA_ATTR_KEY, /* config, data */ MACSEC_SA_ATTR_KEYID, /* config/dump, 128-bit */ MACSEC_SA_ATTR_STATS, /* dump, nested, macsec_sa_stats_attr */ MACSEC_SA_ATTR_PAD, - MACSEC_SA_ATTR_SSCI, /* config/dump, u32 - XPN only */ - MACSEC_SA_ATTR_SALT, /* config, 96-bit - XPN only */ __MACSEC_SA_ATTR_END, NUM_MACSEC_SA_ATTR = __MACSEC_SA_ATTR_END, MACSEC_SA_ATTR_MAX = __MACSEC_SA_ATTR_END - 1, }; -enum macsec_offload_attrs { - MACSEC_OFFLOAD_ATTR_UNSPEC, - MACSEC_OFFLOAD_ATTR_TYPE, /* config/dump, u8 0..2 */ - MACSEC_OFFLOAD_ATTR_PAD, - __MACSEC_OFFLOAD_ATTR_END, - NUM_MACSEC_OFFLOAD_ATTR = __MACSEC_OFFLOAD_ATTR_END, - MACSEC_OFFLOAD_ATTR_MAX = __MACSEC_OFFLOAD_ATTR_END - 1, -}; - enum macsec_nl_commands { MACSEC_CMD_GET_TXSC, MACSEC_CMD_ADD_RXSC, @@ -122,7 +108,6 @@ enum macsec_nl_commands { MACSEC_CMD_ADD_RXSA, MACSEC_CMD_DEL_RXSA, MACSEC_CMD_UPD_RXSA, - MACSEC_CMD_UPD_OFFLOAD, }; /* u64 per-RXSC stats */ diff --git a/original/uapi/linux/if_packet.h b/original/uapi/linux/if_packet.h index c07caf7..3d884d6 100644 --- a/original/uapi/linux/if_packet.h +++ b/original/uapi/linux/if_packet.h @@ -2,7 +2,6 @@ #ifndef __LINUX_IF_PACKET_H #define __LINUX_IF_PACKET_H -#include <asm/byteorder.h> #include <linux/types.h> struct sockaddr_pkt { @@ -297,17 +296,6 @@ struct packet_mreq { unsigned char mr_address[8]; }; -struct fanout_args { -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u16 id; - __u16 type_flags; -#else - __u16 type_flags; - __u16 id; -#endif - __u32 max_num_members; -}; - #define PACKET_MR_MULTICAST 0 #define PACKET_MR_PROMISC 1 #define PACKET_MR_ALLMULTI 2 diff --git a/original/uapi/linux/if_pppol2tp.h b/original/uapi/linux/if_pppol2tp.h index a910443..060b4d1 100644 --- a/original/uapi/linux/if_pppol2tp.h +++ b/original/uapi/linux/if_pppol2tp.h @@ -75,7 +75,7 @@ struct pppol2tpv3in6_addr { }; /* Socket options: - * DEBUG - bitmask of debug message categories (not used) + * DEBUG - bitmask of debug message categories * SENDSEQ - 0 => don't send packets with sequence numbers * 1 => send packets with sequence numbers * RECVSEQ - 0 => receive packet sequence numbers are optional diff --git a/original/uapi/linux/if_x25.h b/original/uapi/linux/if_x25.h index 3a5938e..5d96244 100644 --- a/original/uapi/linux/if_x25.h +++ b/original/uapi/linux/if_x25.h @@ -18,7 +18,7 @@ #include <linux/types.h> -/* Documentation/networking/x25-iface.rst */ +/* Documentation/networking/x25-iface.txt */ #define X25_IFACE_DATA 0x00 #define X25_IFACE_CONNECT 0x01 #define X25_IFACE_DISCONNECT 0x02 diff --git a/original/uapi/linux/if_xdp.h b/original/uapi/linux/if_xdp.h index a78a809..be328c5 100644 --- a/original/uapi/linux/if_xdp.h +++ b/original/uapi/linux/if_xdp.h @@ -73,12 +73,9 @@ struct xdp_umem_reg { }; struct xdp_statistics { - __u64 rx_dropped; /* Dropped for other reasons */ + __u64 rx_dropped; /* Dropped for reasons other than invalid desc */ __u64 rx_invalid_descs; /* Dropped due to invalid descriptor */ __u64 tx_invalid_descs; /* Dropped due to invalid descriptor */ - __u64 rx_ring_full; /* Dropped due to rx ring being full */ - __u64 rx_fill_ring_empty_descs; /* Failed to retrieve item from fill ring */ - __u64 tx_ring_empty_descs; /* Failed to retrieve item from tx ring */ }; struct xdp_options { diff --git a/original/uapi/linux/iio/types.h b/original/uapi/linux/iio/types.h index 48c1314..fdd81af 100644 --- a/original/uapi/linux/iio/types.h +++ b/original/uapi/linux/iio/types.h @@ -94,7 +94,6 @@ enum iio_modifier { IIO_MOD_PM10, IIO_MOD_ETHANOL, IIO_MOD_H2, - IIO_MOD_O2, }; enum iio_event_type { diff --git a/original/uapi/linux/in.h b/original/uapi/linux/in.h index 7d66876..e7ad9d3 100644 --- a/original/uapi/linux/in.h +++ b/original/uapi/linux/in.h @@ -74,12 +74,8 @@ enum { #define IPPROTO_UDPLITE IPPROTO_UDPLITE IPPROTO_MPLS = 137, /* MPLS in IP (RFC 4023) */ #define IPPROTO_MPLS IPPROTO_MPLS - IPPROTO_ETHERNET = 143, /* Ethernet-within-IPv6 Encapsulation */ -#define IPPROTO_ETHERNET IPPROTO_ETHERNET IPPROTO_RAW = 255, /* Raw IP packets */ #define IPPROTO_RAW IPPROTO_RAW - IPPROTO_MPTCP = 262, /* Multipath TCP connection */ -#define IPPROTO_MPTCP IPPROTO_MPTCP IPPROTO_MAX }; #endif @@ -123,7 +119,6 @@ struct in_addr { #define IP_CHECKSUM 23 #define IP_BIND_ADDRESS_NO_PORT 24 #define IP_RECVFRAGSIZE 25 -#define IP_RECVERR_RFC4884 26 /* IP_MTU_DISCOVER values */ #define IP_PMTUDISC_DONT 0 /* Never send DF frames */ @@ -135,7 +130,7 @@ struct in_addr { * this socket to prevent accepting spoofed ones. */ #define IP_PMTUDISC_INTERFACE 4 -/* weaker version of IP_PMTUDISC_INTERFACE, which allows packets to get +/* weaker version of IP_PMTUDISC_INTERFACE, which allos packets to get * fragmented if they exeed the interface mtu */ #define IP_PMTUDISC_OMIT 5 diff --git a/original/uapi/linux/in6.h b/original/uapi/linux/in6.h index 5ad396a..9f2273a 100644 --- a/original/uapi/linux/in6.h +++ b/original/uapi/linux/in6.h @@ -179,7 +179,6 @@ struct in6_flowlabel_req { #define IPV6_LEAVE_ANYCAST 28 #define IPV6_MULTICAST_ALL 29 #define IPV6_ROUTER_ALERT_ISOLATE 30 -#define IPV6_RECVERR_RFC4884 31 /* IPV6_MTU_DISCOVER values */ #define IPV6_PMTUDISC_DONT 0 diff --git a/original/uapi/linux/incrementalfs.h b/original/uapi/linux/incrementalfs.h deleted file mode 100644 index f1a6199..0000000 --- a/original/uapi/linux/incrementalfs.h +++ /dev/null @@ -1,586 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Userspace interface for Incremental FS. - * - * Incremental FS is special-purpose Linux virtual file system that allows - * execution of a program while its binary and resource files are still being - * lazily downloaded over the network, USB etc. - * - * Copyright 2019 Google LLC - */ -#ifndef _UAPI_LINUX_INCREMENTALFS_H -#define _UAPI_LINUX_INCREMENTALFS_H - -#include <linux/limits.h> -#include <linux/ioctl.h> -#include <linux/types.h> -#include <linux/xattr.h> - -/* ===== constants ===== */ -#define INCFS_NAME "incremental-fs" - -/* - * Magic number used in file header and in memory superblock - * Note that it is a 5 byte unsigned long. Thus on 32 bit kernels, it is - * truncated to a 4 byte number - */ -#define INCFS_MAGIC_NUMBER (0x5346434e49ul & ULONG_MAX) - -#define INCFS_DATA_FILE_BLOCK_SIZE 4096 -#define INCFS_HEADER_VER 1 - -/* TODO: This value is assumed in incfs_copy_signature_info_from_user to be the - * actual signature length. Set back to 64 when fixed. - */ -#define INCFS_MAX_HASH_SIZE 32 -#define INCFS_MAX_FILE_ATTR_SIZE 512 - -#define INCFS_INDEX_NAME ".index" -#define INCFS_INCOMPLETE_NAME ".incomplete" -#define INCFS_PENDING_READS_FILENAME ".pending_reads" -#define INCFS_LOG_FILENAME ".log" -#define INCFS_BLOCKS_WRITTEN_FILENAME ".blocks_written" -#define INCFS_XATTR_ID_NAME (XATTR_USER_PREFIX "incfs.id") -#define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size") -#define INCFS_XATTR_METADATA_NAME (XATTR_USER_PREFIX "incfs.metadata") -#define INCFS_XATTR_VERITY_NAME (XATTR_USER_PREFIX "incfs.verity") - -#define INCFS_MAX_SIGNATURE_SIZE 8096 -#define INCFS_SIGNATURE_VERSION 2 -#define INCFS_SIGNATURE_SECTIONS 2 - -#define INCFS_IOCTL_BASE_CODE 'g' - -/* ===== ioctl requests on the command dir ===== */ - -/* - * Create a new file - * May only be called on .pending_reads file - */ -#define INCFS_IOC_CREATE_FILE \ - _IOWR(INCFS_IOCTL_BASE_CODE, 30, struct incfs_new_file_args) - -/* Read file signature */ -#define INCFS_IOC_READ_FILE_SIGNATURE \ - _IOR(INCFS_IOCTL_BASE_CODE, 31, struct incfs_get_file_sig_args) - -/* - * Fill in one or more data block. This may only be called on a handle - * passed as a parameter to INCFS_IOC_PERMIT_FILLING - * - * Returns number of blocks filled in, or error if none were - */ -#define INCFS_IOC_FILL_BLOCKS \ - _IOR(INCFS_IOCTL_BASE_CODE, 32, struct incfs_fill_blocks) - -/* - * Permit INCFS_IOC_FILL_BLOCKS on the given file descriptor - * May only be called on .pending_reads file - * - * Returns 0 on success or error - */ -#define INCFS_IOC_PERMIT_FILL \ - _IOW(INCFS_IOCTL_BASE_CODE, 33, struct incfs_permit_fill) - -/* - * Fills buffer with ranges of populated blocks - * - * Returns 0 if all ranges written - * error otherwise - * - * Either way, range_buffer_size_out is set to the number - * of bytes written. Should be set to 0 by caller. The ranges - * filled are valid, but if an error was returned there might - * be more ranges to come. - * - * Ranges are ranges of filled blocks: - * - * 1 2 7 9 - * - * means blocks 1, 2, 7, 8, 9 are filled, 0, 3, 4, 5, 6 and 10 on - * are not - * - * If hashing is enabled for the file, the hash blocks are simply - * treated as though they immediately followed the data blocks. - */ -#define INCFS_IOC_GET_FILLED_BLOCKS \ - _IOR(INCFS_IOCTL_BASE_CODE, 34, struct incfs_get_filled_blocks_args) - -/* - * Creates a new mapped file - * May only be called on .pending_reads file - */ -#define INCFS_IOC_CREATE_MAPPED_FILE \ - _IOWR(INCFS_IOCTL_BASE_CODE, 35, struct incfs_create_mapped_file_args) - -/* - * Get number of blocks, total and filled - * May only be called on .pending_reads file - */ -#define INCFS_IOC_GET_BLOCK_COUNT \ - _IOR(INCFS_IOCTL_BASE_CODE, 36, struct incfs_get_block_count_args) - -/* - * Get per UID read timeouts - * May only be called on .pending_reads file - */ -#define INCFS_IOC_GET_READ_TIMEOUTS \ - _IOR(INCFS_IOCTL_BASE_CODE, 37, struct incfs_get_read_timeouts_args) - -/* - * Set per UID read timeouts - * May only be called on .pending_reads file - */ -#define INCFS_IOC_SET_READ_TIMEOUTS \ - _IOW(INCFS_IOCTL_BASE_CODE, 38, struct incfs_set_read_timeouts_args) - -/* - * Get last read error - * May only be called on .pending_reads file - */ -#define INCFS_IOC_GET_LAST_READ_ERROR \ - _IOW(INCFS_IOCTL_BASE_CODE, 39, struct incfs_get_last_read_error_args) - -/* ===== sysfs feature flags ===== */ -/* - * Each flag is represented by a file in /sys/fs/incremental-fs/features - * If the file exists the feature is supported - * Also the file contents will be the line "supported" - */ - -/* - * Basic flag stating that the core incfs file system is available - */ -#define INCFS_FEATURE_FLAG_COREFS "corefs" - -/* - * zstd compression support - */ -#define INCFS_FEATURE_FLAG_ZSTD "zstd" - -/* - * v2 feature set support. Covers: - * INCFS_IOC_CREATE_MAPPED_FILE - * INCFS_IOC_GET_BLOCK_COUNT - * INCFS_IOC_GET_READ_TIMEOUTS/INCFS_IOC_SET_READ_TIMEOUTS - * .blocks_written status file - * .incomplete folder - * report_uid mount option - */ -#define INCFS_FEATURE_FLAG_V2 "v2" - -enum incfs_compression_alg { - COMPRESSION_NONE = 0, - COMPRESSION_LZ4 = 1, - COMPRESSION_ZSTD = 2, -}; - -enum incfs_block_flags { - INCFS_BLOCK_FLAGS_NONE = 0, - INCFS_BLOCK_FLAGS_HASH = 1, -}; - -typedef struct { - __u8 bytes[16]; -} incfs_uuid_t __attribute__((aligned (8))); - -/* - * Description of a pending read. A pending read - a read call by - * a userspace program for which the filesystem currently doesn't have data. - * - * Reads from .pending_reads and .log return an array of these structure - */ -struct incfs_pending_read_info { - /* Id of a file that is being read from. */ - incfs_uuid_t file_id; - - /* A number of microseconds since system boot to the read. */ - __aligned_u64 timestamp_us; - - /* Index of a file block that is being read. */ - __u32 block_index; - - /* A serial number of this pending read. */ - __u32 serial_number; -}; - -/* - * Description of a pending read. A pending read - a read call by - * a userspace program for which the filesystem currently doesn't have data. - * - * This version of incfs_pending_read_info is used whenever the file system is - * mounted with the report_uid flag - */ -struct incfs_pending_read_info2 { - /* Id of a file that is being read from. */ - incfs_uuid_t file_id; - - /* A number of microseconds since system boot to the read. */ - __aligned_u64 timestamp_us; - - /* Index of a file block that is being read. */ - __u32 block_index; - - /* A serial number of this pending read. */ - __u32 serial_number; - - /* The UID of the reading process */ - __u32 uid; - - __u32 reserved; -}; - -/* - * Description of a data or hash block to add to a data file. - */ -struct incfs_fill_block { - /* Index of a data block. */ - __u32 block_index; - - /* Length of data */ - __u32 data_len; - - /* - * A pointer to an actual data for the block. - * - * Equivalent to: __u8 *data; - */ - __aligned_u64 data; - - /* - * Compression algorithm used to compress the data block. - * Values from enum incfs_compression_alg. - */ - __u8 compression; - - /* Values from enum incfs_block_flags */ - __u8 flags; - - __u16 reserved1; - - __u32 reserved2; - - __aligned_u64 reserved3; -}; - -/* - * Description of a number of blocks to add to a data file - * - * Argument for INCFS_IOC_FILL_BLOCKS - */ -struct incfs_fill_blocks { - /* Number of blocks */ - __u64 count; - - /* A pointer to an array of incfs_fill_block structs */ - __aligned_u64 fill_blocks; -}; - -/* - * Permit INCFS_IOC_FILL_BLOCKS on the given file descriptor - * May only be called on .pending_reads file - * - * Argument for INCFS_IOC_PERMIT_FILL - */ -struct incfs_permit_fill { - /* File to permit fills on */ - __u32 file_descriptor; -}; - -enum incfs_hash_tree_algorithm { - INCFS_HASH_TREE_NONE = 0, - INCFS_HASH_TREE_SHA256 = 1 -}; - -/* - * Create a new file or directory. - */ -struct incfs_new_file_args { - /* Id of a file to create. */ - incfs_uuid_t file_id; - - /* - * Total size of the new file. Ignored if S_ISDIR(mode). - */ - __aligned_u64 size; - - /* - * File mode. Permissions and dir flag. - */ - __u16 mode; - - __u16 reserved1; - - __u32 reserved2; - - /* - * A pointer to a null-terminated relative path to the file's parent - * dir. - * Max length: PATH_MAX - * - * Equivalent to: char *directory_path; - */ - __aligned_u64 directory_path; - - /* - * A pointer to a null-terminated file's name. - * Max length: PATH_MAX - * - * Equivalent to: char *file_name; - */ - __aligned_u64 file_name; - - /* - * A pointer to a file attribute to be set on creation. - * - * Equivalent to: u8 *file_attr; - */ - __aligned_u64 file_attr; - - /* - * Length of the data buffer specfied by file_attr. - * Max value: INCFS_MAX_FILE_ATTR_SIZE - */ - __u32 file_attr_len; - - __u32 reserved4; - - /* - * Points to an APK V4 Signature data blob - * Signature must have two sections - * Format is: - * u32 version - * u32 size_of_hash_info_section - * u8 hash_info_section[] - * u32 size_of_signing_info_section - * u8 signing_info_section[] - * - * Note that incfs does not care about what is in signing_info_section - * - * hash_info_section has following format: - * u32 hash_algorithm; // Must be SHA256 == 1 - * u8 log2_blocksize; // Must be 12 for 4096 byte blocks - * u32 salt_size; - * u8 salt[]; - * u32 hash_size; - * u8 root_hash[]; - */ - __aligned_u64 signature_info; - - /* Size of signature_info */ - __aligned_u64 signature_size; - - __aligned_u64 reserved6; -}; - -/* - * Request a digital signature blob for a given file. - * Argument for INCFS_IOC_READ_FILE_SIGNATURE ioctl - */ -struct incfs_get_file_sig_args { - /* - * A pointer to the data buffer to save an signature blob to. - * - * Equivalent to: u8 *file_signature; - */ - __aligned_u64 file_signature; - - /* Size of the buffer at file_signature. */ - __u32 file_signature_buf_size; - - /* - * Number of bytes save file_signature buffer. - * It is set after ioctl done. - */ - __u32 file_signature_len_out; -}; - -struct incfs_filled_range { - __u32 begin; - __u32 end; -}; - -/* - * Request ranges of filled blocks - * Argument for INCFS_IOC_GET_FILLED_BLOCKS - */ -struct incfs_get_filled_blocks_args { - /* - * A buffer to populate with ranges of filled blocks - * - * Equivalent to struct incfs_filled_ranges *range_buffer - */ - __aligned_u64 range_buffer; - - /* Size of range_buffer */ - __u32 range_buffer_size; - - /* Start index to read from */ - __u32 start_index; - - /* - * End index to read to. 0 means read to end. This is a range, - * so incfs will read from start_index to end_index - 1 - */ - __u32 end_index; - - /* Actual number of blocks in file */ - __u32 total_blocks_out; - - /* The number of data blocks in file */ - __u32 data_blocks_out; - - /* Number of bytes written to range buffer */ - __u32 range_buffer_size_out; - - /* Sector scanned up to, if the call was interrupted */ - __u32 index_out; -}; - -/* - * Create a new mapped file - * Argument for INCFS_IOC_CREATE_MAPPED_FILE - */ -struct incfs_create_mapped_file_args { - /* - * Total size of the new file. - */ - __aligned_u64 size; - - /* - * File mode. Permissions and dir flag. - */ - __u16 mode; - - __u16 reserved1; - - __u32 reserved2; - - /* - * A pointer to a null-terminated relative path to the incfs mount - * point - * Max length: PATH_MAX - * - * Equivalent to: char *directory_path; - */ - __aligned_u64 directory_path; - - /* - * A pointer to a null-terminated file name. - * Max length: PATH_MAX - * - * Equivalent to: char *file_name; - */ - __aligned_u64 file_name; - - /* Id of source file to map. */ - incfs_uuid_t source_file_id; - - /* - * Offset in source file to start mapping. Must be a multiple of - * INCFS_DATA_FILE_BLOCK_SIZE - */ - __aligned_u64 source_offset; -}; - -/* - * Get information about the blocks in this file - * Argument for INCFS_IOC_GET_BLOCK_COUNT - */ -struct incfs_get_block_count_args { - /* Total number of data blocks in the file */ - __u32 total_data_blocks_out; - - /* Number of filled data blocks in the file */ - __u32 filled_data_blocks_out; - - /* Total number of hash blocks in the file */ - __u32 total_hash_blocks_out; - - /* Number of filled hash blocks in the file */ - __u32 filled_hash_blocks_out; -}; - -/* Description of timeouts for one UID */ -struct incfs_per_uid_read_timeouts { - /* UID to apply these timeouts to */ - __u32 uid; - - /* - * Min time in microseconds to read any block. Note that this doesn't - * apply to reads which are satisfied from the page cache. - */ - __u32 min_time_us; - - /* - * Min time in microseconds to satisfy a pending read. Any pending read - * which is filled before this time will be delayed so that the total - * read time >= this value. - */ - __u32 min_pending_time_us; - - /* - * Max time in microseconds to satisfy a pending read before the read - * times out. If set to U32_MAX, defaults to mount options - * read_timeout_ms * 1000. Must be >= min_pending_time_us - */ - __u32 max_pending_time_us; -}; - -/* - * Get the read timeouts array - * Argument for INCFS_IOC_GET_READ_TIMEOUTS - */ -struct incfs_get_read_timeouts_args { - /* - * A pointer to a buffer to fill with the current timeouts - * - * Equivalent to struct incfs_per_uid_read_timeouts * - */ - __aligned_u64 timeouts_array; - - /* Size of above buffer in bytes */ - __u32 timeouts_array_size; - - /* Size used in bytes, or size needed if -ENOMEM returned */ - __u32 timeouts_array_size_out; -}; - -/* - * Set the read timeouts array - * Arguments for INCFS_IOC_SET_READ_TIMEOUTS - */ -struct incfs_set_read_timeouts_args { - /* - * A pointer to an array containing the new timeouts - * This will replace any existing timeouts - * - * Equivalent to struct incfs_per_uid_read_timeouts * - */ - __aligned_u64 timeouts_array; - - /* Size of above array in bytes. Must be < 256 */ - __u32 timeouts_array_size; -}; - -/* - * Get last read error struct - * Arguments for INCFS_IOC_GET_LAST_READ_ERROR - */ -struct incfs_get_last_read_error_args { - /* File id of last file that had a read error */ - incfs_uuid_t file_id_out; - - /* Time of last read error, in us, from CLOCK_MONOTONIC */ - __u64 time_us_out; - - /* Index of page that was being read at last read error */ - __u32 page_out; - - /* errno of last read error */ - __u32 errno_out; - - __u64 reserved; -}; - -#endif /* _UAPI_LINUX_INCREMENTALFS_H */ diff --git a/original/uapi/linux/inet_diag.h b/original/uapi/linux/inet_diag.h index 20ee93f..a1ff345 100644 --- a/original/uapi/linux/inet_diag.h +++ b/original/uapi/linux/inet_diag.h @@ -64,12 +64,9 @@ struct inet_diag_req_raw { enum { INET_DIAG_REQ_NONE, INET_DIAG_REQ_BYTECODE, - INET_DIAG_REQ_SK_BPF_STORAGES, - INET_DIAG_REQ_PROTOCOL, - __INET_DIAG_REQ_MAX, }; -#define INET_DIAG_REQ_MAX (__INET_DIAG_REQ_MAX - 1) +#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE /* Bytecode is sequence of 4 byte commands followed by variable arguments. * All the commands identified by "code" are conditional jumps forward: @@ -97,7 +94,6 @@ enum { INET_DIAG_BC_MARK_COND, INET_DIAG_BC_S_EQ, INET_DIAG_BC_D_EQ, - INET_DIAG_BC_CGROUP_COND, /* u64 cgroup v2 ID */ }; struct inet_diag_hostcond { @@ -158,9 +154,6 @@ enum { INET_DIAG_CLASS_ID, /* request as INET_DIAG_TCLASS */ INET_DIAG_MD5SIG, INET_DIAG_ULP_INFO, - INET_DIAG_SK_BPF_STORAGES, - INET_DIAG_CGROUP_ID, - INET_DIAG_SOCKOPT, __INET_DIAG_MAX, }; @@ -170,7 +163,6 @@ enum { INET_ULP_INFO_UNSPEC, INET_ULP_INFO_NAME, INET_ULP_INFO_TLS, - INET_ULP_INFO_MPTCP, __INET_ULP_INFO_MAX, }; #define INET_ULP_INFO_MAX (__INET_ULP_INFO_MAX - 1) @@ -184,23 +176,6 @@ struct inet_diag_meminfo { __u32 idiag_tmem; }; -/* INET_DIAG_SOCKOPT */ - -struct inet_diag_sockopt { - __u8 recverr:1, - is_icsk:1, - freebind:1, - hdrincl:1, - mc_loop:1, - transparent:1, - mc_all:1, - nodefrag:1; - __u8 bind_address_no_port:1, - recverr_rfc4884:1, - defer_connect:1, - unused:5; -}; - /* INET_DIAG_VEGASINFO */ struct tcpvegas_info { diff --git a/original/uapi/linux/input-event-codes.h b/original/uapi/linux/input-event-codes.h index ee93428..69a1b64 100644 --- a/original/uapi/linux/input-event-codes.h +++ b/original/uapi/linux/input-event-codes.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * Input event codes * @@ -515,9 +515,6 @@ #define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ #define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ #define KEY_IMAGES 0x1ba /* AL Image Browser */ -#define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ -#define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ -#define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 @@ -545,7 +542,6 @@ #define KEY_FN_F 0x1e2 #define KEY_FN_S 0x1e3 #define KEY_FN_B 0x1e4 -#define KEY_FN_RIGHT_SHIFT 0x1e5 #define KEY_BRL_DOT1 0x1f1 #define KEY_BRL_DOT2 0x1f2 @@ -656,9 +652,6 @@ /* Electronic privacy screen control */ #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 -/* Select an area of screen to be copied */ -#define KEY_SELECTIVE_SCREENSHOT 0x27a - /* * Some keyboards have keys which do not have a defined meaning, these keys * are intended to be programmed / bound to macros by the user. For most @@ -892,8 +885,10 @@ #define SW_LINEIN_INSERT 0x0d /* set = inserted */ #define SW_MUTE_DEVICE 0x0e /* set = device disabled */ #define SW_PEN_INSERTED 0x0f /* set = pen inserted */ -#define SW_MACHINE_COVER 0x10 /* set = cover closed */ -#define SW_MAX 0x10 +#define SW_HPHL_OVERCURRENT 0x10 /* set = over current on left hph */ +#define SW_HPHR_OVERCURRENT 0x11 /* set = over current on right hph */ +#define SW_UNSUPPORT_INSERT 0x12 /* set = unsupported device inserted */ +#define SW_MAX 0x20 #define SW_CNT (SW_MAX+1) /* diff --git a/original/uapi/linux/input.h b/original/uapi/linux/input.h index ee31274..9a61c28 100644 --- a/original/uapi/linux/input.h +++ b/original/uapi/linux/input.h @@ -84,7 +84,7 @@ struct input_id { * in units per radian. * When INPUT_PROP_ACCELEROMETER is set the resolution changes. * The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in - * units per g (units/g) and in units per degree per second + * in units per g (units/g) and in units per degree per second * (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ). */ struct input_absinfo { diff --git a/original/uapi/linux/io_uring.h b/original/uapi/linux/io_uring.h index 2514eb6..55cfcb7 100644 --- a/original/uapi/linux/io_uring.h +++ b/original/uapi/linux/io_uring.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * Header file for the io_uring interface. * @@ -23,70 +23,32 @@ struct io_uring_sqe { __u64 off; /* offset into file */ __u64 addr2; }; - union { - __u64 addr; /* pointer to buffer or iovecs */ - __u64 splice_off_in; - }; + __u64 addr; /* pointer to buffer or iovecs */ __u32 len; /* buffer size or number of iovecs */ union { __kernel_rwf_t rw_flags; __u32 fsync_flags; - __u16 poll_events; /* compatibility */ - __u32 poll32_events; /* word-reversed for BE */ + __u16 poll_events; __u32 sync_range_flags; __u32 msg_flags; __u32 timeout_flags; __u32 accept_flags; __u32 cancel_flags; - __u32 open_flags; - __u32 statx_flags; - __u32 fadvise_advice; - __u32 splice_flags; - __u32 rename_flags; - __u32 unlink_flags; }; __u64 user_data; /* data to be passed back at completion time */ union { - struct { - /* pack this to avoid bogus arm OABI complaints */ - union { - /* index into fixed buffers, if used */ - __u16 buf_index; - /* for grouped buffer selection */ - __u16 buf_group; - } __attribute__((packed)); - /* personality to use, if used */ - __u16 personality; - __s32 splice_fd_in; - }; + __u16 buf_index; /* index into fixed buffers, if used */ __u64 __pad2[3]; }; }; -enum { - IOSQE_FIXED_FILE_BIT, - IOSQE_IO_DRAIN_BIT, - IOSQE_IO_LINK_BIT, - IOSQE_IO_HARDLINK_BIT, - IOSQE_ASYNC_BIT, - IOSQE_BUFFER_SELECT_BIT, -}; - /* * sqe->flags */ -/* use fixed fileset */ -#define IOSQE_FIXED_FILE (1U << IOSQE_FIXED_FILE_BIT) -/* issue after inflight IO */ -#define IOSQE_IO_DRAIN (1U << IOSQE_IO_DRAIN_BIT) -/* links next sqe */ -#define IOSQE_IO_LINK (1U << IOSQE_IO_LINK_BIT) -/* like LINK, but stronger */ -#define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT) -/* always go async */ -#define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT) -/* select buffer from sqe->buf_group */ -#define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT) +#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */ +#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */ +#define IOSQE_IO_LINK (1U << 2) /* links next sqe */ +#define IOSQE_IO_HARDLINK (1U << 3) /* like LINK, but stronger */ /* * io_uring_setup() flags @@ -95,9 +57,6 @@ enum { #define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */ #define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */ #define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */ -#define IORING_SETUP_CLAMP (1U << 4) /* clamp SQ/CQ ring sizes */ -#define IORING_SETUP_ATTACH_WQ (1U << 5) /* attach to existing wq */ -#define IORING_SETUP_R_DISABLED (1U << 6) /* start with ring disabled */ enum { IORING_OP_NOP, @@ -117,26 +76,6 @@ enum { IORING_OP_ASYNC_CANCEL, IORING_OP_LINK_TIMEOUT, IORING_OP_CONNECT, - IORING_OP_FALLOCATE, - IORING_OP_OPENAT, - IORING_OP_CLOSE, - IORING_OP_FILES_UPDATE, - IORING_OP_STATX, - IORING_OP_READ, - IORING_OP_WRITE, - IORING_OP_FADVISE, - IORING_OP_MADVISE, - IORING_OP_SEND, - IORING_OP_RECV, - IORING_OP_OPENAT2, - IORING_OP_EPOLL_CTL, - IORING_OP_SPLICE, - IORING_OP_PROVIDE_BUFFERS, - IORING_OP_REMOVE_BUFFERS, - IORING_OP_TEE, - IORING_OP_SHUTDOWN, - IORING_OP_RENAMEAT, - IORING_OP_UNLINKAT, /* this goes last, obviously */ IORING_OP_LAST, @@ -151,13 +90,6 @@ enum { * sqe->timeout_flags */ #define IORING_TIMEOUT_ABS (1U << 0) -#define IORING_TIMEOUT_UPDATE (1U << 1) - -/* - * sqe->splice_flags - * extends splice(2) flags - */ -#define SPLICE_F_FD_IN_FIXED (1U << 31) /* the last bit of __u32 */ /* * IO completion data structure (Completion Queue Entry) @@ -169,17 +101,6 @@ struct io_uring_cqe { }; /* - * cqe->flags - * - * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID - */ -#define IORING_CQE_F_BUFFER (1U << 0) - -enum { - IORING_CQE_BUFFER_SHIFT = 16, -}; - -/* * Magic offsets for the application to mmap the data it needs */ #define IORING_OFF_SQ_RING 0ULL @@ -205,7 +126,6 @@ struct io_sqring_offsets { * sq_ring->flags */ #define IORING_SQ_NEED_WAKEUP (1U << 0) /* needs io_uring_enter wakeup */ -#define IORING_SQ_CQ_OVERFLOW (1U << 1) /* CQ ring is overflown */ struct io_cqring_offsets { __u32 head; @@ -214,25 +134,14 @@ struct io_cqring_offsets { __u32 ring_entries; __u32 overflow; __u32 cqes; - __u32 flags; - __u32 resv1; - __u64 resv2; + __u64 resv[2]; }; /* - * cq_ring->flags - */ - -/* disable eventfd notifications */ -#define IORING_CQ_EVENTFD_DISABLED (1U << 0) - -/* * io_uring_enter(2) flags */ #define IORING_ENTER_GETEVENTS (1U << 0) #define IORING_ENTER_SQ_WAKEUP (1U << 1) -#define IORING_ENTER_SQ_WAIT (1U << 2) -#define IORING_ENTER_EXT_ARG (1U << 3) /* * Passed in for io_uring_setup(2). Copied back with updated info on success @@ -244,8 +153,7 @@ struct io_uring_params { __u32 sq_thread_cpu; __u32 sq_thread_idle; __u32 features; - __u32 wq_fd; - __u32 resv[3]; + __u32 resv[4]; struct io_sqring_offsets sq_off; struct io_cqring_offsets cq_off; }; @@ -256,104 +164,22 @@ struct io_uring_params { #define IORING_FEAT_SINGLE_MMAP (1U << 0) #define IORING_FEAT_NODROP (1U << 1) #define IORING_FEAT_SUBMIT_STABLE (1U << 2) -#define IORING_FEAT_RW_CUR_POS (1U << 3) -#define IORING_FEAT_CUR_PERSONALITY (1U << 4) -#define IORING_FEAT_FAST_POLL (1U << 5) -#define IORING_FEAT_POLL_32BITS (1U << 6) -#define IORING_FEAT_SQPOLL_NONFIXED (1U << 7) -#define IORING_FEAT_EXT_ARG (1U << 8) -#define IORING_FEAT_NATIVE_WORKERS (1U << 9) /* * io_uring_register(2) opcodes and arguments */ -enum { - IORING_REGISTER_BUFFERS = 0, - IORING_UNREGISTER_BUFFERS = 1, - IORING_REGISTER_FILES = 2, - IORING_UNREGISTER_FILES = 3, - IORING_REGISTER_EVENTFD = 4, - IORING_UNREGISTER_EVENTFD = 5, - IORING_REGISTER_FILES_UPDATE = 6, - IORING_REGISTER_EVENTFD_ASYNC = 7, - IORING_REGISTER_PROBE = 8, - IORING_REGISTER_PERSONALITY = 9, - IORING_UNREGISTER_PERSONALITY = 10, - IORING_REGISTER_RESTRICTIONS = 11, - IORING_REGISTER_ENABLE_RINGS = 12, - - /* this goes last */ - IORING_REGISTER_LAST -}; +#define IORING_REGISTER_BUFFERS 0 +#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 +#define IORING_REGISTER_FILES_UPDATE 6 -/* deprecated, see struct io_uring_rsrc_update */ struct io_uring_files_update { __u32 offset; __u32 resv; __aligned_u64 /* __s32 * */ fds; }; -struct io_uring_rsrc_update { - __u32 offset; - __u32 resv; - __aligned_u64 data; -}; - -/* Skip updating fd indexes set to this value in the fd table */ -#define IORING_REGISTER_FILES_SKIP (-2) - -#define IO_URING_OP_SUPPORTED (1U << 0) - -struct io_uring_probe_op { - __u8 op; - __u8 resv; - __u16 flags; /* IO_URING_OP_* flags */ - __u32 resv2; -}; - -struct io_uring_probe { - __u8 last_op; /* last opcode supported */ - __u8 ops_len; /* length of ops[] array below */ - __u16 resv; - __u32 resv2[3]; - struct io_uring_probe_op ops[0]; -}; - -struct io_uring_restriction { - __u16 opcode; - union { - __u8 register_op; /* IORING_RESTRICTION_REGISTER_OP */ - __u8 sqe_op; /* IORING_RESTRICTION_SQE_OP */ - __u8 sqe_flags; /* IORING_RESTRICTION_SQE_FLAGS_* */ - }; - __u8 resv; - __u32 resv2[3]; -}; - -/* - * io_uring_restriction->opcode values - */ -enum { - /* Allow an io_uring_register(2) opcode */ - IORING_RESTRICTION_REGISTER_OP = 0, - - /* Allow an sqe opcode */ - IORING_RESTRICTION_SQE_OP = 1, - - /* Allow sqe flags */ - IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, - - /* Require sqe flags (these flags must be set on each submission) */ - IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, - - IORING_RESTRICTION_LAST -}; - -struct io_uring_getevents_arg { - __u64 sigmask; - __u32 sigmask_sz; - __u32 pad; - __u64 ts; -}; - #endif diff --git a/original/uapi/linux/iommu.h b/original/uapi/linux/iommu.h index e1d9e75..4ad3496 100644 --- a/original/uapi/linux/iommu.h +++ b/original/uapi/linux/iommu.h @@ -81,10 +81,7 @@ struct iommu_fault_unrecoverable { /** * struct iommu_fault_page_request - Page Request data * @flags: encodes whether the corresponding fields are valid and whether this - * is the last page in group (IOMMU_FAULT_PAGE_REQUEST_* values). - * When IOMMU_FAULT_PAGE_RESPONSE_NEEDS_PASID is set, the page response - * must have the same PASID value as the page request. When it is clear, - * the page response should not have a PASID. + * is the last page in group (IOMMU_FAULT_PAGE_REQUEST_* values) * @pasid: Process Address Space ID * @grpid: Page Request Group Index * @perm: requested page permissions (IOMMU_FAULT_PERM_* values) @@ -95,7 +92,6 @@ struct iommu_fault_page_request { #define IOMMU_FAULT_PAGE_REQUEST_PASID_VALID (1 << 0) #define IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE (1 << 1) #define IOMMU_FAULT_PAGE_REQUEST_PRIV_DATA (1 << 2) -#define IOMMU_FAULT_PAGE_RESPONSE_NEEDS_PASID (1 << 3) __u32 flags; __u32 pasid; __u32 grpid; @@ -139,7 +135,6 @@ enum iommu_page_response_code { /** * struct iommu_page_response - Generic page response information - * @argsz: User filled size of this data * @version: API version of this structure * @flags: encodes whether the corresponding fields are valid * (IOMMU_FAULT_PAGE_RESPONSE_* values) @@ -148,7 +143,6 @@ enum iommu_page_response_code { * @code: response code from &enum iommu_page_response_code */ struct iommu_page_response { - __u32 argsz; #define IOMMU_PAGE_RESP_VERSION_1 1 __u32 version; #define IOMMU_PAGE_RESP_PASID_VALID (1 << 0) @@ -224,7 +218,6 @@ struct iommu_inv_pasid_info { /** * struct iommu_cache_invalidate_info - First level/stage invalidation * information - * @argsz: User filled size of this data * @version: API version of this structure * @cache: bitfield that allows to select which caches to invalidate * @granularity: defines the lowest granularity used for the invalidation: @@ -253,7 +246,6 @@ struct iommu_inv_pasid_info { * must support the used granularity. */ struct iommu_cache_invalidate_info { - __u32 argsz; #define IOMMU_CACHE_INVALIDATE_INFO_VERSION_1 1 __u32 version; /* IOMMU paging structure cache */ @@ -263,11 +255,11 @@ struct iommu_cache_invalidate_info { #define IOMMU_CACHE_INV_TYPE_NR (3) __u8 cache; __u8 granularity; - __u8 padding[6]; + __u8 padding[2]; union { struct iommu_inv_pasid_info pasid_info; struct iommu_inv_addr_info addr_info; - } granu; + }; }; /** @@ -288,20 +280,13 @@ struct iommu_gpasid_bind_data_vtd { #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3) /* page-level write through */ #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4) /* extended mem type enable */ #define IOMMU_SVA_VTD_GPASID_CD (1 << 5) /* PASID-level cache disable */ -#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6) __u64 flags; __u32 pat; __u32 emt; }; -#define IOMMU_SVA_VTD_GPASID_MTS_MASK (IOMMU_SVA_VTD_GPASID_CD | \ - IOMMU_SVA_VTD_GPASID_EMTE | \ - IOMMU_SVA_VTD_GPASID_PCD | \ - IOMMU_SVA_VTD_GPASID_PWT) - /** * struct iommu_gpasid_bind_data - Information about device and guest PASID binding - * @argsz: User filled size of this data * @version: Version of this data structure * @format: PASID table entry format * @flags: Additional information on guest bind request @@ -319,23 +304,21 @@ struct iommu_gpasid_bind_data_vtd { * PASID to host PASID based on this bind data. */ struct iommu_gpasid_bind_data { - __u32 argsz; #define IOMMU_GPASID_BIND_VERSION_1 1 __u32 version; #define IOMMU_PASID_FORMAT_INTEL_VTD 1 -#define IOMMU_PASID_FORMAT_LAST 2 __u32 format; - __u32 addr_width; #define IOMMU_SVA_GPASID_VAL (1 << 0) /* guest PASID valid */ __u64 flags; __u64 gpgd; __u64 hpasid; __u64 gpasid; - __u8 padding[8]; + __u32 addr_width; + __u8 padding[12]; /* Vendor specific data */ union { struct iommu_gpasid_bind_data_vtd vtd; - } vendor; + }; }; #endif /* _UAPI_IOMMU_H */ diff --git a/original/uapi/linux/ipmi_msgdefs.h b/original/uapi/linux/ipmi_msgdefs.h index 0934af3..c2b23a9 100644 --- a/original/uapi/linux/ipmi_msgdefs.h +++ b/original/uapi/linux/ipmi_msgdefs.h @@ -69,8 +69,6 @@ #define IPMI_ERR_MSG_TRUNCATED 0xc6 #define IPMI_REQ_LEN_INVALID_ERR 0xc7 #define IPMI_REQ_LEN_EXCEEDED_ERR 0xc8 -#define IPMI_DEVICE_IN_FW_UPDATE_ERR 0xd1 -#define IPMI_DEVICE_IN_INIT_ERR 0xd2 #define IPMI_NOT_IN_MY_STATE_ERR 0xd5 /* IPMI 2.0 */ #define IPMI_LOST_ARBITRATION_ERR 0x81 #define IPMI_BUS_ERR 0x82 diff --git a/original/uapi/linux/ipv6.h b/original/uapi/linux/ipv6.h index 7060377..9c0f4a9 100644 --- a/original/uapi/linux/ipv6.h +++ b/original/uapi/linux/ipv6.h @@ -40,7 +40,6 @@ struct in6_ifreq { #define IPV6_SRCRT_STRICT 0x01 /* Deprecated; will be removed */ #define IPV6_SRCRT_TYPE_0 0 /* Deprecated; will be removed */ #define IPV6_SRCRT_TYPE_2 2 /* IPv6 type 2 Routing Header */ -#define IPV6_SRCRT_TYPE_3 3 /* RPL Segment Routing with IPv6 */ #define IPV6_SRCRT_TYPE_4 4 /* Segment Routing with IPv6 */ /* @@ -188,8 +187,6 @@ enum { DEVCONF_DISABLE_POLICY, DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN, DEVCONF_NDISC_TCLASS, - DEVCONF_RPL_SEG_ENABLED, - DEVCONF_RA_DEFRTR_METRIC, DEVCONF_MAX }; diff --git a/original/uapi/linux/isst_if.h b/original/uapi/linux/isst_if.h index ba078f8..0a52b7b 100644 --- a/original/uapi/linux/isst_if.h +++ b/original/uapi/linux/isst_if.h @@ -69,7 +69,7 @@ struct isst_if_cpu_maps { * @logical_cpu: Logical CPU number to get target PCI device. * @reg: PUNIT register offset * @value: For write operation value to write and for - * read placeholder read value + * for read placeholder read value * * Structure to specify read/write data to PUNIT registers. */ diff --git a/original/uapi/linux/kd.h b/original/uapi/linux/kd.h index ee929ec..4616b31 100644 --- a/original/uapi/linux/kd.h +++ b/original/uapi/linux/kd.h @@ -173,7 +173,7 @@ struct console_font { #define KD_FONT_OP_SET 0 /* Set font */ #define KD_FONT_OP_GET 1 /* Get font */ #define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default, data points to name / NULL */ -#define KD_FONT_OP_COPY 3 /* Obsolete, do not use */ +#define KD_FONT_OP_COPY 3 /* Copy from another console */ #define KD_FONT_FLAG_DONT_RECALC 1 /* Don't recalculate hw charcell size [compat] */ diff --git a/original/uapi/linux/kernel.h b/original/uapi/linux/kernel.h index fadf2db..0ff8f74 100644 --- a/original/uapi/linux/kernel.h +++ b/original/uapi/linux/kernel.h @@ -3,6 +3,13 @@ #define _UAPI_LINUX_KERNEL_H #include <linux/sysinfo.h> -#include <linux/const.h> + +/* + * 'kernel.h' contains some often-used function prototypes etc + */ +#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1) +#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) + +#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) #endif /* _UAPI_LINUX_KERNEL_H */ diff --git a/original/uapi/linux/keyboard.h b/original/uapi/linux/keyboard.h index 36d230c..4846716 100644 --- a/original/uapi/linux/keyboard.h +++ b/original/uapi/linux/keyboard.h @@ -27,6 +27,7 @@ #define MAX_NR_FUNC 256 /* max nr of strings assigned to keys */ #define KT_LATIN 0 /* we depend on this being zero */ +#define KT_LETTER 11 /* symbol that can be acted upon by CapsLock */ #define KT_FN 1 #define KT_SPEC 2 #define KT_PAD 3 @@ -37,7 +38,6 @@ #define KT_META 8 #define KT_ASCII 9 #define KT_LOCK 10 -#define KT_LETTER 11 /* symbol that can be acted upon by CapsLock */ #define KT_SLOCK 12 #define KT_DEAD2 13 #define KT_BRL 14 diff --git a/original/uapi/linux/keyctl.h b/original/uapi/linux/keyctl.h index 4c8884e..ed3d589 100644 --- a/original/uapi/linux/keyctl.h +++ b/original/uapi/linux/keyctl.h @@ -69,7 +69,6 @@ #define KEYCTL_RESTRICT_KEYRING 29 /* Restrict keys allowed to link to a keyring */ #define KEYCTL_MOVE 30 /* Move keys between keyrings */ #define KEYCTL_CAPABILITIES 31 /* Find capabilities of keyrings subsystem */ -#define KEYCTL_WATCH_KEY 32 /* Watch a key or ring of keys for changes */ /* keyctl structures */ struct keyctl_dh_params { @@ -131,6 +130,5 @@ struct keyctl_pkey_params { #define KEYCTL_CAPS0_MOVE 0x80 /* KEYCTL_MOVE supported */ #define KEYCTL_CAPS1_NS_KEYRING_NAME 0x01 /* Keyring names are per-user_namespace */ #define KEYCTL_CAPS1_NS_KEY_TAG 0x02 /* Key indexing can include a namespace tag */ -#define KEYCTL_CAPS1_NOTIFICATIONS 0x04 /* Keys generate watchable notifications */ #endif /* _LINUX_KEYCTL_H */ diff --git a/original/uapi/linux/kfd_ioctl.h b/original/uapi/linux/kfd_ioctl.h index 695b606..20917c5 100644 --- a/original/uapi/linux/kfd_ioctl.h +++ b/original/uapi/linux/kfd_ioctl.h @@ -26,12 +26,8 @@ #include <drm/drm.h> #include <linux/ioctl.h> -/* - * - 1.1 - initial version - * - 1.3 - Add SMI events support - */ #define KFD_IOCTL_MAJOR_VERSION 1 -#define KFD_IOCTL_MINOR_VERSION 3 +#define KFD_IOCTL_MINOR_VERSION 1 struct kfd_ioctl_get_version_args { __u32 major_version; /* from KFD */ @@ -255,7 +251,7 @@ struct kfd_memory_exception_failure { __u32 imprecise; /* Can't determine the exact fault address */ }; -/* memory exception data */ +/* memory exception data*/ struct kfd_hsa_memory_exception_data { struct kfd_memory_exception_failure failure; __u64 va; @@ -414,20 +410,6 @@ struct kfd_ioctl_unmap_memory_from_gpu_args { __u32 n_success; /* to/from KFD */ }; -/* Allocate GWS for specific queue - * - * @queue_id: queue's id that GWS is allocated for - * @num_gws: how many GWS to allocate - * @first_gws: index of the first GWS allocated. - * only support contiguous GWS allocation - */ -struct kfd_ioctl_alloc_queue_gws_args { - __u32 queue_id; /* to KFD */ - __u32 num_gws; /* to KFD */ - __u32 first_gws; /* from KFD */ - __u32 pad; -}; - struct kfd_ioctl_get_dmabuf_info_args { __u64 size; /* from KFD */ __u64 metadata_ptr; /* to KFD */ @@ -446,24 +428,6 @@ struct kfd_ioctl_import_dmabuf_args { __u32 dmabuf_fd; /* to KFD */ }; -/* - * KFD SMI(System Management Interface) events - */ -enum kfd_smi_event { - KFD_SMI_EVENT_NONE = 0, /* not used */ - KFD_SMI_EVENT_VMFAULT = 1, /* event start counting at 1 */ - KFD_SMI_EVENT_THERMAL_THROTTLE = 2, - KFD_SMI_EVENT_GPU_PRE_RESET = 3, - KFD_SMI_EVENT_GPU_POST_RESET = 4, -}; - -#define KFD_SMI_EVENT_MASK_FROM_INDEX(i) (1ULL << ((i) - 1)) - -struct kfd_ioctl_smi_events_args { - __u32 gpuid; /* to KFD */ - __u32 anon_fd; /* from KFD */ -}; - /* Register offset inside the remapped mmio page */ enum kfd_mmio_remap { @@ -565,13 +529,7 @@ enum kfd_mmio_remap { #define AMDKFD_IOC_IMPORT_DMABUF \ AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args) -#define AMDKFD_IOC_ALLOC_QUEUE_GWS \ - AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args) - -#define AMDKFD_IOC_SMI_EVENTS \ - AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args) - #define AMDKFD_COMMAND_START 0x01 -#define AMDKFD_COMMAND_END 0x20 +#define AMDKFD_COMMAND_END 0x1E #endif diff --git a/original/uapi/linux/kvm.h b/original/uapi/linux/kvm.h index f6afee2..f0a16b4 100644 --- a/original/uapi/linux/kvm.h +++ b/original/uapi/linux/kvm.h @@ -116,7 +116,7 @@ struct kvm_irq_level { * ACPI gsi notion of irq. * For IA-64 (APIC model) IOAPIC0: irq 0-23; IOAPIC1: irq 24-47.. * For X86 (standard AT mode) PIC0/1: irq 0-15. IOAPIC0: 0-23.. - * For ARM: See Documentation/virt/kvm/api.rst + * For ARM: See Documentation/virt/kvm/api.txt */ union { __u32 irq; @@ -188,13 +188,10 @@ struct kvm_s390_cmma_log { struct kvm_hyperv_exit { #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 -#define KVM_EXIT_HYPERV_SYNDBG 3 __u32 type; - __u32 pad1; union { struct { __u32 msr; - __u32 pad2; __u64 control; __u64 evt_page; __u64 msg_page; @@ -204,29 +201,6 @@ struct kvm_hyperv_exit { __u64 result; __u64 params[2]; } hcall; - struct { - __u32 msr; - __u32 pad2; - __u64 control; - __u64 status; - __u64 send_page; - __u64 recv_page; - __u64 pending_page; - } syndbg; - } u; -}; - -struct kvm_xen_exit { -#define KVM_EXIT_XEN_HCALL 1 - __u32 type; - union { - struct { - __u32 longmode; - __u32 cpl; - __u64 input; - __u64 result; - __u64 params[6]; - } hcall; } u; }; @@ -262,12 +236,6 @@ struct kvm_xen_exit { #define KVM_EXIT_IOAPIC_EOI 26 #define KVM_EXIT_HYPERV 27 #define KVM_EXIT_ARM_NISV 28 -#define KVM_EXIT_X86_RDMSR 29 -#define KVM_EXIT_X86_WRMSR 30 -#define KVM_EXIT_DIRTY_RING_FULL 31 -#define KVM_EXIT_AP_RESET_HOLD 32 -#define KVM_EXIT_X86_BUS_LOCK 33 -#define KVM_EXIT_XEN 34 /* For KVM_EXIT_INTERNAL_ERROR */ /* Emulate instruction failed. */ @@ -309,7 +277,6 @@ struct kvm_run { /* KVM_EXIT_FAIL_ENTRY */ struct { __u64 hardware_entry_failure_reason; - __u32 cpu; } fail_entry; /* KVM_EXIT_EXCEPTION */ struct { @@ -433,19 +400,6 @@ struct kvm_run { __u64 esr_iss; __u64 fault_ipa; } arm_nisv; - /* KVM_EXIT_X86_RDMSR / KVM_EXIT_X86_WRMSR */ - struct { - __u8 error; /* user -> kernel */ - __u8 pad[7]; -#define KVM_MSR_EXIT_REASON_INVAL (1 << 0) -#define KVM_MSR_EXIT_REASON_UNKNOWN (1 << 1) -#define KVM_MSR_EXIT_REASON_FILTER (1 << 2) - __u32 reason; /* kernel -> user */ - __u32 index; /* kernel -> user */ - __u64 data; /* kernel <-> user */ - } msr; - /* KVM_EXIT_XEN */ - struct kvm_xen_exit xen; /* Fix the size of the union. */ char padding[256]; }; @@ -520,17 +474,12 @@ struct kvm_s390_mem_op { __u32 size; /* amount of bytes */ __u32 op; /* type of operation */ __u64 buf; /* buffer in userspace */ - union { - __u8 ar; /* the access register number */ - __u32 sida_offset; /* offset into the sida */ - __u8 reserved[32]; /* should be set to 0 */ - }; + __u8 ar; /* the access register number */ + __u8 reserved[31]; /* should be set to 0 */ }; /* types for kvm_s390_mem_op->op */ #define KVM_S390_MEMOP_LOGICAL_READ 0 #define KVM_S390_MEMOP_LOGICAL_WRITE 1 -#define KVM_S390_MEMOP_SIDA_READ 2 -#define KVM_S390_MEMOP_SIDA_WRITE 3 /* flags for kvm_s390_mem_op->flags */ #define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0) #define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1) @@ -592,7 +541,6 @@ struct kvm_vapic_addr { #define KVM_MP_STATE_CHECK_STOP 6 #define KVM_MP_STATE_OPERATING 7 #define KVM_MP_STATE_LOAD 8 -#define KVM_MP_STATE_AP_RESET_HOLD 9 struct kvm_mp_state { __u32 mp_state; @@ -824,10 +772,9 @@ struct kvm_ppc_resize_hpt { #define KVM_VM_PPC_HV 1 #define KVM_VM_PPC_PR 2 -/* on MIPS, 0 indicates auto, 1 forces VZ ASE, 2 forces trap & emulate */ -#define KVM_VM_MIPS_AUTO 0 +/* on MIPS, 0 forces trap & emulate, 1 forces VZ ASE */ +#define KVM_VM_MIPS_TE 0 #define KVM_VM_MIPS_VZ 1 -#define KVM_VM_MIPS_TE 2 #define KVM_S390_SIE_PAGE_OFFSET 1 @@ -1062,22 +1009,6 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_PPC_GUEST_DEBUG_SSTEP 176 #define KVM_CAP_ARM_NISV_TO_USER 177 #define KVM_CAP_ARM_INJECT_EXT_DABT 178 -#define KVM_CAP_S390_VCPU_RESETS 179 -#define KVM_CAP_S390_PROTECTED 180 -#define KVM_CAP_PPC_SECURE_GUEST 181 -#define KVM_CAP_HALT_POLL 182 -#define KVM_CAP_ASYNC_PF_INT 183 -#define KVM_CAP_LAST_CPU 184 -#define KVM_CAP_SMALLER_MAXPHYADDR 185 -#define KVM_CAP_S390_DIAG318 186 -#define KVM_CAP_STEAL_TIME 187 -#define KVM_CAP_X86_USER_SPACE_MSR 188 -#define KVM_CAP_X86_MSR_FILTER 189 -#define KVM_CAP_ENFORCE_PV_FEATURE_CPUID 190 -#define KVM_CAP_SYS_HYPERV_CPUID 191 -#define KVM_CAP_DIRTY_LOG_RING 192 -#define KVM_CAP_X86_BUS_LOCK_EXIT 193 -#define KVM_CAP_PPC_DAWR1 194 #ifdef KVM_CAP_IRQ_ROUTING @@ -1151,11 +1082,6 @@ struct kvm_x86_mce { #endif #ifdef KVM_CAP_XEN_HVM -#define KVM_XEN_HVM_CONFIG_HYPERCALL_MSR (1 << 0) -#define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1) -#define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2) -#define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3) - struct kvm_xen_hvm_config { __u32 flags; __u32 msr; @@ -1173,7 +1099,7 @@ struct kvm_xen_hvm_config { * * KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies * the irqfd to operate in resampling mode for level triggered interrupt - * emulation. See Documentation/virt/kvm/api.rst. + * emulation. See Documentation/virt/kvm/api.txt. */ #define KVM_IRQFD_FLAG_RESAMPLE (1 << 1) @@ -1541,106 +1467,12 @@ struct kvm_enc_region { /* Available with KVM_CAP_MANUAL_DIRTY_LOG_PROTECT_2 */ #define KVM_CLEAR_DIRTY_LOG _IOWR(KVMIO, 0xc0, struct kvm_clear_dirty_log) -/* Available with KVM_CAP_HYPERV_CPUID (vcpu) / KVM_CAP_SYS_HYPERV_CPUID (system) */ +/* Available with KVM_CAP_HYPERV_CPUID */ #define KVM_GET_SUPPORTED_HV_CPUID _IOWR(KVMIO, 0xc1, struct kvm_cpuid2) /* Available with KVM_CAP_ARM_SVE */ #define KVM_ARM_VCPU_FINALIZE _IOW(KVMIO, 0xc2, int) -/* Available with KVM_CAP_S390_VCPU_RESETS */ -#define KVM_S390_NORMAL_RESET _IO(KVMIO, 0xc3) -#define KVM_S390_CLEAR_RESET _IO(KVMIO, 0xc4) - -struct kvm_s390_pv_sec_parm { - __u64 origin; - __u64 length; -}; - -struct kvm_s390_pv_unp { - __u64 addr; - __u64 size; - __u64 tweak; -}; - -enum pv_cmd_id { - KVM_PV_ENABLE, - KVM_PV_DISABLE, - KVM_PV_SET_SEC_PARMS, - KVM_PV_UNPACK, - KVM_PV_VERIFY, - KVM_PV_PREP_RESET, - KVM_PV_UNSHARE_ALL, -}; - -struct kvm_pv_cmd { - __u32 cmd; /* Command to be executed */ - __u16 rc; /* Ultravisor return code */ - __u16 rrc; /* Ultravisor return reason code */ - __u64 data; /* Data or address */ - __u32 flags; /* flags for future extensions. Must be 0 for now */ - __u32 reserved[3]; -}; - -/* Available with KVM_CAP_S390_PROTECTED */ -#define KVM_S390_PV_COMMAND _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd) - -/* Available with KVM_CAP_X86_MSR_FILTER */ -#define KVM_X86_SET_MSR_FILTER _IOW(KVMIO, 0xc6, struct kvm_msr_filter) - -/* Available with KVM_CAP_DIRTY_LOG_RING */ -#define KVM_RESET_DIRTY_RINGS _IO(KVMIO, 0xc7) - -/* Per-VM Xen attributes */ -#define KVM_XEN_HVM_GET_ATTR _IOWR(KVMIO, 0xc8, struct kvm_xen_hvm_attr) -#define KVM_XEN_HVM_SET_ATTR _IOW(KVMIO, 0xc9, struct kvm_xen_hvm_attr) - -struct kvm_xen_hvm_attr { - __u16 type; - __u16 pad[3]; - union { - __u8 long_mode; - __u8 vector; - struct { - __u64 gfn; - } shared_info; - __u64 pad[8]; - } u; -}; - -/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_SHARED_INFO */ -#define KVM_XEN_ATTR_TYPE_LONG_MODE 0x0 -#define KVM_XEN_ATTR_TYPE_SHARED_INFO 0x1 -#define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2 - -/* Per-vCPU Xen attributes */ -#define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr) -#define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr) - -struct kvm_xen_vcpu_attr { - __u16 type; - __u16 pad[3]; - union { - __u64 gpa; - __u64 pad[8]; - struct { - __u64 state; - __u64 state_entry_time; - __u64 time_running; - __u64 time_runnable; - __u64 time_blocked; - __u64 time_offline; - } runstate; - } u; -}; - -/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_SHARED_INFO */ -#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO 0x0 -#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO 0x1 -#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR 0x2 -#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT 0x3 -#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA 0x4 -#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST 0x5 - /* Secure Encrypted Virtualization command */ enum sev_cmd_id { /* Guest initialization commands */ @@ -1669,8 +1501,6 @@ enum sev_cmd_id { KVM_SEV_DBG_ENCRYPT, /* Guest certificates commands */ KVM_SEV_CERT_EXPORT, - /* Attestation report */ - KVM_SEV_GET_ATTESTATION_REPORT, KVM_SEV_NR_MAX, }; @@ -1723,12 +1553,6 @@ struct kvm_sev_dbg { __u32 len; }; -struct kvm_sev_attestation_report { - __u8 mnonce[16]; - __u64 uaddr; - __u32 len; -}; - #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2) @@ -1799,58 +1623,4 @@ struct kvm_hyperv_eventfd { #define KVM_HYPERV_CONN_ID_MASK 0x00ffffff #define KVM_HYPERV_EVENTFD_DEASSIGN (1 << 0) -#define KVM_DIRTY_LOG_MANUAL_PROTECT_ENABLE (1 << 0) -#define KVM_DIRTY_LOG_INITIALLY_SET (1 << 1) - -/* - * Arch needs to define the macro after implementing the dirty ring - * feature. KVM_DIRTY_LOG_PAGE_OFFSET should be defined as the - * starting page offset of the dirty ring structures. - */ -#ifndef KVM_DIRTY_LOG_PAGE_OFFSET -#define KVM_DIRTY_LOG_PAGE_OFFSET 0 -#endif - -/* - * KVM dirty GFN flags, defined as: - * - * |---------------+---------------+--------------| - * | bit 1 (reset) | bit 0 (dirty) | Status | - * |---------------+---------------+--------------| - * | 0 | 0 | Invalid GFN | - * | 0 | 1 | Dirty GFN | - * | 1 | X | GFN to reset | - * |---------------+---------------+--------------| - * - * Lifecycle of a dirty GFN goes like: - * - * dirtied harvested reset - * 00 -----------> 01 -------------> 1X -------+ - * ^ | - * | | - * +------------------------------------------+ - * - * The userspace program is only responsible for the 01->1X state - * conversion after harvesting an entry. Also, it must not skip any - * dirty bits, so that dirty bits are always harvested in sequence. - */ -#define KVM_DIRTY_GFN_F_DIRTY BIT(0) -#define KVM_DIRTY_GFN_F_RESET BIT(1) -#define KVM_DIRTY_GFN_F_MASK 0x3 - -/* - * KVM dirty rings should be mapped at KVM_DIRTY_LOG_PAGE_OFFSET of - * per-vcpu mmaped regions as an array of struct kvm_dirty_gfn. The - * size of the gfn buffer is decided by the first argument when - * enabling KVM_CAP_DIRTY_LOG_RING. - */ -struct kvm_dirty_gfn { - __u32 flags; - __u32 slot; - __u64 offset; -}; - -#define KVM_BUS_LOCK_DETECTION_OFF (1 << 0) -#define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1) - #endif /* __LINUX_KVM_H */ diff --git a/original/uapi/linux/l2tp.h b/original/uapi/linux/l2tp.h index bab8c97..61158f5 100644 --- a/original/uapi/linux/l2tp.h +++ b/original/uapi/linux/l2tp.h @@ -108,7 +108,7 @@ enum { L2TP_ATTR_VLAN_ID, /* u16 (not used) */ L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */ L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */ - L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags (not used) */ + L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */ L2TP_ATTR_RECV_SEQ, /* u8 */ L2TP_ATTR_SEND_SEQ, /* u8 */ L2TP_ATTR_LNS_MODE, /* u8 */ @@ -144,8 +144,6 @@ enum { L2TP_ATTR_RX_OOS_PACKETS, /* u64 */ L2TP_ATTR_RX_ERRORS, /* u64 */ L2TP_ATTR_STATS_PAD, - L2TP_ATTR_RX_COOKIE_DISCARDS, /* u64 */ - L2TP_ATTR_RX_INVALID, /* u64 */ __L2TP_ATTR_STATS_MAX, }; @@ -179,9 +177,7 @@ enum l2tp_seqmode { }; /** - * enum l2tp_debug_flags - debug message categories for L2TP tunnels/sessions. - * - * Unused. + * enum l2tp_debug_flags - debug message categories for L2TP tunnels/sessions * * @L2TP_MSG_DEBUG: verbose debug (if compiled in) * @L2TP_MSG_CONTROL: userspace - kernel interface diff --git a/original/uapi/linux/lightnvm.h b/original/uapi/linux/lightnvm.h index ead2e72..f9a1be7 100644 --- a/original/uapi/linux/lightnvm.h +++ b/original/uapi/linux/lightnvm.h @@ -21,7 +21,7 @@ #define _UAPI_LINUX_LIGHTNVM_H #ifdef __KERNEL__ -#include <linux/const.h> +#include <linux/kernel.h> #include <linux/ioctl.h> #else /* __KERNEL__ */ #include <stdio.h> diff --git a/original/uapi/linux/lirc.h b/original/uapi/linux/lirc.h index c45a4ea..f99d9dc 100644 --- a/original/uapi/linux/lirc.h +++ b/original/uapi/linux/lirc.h @@ -139,7 +139,7 @@ */ #define LIRC_GET_REC_TIMEOUT _IOR('i', 0x00000024, __u32) -/** +/* * struct lirc_scancode - decoded scancode with protocol for use with * LIRC_MODE_SCANCODE * @@ -196,7 +196,6 @@ struct lirc_scancode { * @RC_PROTO_RCMM24: RC-MM protocol 24 bits * @RC_PROTO_RCMM32: RC-MM protocol 32 bits * @RC_PROTO_XBOX_DVD: Xbox DVD Movie Playback Kit protocol - * @RC_PROTO_MAX: Maximum value of enum rc_proto */ enum rc_proto { RC_PROTO_UNKNOWN = 0, @@ -227,7 +226,6 @@ enum rc_proto { RC_PROTO_RCMM24 = 25, RC_PROTO_RCMM32 = 26, RC_PROTO_XBOX_DVD = 27, - RC_PROTO_MAX = RC_PROTO_XBOX_DVD, }; #endif diff --git a/original/uapi/linux/loop.h b/original/uapi/linux/loop.h index 24a1c45..080a8df 100644 --- a/original/uapi/linux/loop.h +++ b/original/uapi/linux/loop.h @@ -25,16 +25,6 @@ enum { LO_FLAGS_DIRECT_IO = 16, }; -/* LO_FLAGS that can be set using LOOP_SET_STATUS(64) */ -#define LOOP_SET_STATUS_SETTABLE_FLAGS (LO_FLAGS_AUTOCLEAR | LO_FLAGS_PARTSCAN) - -/* LO_FLAGS that can be cleared using LOOP_SET_STATUS(64) */ -#define LOOP_SET_STATUS_CLEARABLE_FLAGS (LO_FLAGS_AUTOCLEAR) - -/* LO_FLAGS that can be set using LOOP_CONFIGURE */ -#define LOOP_CONFIGURE_SETTABLE_FLAGS (LO_FLAGS_READ_ONLY | LO_FLAGS_AUTOCLEAR \ - | LO_FLAGS_PARTSCAN | LO_FLAGS_DIRECT_IO) - #include <asm/posix_types.h> /* for __kernel_old_dev_t */ #include <linux/types.h> /* for __u64 */ @@ -47,7 +37,7 @@ struct loop_info { int lo_offset; int lo_encrypt_type; int lo_encrypt_key_size; /* ioctl w/o */ - int lo_flags; + int lo_flags; /* ioctl r/o */ char lo_name[LO_NAME_SIZE]; unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ unsigned long lo_init[2]; @@ -63,29 +53,13 @@ struct loop_info64 { __u32 lo_number; /* ioctl r/o */ __u32 lo_encrypt_type; __u32 lo_encrypt_key_size; /* ioctl w/o */ - __u32 lo_flags; + __u32 lo_flags; /* ioctl r/o */ __u8 lo_file_name[LO_NAME_SIZE]; __u8 lo_crypt_name[LO_NAME_SIZE]; __u8 lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */ __u64 lo_init[2]; }; -/** - * struct loop_config - Complete configuration for a loop device. - * @fd: fd of the file to be used as a backing file for the loop device. - * @block_size: block size to use; ignored if 0. - * @info: struct loop_info64 to configure the loop device with. - * - * This structure is used with the LOOP_CONFIGURE ioctl, and can be used to - * atomically setup and configure all loop device parameters at once. - */ -struct loop_config { - __u32 fd; - __u32 block_size; - struct loop_info64 info; - __u64 __reserved[8]; -}; - /* * Loop filter types */ @@ -116,7 +90,6 @@ struct loop_config { #define LOOP_SET_CAPACITY 0x4C07 #define LOOP_SET_DIRECT_IO 0x4C08 #define LOOP_SET_BLOCK_SIZE 0x4C09 -#define LOOP_CONFIGURE 0x4C0A /* /dev/loop-control interface */ #define LOOP_CTL_ADD 0x4C80 diff --git a/original/uapi/linux/lwtunnel.h b/original/uapi/linux/lwtunnel.h index 568a430..f6035f7 100644 --- a/original/uapi/linux/lwtunnel.h +++ b/original/uapi/linux/lwtunnel.h @@ -13,7 +13,6 @@ enum lwtunnel_encap_types { LWTUNNEL_ENCAP_SEG6, LWTUNNEL_ENCAP_BPF, LWTUNNEL_ENCAP_SEG6_LOCAL, - LWTUNNEL_ENCAP_RPL, __LWTUNNEL_ENCAP_MAX, }; diff --git a/original/uapi/linux/magic.h b/original/uapi/linux/magic.h index f3956fc..b1fbe15 100644 --- a/original/uapi/linux/magic.h +++ b/original/uapi/linux/magic.h @@ -58,6 +58,8 @@ #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs" +#define SDCARDFS_SUPER_MAGIC 0x5dca2df5 + #define SMB_SUPER_MAGIC 0x517B #define CGROUP_SUPER_MAGIC 0x27e0eb #define CGROUP2_SUPER_MAGIC 0x63677270 @@ -87,14 +89,12 @@ #define NSFS_MAGIC 0x6e736673 #define BPF_FS_MAGIC 0xcafe4a11 #define AAFS_MAGIC 0x5a3c69f0 -#define ZONEFS_MAGIC 0x5a4f4653 /* Since UDF 2.01 is ISO 13346 based... */ #define UDF_SUPER_MAGIC 0x15013346 #define BALLOON_KVM_MAGIC 0x13661366 #define ZSMALLOC_MAGIC 0x58295829 #define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */ -#define DEVMEM_MAGIC 0x454d444d /* "DMEM" */ #define Z3FOLD_MAGIC 0x33 #define PPC_CMM_MAGIC 0xc7571590 diff --git a/original/uapi/linux/map_to_7segment.h b/original/uapi/linux/map_to_7segment.h index 8b02088..f9ed181 100644 --- a/original/uapi/linux/map_to_7segment.h +++ b/original/uapi/linux/map_to_7segment.h @@ -24,7 +24,7 @@ * of (ASCII) characters to a 7-segments notation. * * The 7 segment's wikipedia notation below is used as standard. - * See: https://en.wikipedia.org/wiki/Seven_segment_display + * See: http://en.wikipedia.org/wiki/Seven_segment_display * * Notation: +-a-+ * f b @@ -45,22 +45,17 @@ * In device drivers it is recommended, if required, to make the char map * accessible via the sysfs interface using the following scheme: * - * static ssize_t map_seg7_show(struct device *dev, - * struct device_attribute *attr, char *buf) - * { + * static ssize_t show_map(struct device *dev, char *buf) { * memcpy(buf, &map_seg7, sizeof(map_seg7)); * return sizeof(map_seg7); * } - * static ssize_t map_seg7_store(struct device *dev, - * struct device_attribute *attr, const char *buf, - * size_t cnt) - * { + * static ssize_t store_map(struct device *dev, const char *buf, size_t cnt) { * if(cnt != sizeof(map_seg7)) * return -EINVAL; * memcpy(&map_seg7, buf, cnt); * return cnt; * } - * static DEVICE_ATTR_RW(map_seg7); + * static DEVICE_ATTR(map_seg7, PERMS_RW, show_map, store_map); * * History: * 2005-05-31 RFC linux-kernel@vger.kernel.org diff --git a/original/uapi/linux/mdio.h b/original/uapi/linux/mdio.h index 3f302e2..4bcb41c 100644 --- a/original/uapi/linux/mdio.h +++ b/original/uapi/linux/mdio.h @@ -324,30 +324,4 @@ static inline __u16 mdio_phy_id_c45(int prtad, int devad) return MDIO_PHY_ID_C45 | (prtad << 5) | devad; } -/* UsxgmiiChannelInfo[15:0] for USXGMII in-band auto-negotiation.*/ -#define MDIO_USXGMII_EEE_CLK_STP 0x0080 /* EEE clock stop supported */ -#define MDIO_USXGMII_EEE 0x0100 /* EEE supported */ -#define MDIO_USXGMII_SPD_MASK 0x0e00 /* USXGMII speed mask */ -#define MDIO_USXGMII_FULL_DUPLEX 0x1000 /* USXGMII full duplex */ -#define MDIO_USXGMII_DPX_SPD_MASK 0x1e00 /* USXGMII duplex and speed bits */ -#define MDIO_USXGMII_10 0x0000 /* 10Mbps */ -#define MDIO_USXGMII_10HALF 0x0000 /* 10Mbps half-duplex */ -#define MDIO_USXGMII_10FULL 0x1000 /* 10Mbps full-duplex */ -#define MDIO_USXGMII_100 0x0200 /* 100Mbps */ -#define MDIO_USXGMII_100HALF 0x0200 /* 100Mbps half-duplex */ -#define MDIO_USXGMII_100FULL 0x1200 /* 100Mbps full-duplex */ -#define MDIO_USXGMII_1000 0x0400 /* 1000Mbps */ -#define MDIO_USXGMII_1000HALF 0x0400 /* 1000Mbps half-duplex */ -#define MDIO_USXGMII_1000FULL 0x1400 /* 1000Mbps full-duplex */ -#define MDIO_USXGMII_10G 0x0600 /* 10Gbps */ -#define MDIO_USXGMII_10GHALF 0x0600 /* 10Gbps half-duplex */ -#define MDIO_USXGMII_10GFULL 0x1600 /* 10Gbps full-duplex */ -#define MDIO_USXGMII_2500 0x0800 /* 2500Mbps */ -#define MDIO_USXGMII_2500HALF 0x0800 /* 2500Mbps half-duplex */ -#define MDIO_USXGMII_2500FULL 0x1800 /* 2500Mbps full-duplex */ -#define MDIO_USXGMII_5000 0x0a00 /* 5000Mbps */ -#define MDIO_USXGMII_5000HALF 0x0a00 /* 5000Mbps half-duplex */ -#define MDIO_USXGMII_5000FULL 0x1a00 /* 5000Mbps full-duplex */ -#define MDIO_USXGMII_LINK 0x8000 /* PHY link with copper-side partner */ - #endif /* _UAPI__LINUX_MDIO_H__ */ diff --git a/original/uapi/linux/media-bus-format.h b/original/uapi/linux/media-bus-format.h index 0dfc11e..16c1fa2 100644 --- a/original/uapi/linux/media-bus-format.h +++ b/original/uapi/linux/media-bus-format.h @@ -34,7 +34,7 @@ #define MEDIA_BUS_FMT_FIXED 0x0001 -/* RGB - next is 0x101e */ +/* RGB - next is 0x101d */ #define MEDIA_BUS_FMT_RGB444_1X12 0x1016 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE 0x1001 #define MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE 0x1002 @@ -56,7 +56,6 @@ #define MEDIA_BUS_FMT_RGB888_2X12_BE 0x100b #define MEDIA_BUS_FMT_RGB888_2X12_LE 0x100c #define MEDIA_BUS_FMT_RGB888_3X8 0x101c -#define MEDIA_BUS_FMT_RGB888_3X8_DELTA 0x101d #define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG 0x1011 #define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA 0x1012 #define MEDIA_BUS_FMT_ARGB8888_1X32 0x100d @@ -65,7 +64,7 @@ #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019 #define MEDIA_BUS_FMT_RGB161616_1X48 0x101a -/* YUV (including grey) - next is 0x202e */ +/* YUV (including grey) - next is 0x202d */ #define MEDIA_BUS_FMT_Y8_1X8 0x2001 #define MEDIA_BUS_FMT_UV8_1X8 0x2015 #define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002 @@ -87,7 +86,6 @@ #define MEDIA_BUS_FMT_VYUY12_2X12 0x201d #define MEDIA_BUS_FMT_YUYV12_2X12 0x201e #define MEDIA_BUS_FMT_YVYU12_2X12 0x201f -#define MEDIA_BUS_FMT_Y14_1X14 0x202d #define MEDIA_BUS_FMT_UYVY8_1X16 0x200f #define MEDIA_BUS_FMT_VYUY8_1X16 0x2010 #define MEDIA_BUS_FMT_YUYV8_1X16 0x2011 @@ -157,12 +155,4 @@ /* HSV - next is 0x6002 */ #define MEDIA_BUS_FMT_AHSV8888_1X32 0x6001 -/* - * This format should be used when the same driver handles - * both sides of the link and the bus format is a fixed - * metadata format that is not configurable from userspace. - * Width and height will be set to 0 for this format. - */ -#define MEDIA_BUS_FMT_METADATA_FIXED 0x7001 - #endif /* __LINUX_MEDIA_BUS_FORMAT_H */ diff --git a/original/uapi/linux/media.h b/original/uapi/linux/media.h index 200fa84..383ac7b 100644 --- a/original/uapi/linux/media.h +++ b/original/uapi/linux/media.h @@ -127,7 +127,6 @@ struct media_device_info { #define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006) #define MEDIA_ENT_F_PROC_VIDEO_ENCODER (MEDIA_ENT_F_BASE + 0x4007) #define MEDIA_ENT_F_PROC_VIDEO_DECODER (MEDIA_ENT_F_BASE + 0x4008) -#define MEDIA_ENT_F_PROC_VIDEO_ISP (MEDIA_ENT_F_BASE + 0x4009) /* * Switch and bridge entity functions diff --git a/original/uapi/linux/mei.h b/original/uapi/linux/mei.h index 4f36384..c6aec86 100644 --- a/original/uapi/linux/mei.h +++ b/original/uapi/linux/mei.h @@ -66,53 +66,4 @@ struct mei_connect_client_data { */ #define IOCTL_MEI_NOTIFY_GET _IOR('H', 0x03, __u32) -/** - * struct mei_connect_client_vtag - mei client information struct with vtag - * - * @in_client_uuid: UUID of client to connect - * @vtag: virtual tag - * @reserved: reserved for future use - */ -struct mei_connect_client_vtag { - uuid_le in_client_uuid; - __u8 vtag; - __u8 reserved[3]; -}; - -/** - * struct mei_connect_client_data_vtag - IOCTL connect data union - * - * @connect: input connect data - * @out_client_properties: output client data - */ -struct mei_connect_client_data_vtag { - union { - struct mei_connect_client_vtag connect; - struct mei_client out_client_properties; - }; -}; - -/** - * DOC: - * This IOCTL is used to associate the current file descriptor with a - * FW Client (given by UUID), and virtual tag (vtag). - * The IOCTL opens a communication channel between a host client and - * a FW client on a tagged channel. From this point on, every read - * and write will communicate with the associated FW client with - * on the tagged channel. - * Upone close() the communication is terminated. - * - * The IOCTL argument is a struct with a union that contains - * the input parameter and the output parameter for this IOCTL. - * - * The input parameter is UUID of the FW Client, a vtag [0,255] - * The output parameter is the properties of the FW client - * (FW protocool version and max message size). - * - * Clients that do not support tagged connection - * will respond with -EOPNOTSUPP. - */ -#define IOCTL_MEI_CONNECT_CLIENT_VTAG \ - _IOWR('H', 0x04, struct mei_connect_client_data_vtag) - #endif /* _LINUX_MEI_H */ diff --git a/original/uapi/linux/membarrier.h b/original/uapi/linux/membarrier.h index 7376058..5891d76 100644 --- a/original/uapi/linux/membarrier.h +++ b/original/uapi/linux/membarrier.h @@ -114,26 +114,6 @@ * If this command is not implemented by an * architecture, -EINVAL is returned. * Returns 0 on success. - * @MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ: - * Ensure the caller thread, upon return from - * system call, that all its running thread - * siblings have any currently running rseq - * critical sections restarted if @flags - * parameter is 0; if @flags parameter is - * MEMBARRIER_CMD_FLAG_CPU, - * then this operation is performed only - * on CPU indicated by @cpu_id. If this command is - * not implemented by an architecture, -EINVAL - * is returned. A process needs to register its - * intent to use the private expedited rseq - * command prior to using it, otherwise - * this command returns -EPERM. - * @MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ: - * Register the process intent to use - * MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ. - * If this command is not implemented by an - * architecture, -EINVAL is returned. - * Returns 0 on success. * @MEMBARRIER_CMD_SHARED: * Alias to MEMBARRIER_CMD_GLOBAL. Provided for * header backward compatibility. @@ -151,15 +131,9 @@ enum membarrier_cmd { MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = (1 << 4), MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 5), MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = (1 << 6), - MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = (1 << 7), - MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = (1 << 8), /* Alias for header backward compatibility. */ MEMBARRIER_CMD_SHARED = MEMBARRIER_CMD_GLOBAL, }; -enum membarrier_cmd_flag { - MEMBARRIER_CMD_FLAG_CPU = (1 << 0), -}; - #endif /* _UAPI_LINUX_MEMBARRIER_H */ diff --git a/original/uapi/linux/mempolicy.h b/original/uapi/linux/mempolicy.h index 8948467..3354774 100644 --- a/original/uapi/linux/mempolicy.h +++ b/original/uapi/linux/mempolicy.h @@ -28,14 +28,12 @@ enum { /* Flags for set_mempolicy */ #define MPOL_F_STATIC_NODES (1 << 15) #define MPOL_F_RELATIVE_NODES (1 << 14) -#define MPOL_F_NUMA_BALANCING (1 << 13) /* Optimize with NUMA balancing if possible */ /* * MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to * either set_mempolicy() or mbind(). */ -#define MPOL_MODE_FLAGS \ - (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES | MPOL_F_NUMA_BALANCING) +#define MPOL_MODE_FLAGS (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES) /* Flags for get_mempolicy */ #define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */ diff --git a/original/uapi/linux/mic_common.h b/original/uapi/linux/mic_common.h new file mode 100644 index 0000000..504e523 --- /dev/null +++ b/original/uapi/linux/mic_common.h @@ -0,0 +1,235 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Intel MIC Platform Software Stack (MPSS) + * + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Intel MIC driver. + * + */ +#ifndef __MIC_COMMON_H_ +#define __MIC_COMMON_H_ + +#include <linux/virtio_ring.h> + +#define __mic_align(a, x) (((a) + (x) - 1) & ~((x) - 1)) + +/** + * struct mic_device_desc: Virtio device information shared between the + * virtio driver and userspace backend + * + * @type: Device type: console/network/disk etc. Type 0/-1 terminates. + * @num_vq: Number of virtqueues. + * @feature_len: Number of bytes of feature bits. Multiply by 2: one for + host features and one for guest acknowledgements. + * @config_len: Number of bytes of the config array after virtqueues. + * @status: A status byte, written by the Guest. + * @config: Start of the following variable length config. + */ +struct mic_device_desc { + __s8 type; + __u8 num_vq; + __u8 feature_len; + __u8 config_len; + __u8 status; + __le64 config[0]; +} __attribute__ ((aligned(8))); + +/** + * struct mic_device_ctrl: Per virtio device information in the device page + * used internally by the host and card side drivers. + * + * @vdev: Used for storing MIC vdev information by the guest. + * @config_change: Set to 1 by host when a config change is requested. + * @vdev_reset: Set to 1 by guest to indicate virtio device has been reset. + * @guest_ack: Set to 1 by guest to ack a command. + * @host_ack: Set to 1 by host to ack a command. + * @used_address_updated: Set to 1 by guest when the used address should be + * updated. + * @c2h_vdev_db: The doorbell number to be used by guest. Set by host. + * @h2c_vdev_db: The doorbell number to be used by host. Set by guest. + */ +struct mic_device_ctrl { + __le64 vdev; + __u8 config_change; + __u8 vdev_reset; + __u8 guest_ack; + __u8 host_ack; + __u8 used_address_updated; + __s8 c2h_vdev_db; + __s8 h2c_vdev_db; +} __attribute__ ((aligned(8))); + +/** + * struct mic_bootparam: Virtio device independent information in device page + * + * @magic: A magic value used by the card to ensure it can see the host + * @h2c_config_db: Host to Card Virtio config doorbell set by card + * @node_id: Unique id of the node + * @h2c_scif_db - Host to card SCIF doorbell set by card + * @c2h_scif_db - Card to host SCIF doorbell set by host + * @scif_host_dma_addr - SCIF host queue pair DMA address + * @scif_card_dma_addr - SCIF card queue pair DMA address + */ +struct mic_bootparam { + __le32 magic; + __s8 h2c_config_db; + __u8 node_id; + __u8 h2c_scif_db; + __u8 c2h_scif_db; + __u64 scif_host_dma_addr; + __u64 scif_card_dma_addr; +} __attribute__ ((aligned(8))); + +/** + * struct mic_device_page: High level representation of the device page + * + * @bootparam: The bootparam structure is used for sharing information and + * status updates between MIC host and card drivers. + * @desc: Array of MIC virtio device descriptors. + */ +struct mic_device_page { + struct mic_bootparam bootparam; + struct mic_device_desc desc[0]; +}; +/** + * struct mic_vqconfig: This is how we expect the device configuration field + * for a virtqueue to be laid out in config space. + * + * @address: Guest/MIC physical address of the virtio ring + * (avail and desc rings) + * @used_address: Guest/MIC physical address of the used ring + * @num: The number of entries in the virtio_ring + */ +struct mic_vqconfig { + __le64 address; + __le64 used_address; + __le16 num; +} __attribute__ ((aligned(8))); + +/* + * The alignment to use between consumer and producer parts of vring. + * This is pagesize for historical reasons. + */ +#define MIC_VIRTIO_RING_ALIGN 4096 + +#define MIC_MAX_VRINGS 4 +#define MIC_VRING_ENTRIES 128 + +/* + * Max vring entries (power of 2) to ensure desc and avail rings + * fit in a single page + */ +#define MIC_MAX_VRING_ENTRIES 128 + +/** + * Max size of the desc block in bytes: includes: + * - struct mic_device_desc + * - struct mic_vqconfig (num_vq of these) + * - host and guest features + * - virtio device config space + */ +#define MIC_MAX_DESC_BLK_SIZE 256 + +/** + * struct _mic_vring_info - Host vring info exposed to userspace backend + * for the avail index and magic for the card. + * + * @avail_idx: host avail idx + * @magic: A magic debug cookie. + */ +struct _mic_vring_info { + __u16 avail_idx; + __le32 magic; +}; + +/** + * struct mic_vring - Vring information. + * + * @vr: The virtio ring. + * @info: Host vring information exposed to the userspace backend for the + * avail index and magic for the card. + * @va: The va for the buffer allocated for vr and info. + * @len: The length of the buffer required for allocating vr and info. + */ +struct mic_vring { + struct vring vr; + struct _mic_vring_info *info; + void *va; + int len; +}; + +#define mic_aligned_desc_size(d) __mic_align(mic_desc_size(d), 8) + +#ifndef INTEL_MIC_CARD +static inline unsigned mic_desc_size(const struct mic_device_desc *desc) +{ + return sizeof(*desc) + desc->num_vq * sizeof(struct mic_vqconfig) + + desc->feature_len * 2 + desc->config_len; +} + +static inline struct mic_vqconfig * +mic_vq_config(const struct mic_device_desc *desc) +{ + return (struct mic_vqconfig *)(desc + 1); +} + +static inline __u8 *mic_vq_features(const struct mic_device_desc *desc) +{ + return (__u8 *)(mic_vq_config(desc) + desc->num_vq); +} + +static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc) +{ + return mic_vq_features(desc) + desc->feature_len * 2; +} +static inline unsigned mic_total_desc_size(struct mic_device_desc *desc) +{ + return mic_aligned_desc_size(desc) + sizeof(struct mic_device_ctrl); +} +#endif + +/* Device page size */ +#define MIC_DP_SIZE 4096 + +#define MIC_MAGIC 0xc0ffee00 + +/** + * enum mic_states - MIC states. + */ +enum mic_states { + MIC_READY = 0, + MIC_BOOTING, + MIC_ONLINE, + MIC_SHUTTING_DOWN, + MIC_RESETTING, + MIC_RESET_FAILED, + MIC_LAST +}; + +/** + * enum mic_status - MIC status reported by card after + * a host or card initiated shutdown or a card crash. + */ +enum mic_status { + MIC_NOP = 0, + MIC_CRASHED, + MIC_HALTED, + MIC_POWER_OFF, + MIC_RESTART, + MIC_STATUS_LAST +}; + +#endif diff --git a/original/uapi/linux/mic_ioctl.h b/original/uapi/linux/mic_ioctl.h new file mode 100644 index 0000000..687b9cd --- /dev/null +++ b/original/uapi/linux/mic_ioctl.h @@ -0,0 +1,77 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Intel MIC Platform Software Stack (MPSS) + * + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Intel MIC Host driver. + * + */ +#ifndef _MIC_IOCTL_H_ +#define _MIC_IOCTL_H_ + +#include <linux/types.h> + +/* + * mic_copy - MIC virtio descriptor copy. + * + * @iov: An array of IOVEC structures containing user space buffers. + * @iovcnt: Number of IOVEC structures in iov. + * @vr_idx: The vring index. + * @update_used: A non zero value results in used index being updated. + * @out_len: The aggregate of the total length written to or read from + * the virtio device. + */ +struct mic_copy_desc { +#ifdef __KERNEL__ + struct iovec __user *iov; +#else + struct iovec *iov; +#endif + __u32 iovcnt; + __u8 vr_idx; + __u8 update_used; + __u32 out_len; +}; + +/* + * Add a new virtio device + * The (struct mic_device_desc *) pointer points to a device page entry + * for the virtio device consisting of: + * - struct mic_device_desc + * - struct mic_vqconfig (num_vq of these) + * - host and guest features + * - virtio device config space + * The total size referenced by the pointer should equal the size returned + * by desc_size() in mic_common.h + */ +#define MIC_VIRTIO_ADD_DEVICE _IOWR('s', 1, struct mic_device_desc *) + +/* + * Copy the number of entries in the iovec and update the used index + * if requested by the user. + */ +#define MIC_VIRTIO_COPY_DESC _IOWR('s', 2, struct mic_copy_desc *) + +/* + * Notify virtio device of a config change + * The (__u8 *) pointer points to config space values for the device + * as they should be written into the device page. The total size + * referenced by the pointer should equal the config_len field of struct + * mic_device_desc. + */ +#define MIC_VIRTIO_CONFIG_CHANGE _IOWR('s', 5, __u8 *) + +#endif diff --git a/original/uapi/linux/mii.h b/original/uapi/linux/mii.h index 39f7c44..51b48e4 100644 --- a/original/uapi/linux/mii.h +++ b/original/uapi/linux/mii.h @@ -131,33 +131,14 @@ #define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */ #define NWAYTEST_RESV2 0xfe00 /* Unused... */ -/* MAC and PHY tx_config_Reg[15:0] for SGMII in-band auto-negotiation.*/ -#define ADVERTISE_SGMII 0x0001 /* MAC can do SGMII */ -#define LPA_SGMII 0x0001 /* PHY can do SGMII */ -#define LPA_SGMII_SPD_MASK 0x0c00 /* SGMII speed mask */ -#define LPA_SGMII_FULL_DUPLEX 0x1000 /* SGMII full duplex */ -#define LPA_SGMII_DPX_SPD_MASK 0x1C00 /* SGMII duplex and speed bits */ -#define LPA_SGMII_10 0x0000 /* 10Mbps */ -#define LPA_SGMII_10HALF 0x0000 /* Can do 10mbps half-duplex */ -#define LPA_SGMII_10FULL 0x1000 /* Can do 10mbps full-duplex */ -#define LPA_SGMII_100 0x0400 /* 100Mbps */ -#define LPA_SGMII_100HALF 0x0400 /* Can do 100mbps half-duplex */ -#define LPA_SGMII_100FULL 0x1400 /* Can do 100mbps full-duplex */ -#define LPA_SGMII_1000 0x0800 /* 1000Mbps */ -#define LPA_SGMII_1000HALF 0x0800 /* Can do 1000mbps half-duplex */ -#define LPA_SGMII_1000FULL 0x1800 /* Can do 1000mbps full-duplex */ -#define LPA_SGMII_LINK 0x8000 /* PHY link with copper-side partner */ - /* 1000BASE-T Control register */ #define ADVERTISE_1000FULL 0x0200 /* Advertise 1000BASE-T full duplex */ #define ADVERTISE_1000HALF 0x0100 /* Advertise 1000BASE-T half duplex */ -#define CTL1000_PREFER_MASTER 0x0400 /* prefer to operate as master */ #define CTL1000_AS_MASTER 0x0800 #define CTL1000_ENABLE_MASTER 0x1000 /* 1000BASE-T Status register */ #define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */ -#define LPA_1000MSRES 0x4000 /* Master/Slave resolution status */ #define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */ #define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */ #define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */ diff --git a/original/uapi/linux/misc/bcm_vk.h b/original/uapi/linux/misc/bcm_vk.h deleted file mode 100644 index ec28e0b..0000000 --- a/original/uapi/linux/misc/bcm_vk.h +++ /dev/null @@ -1,84 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Copyright 2018-2020 Broadcom. - */ - -#ifndef __UAPI_LINUX_MISC_BCM_VK_H -#define __UAPI_LINUX_MISC_BCM_VK_H - -#include <linux/ioctl.h> -#include <linux/types.h> - -#define BCM_VK_MAX_FILENAME 64 - -struct vk_image { - __u32 type; /* Type of image */ -#define VK_IMAGE_TYPE_BOOT1 1 /* 1st stage (load to SRAM) */ -#define VK_IMAGE_TYPE_BOOT2 2 /* 2nd stage (load to DDR) */ - __u8 filename[BCM_VK_MAX_FILENAME]; /* Filename of image */ -}; - -struct vk_reset { - __u32 arg1; - __u32 arg2; -}; - -#define VK_MAGIC 0x5e - -/* Load image to Valkyrie */ -#define VK_IOCTL_LOAD_IMAGE _IOW(VK_MAGIC, 0x2, struct vk_image) - -/* Send Reset to Valkyrie */ -#define VK_IOCTL_RESET _IOW(VK_MAGIC, 0x4, struct vk_reset) - -/* - * Firmware Status accessed directly via BAR space - */ -#define VK_BAR_FWSTS 0x41c -#define VK_BAR_COP_FWSTS 0x428 -/* VK_FWSTS definitions */ -#define VK_FWSTS_RELOCATION_ENTRY (1UL << 0) -#define VK_FWSTS_RELOCATION_EXIT (1UL << 1) -#define VK_FWSTS_INIT_START (1UL << 2) -#define VK_FWSTS_ARCH_INIT_DONE (1UL << 3) -#define VK_FWSTS_PRE_KNL1_INIT_DONE (1UL << 4) -#define VK_FWSTS_PRE_KNL2_INIT_DONE (1UL << 5) -#define VK_FWSTS_POST_KNL_INIT_DONE (1UL << 6) -#define VK_FWSTS_INIT_DONE (1UL << 7) -#define VK_FWSTS_APP_INIT_START (1UL << 8) -#define VK_FWSTS_APP_INIT_DONE (1UL << 9) -#define VK_FWSTS_MASK 0xffffffff -#define VK_FWSTS_READY (VK_FWSTS_INIT_START | \ - VK_FWSTS_ARCH_INIT_DONE | \ - VK_FWSTS_PRE_KNL1_INIT_DONE | \ - VK_FWSTS_PRE_KNL2_INIT_DONE | \ - VK_FWSTS_POST_KNL_INIT_DONE | \ - VK_FWSTS_INIT_DONE | \ - VK_FWSTS_APP_INIT_START | \ - VK_FWSTS_APP_INIT_DONE) -/* Deinit */ -#define VK_FWSTS_APP_DEINIT_START (1UL << 23) -#define VK_FWSTS_APP_DEINIT_DONE (1UL << 24) -#define VK_FWSTS_DRV_DEINIT_START (1UL << 25) -#define VK_FWSTS_DRV_DEINIT_DONE (1UL << 26) -#define VK_FWSTS_RESET_DONE (1UL << 27) -#define VK_FWSTS_DEINIT_TRIGGERED (VK_FWSTS_APP_DEINIT_START | \ - VK_FWSTS_APP_DEINIT_DONE | \ - VK_FWSTS_DRV_DEINIT_START | \ - VK_FWSTS_DRV_DEINIT_DONE) -/* Last nibble for reboot reason */ -#define VK_FWSTS_RESET_REASON_SHIFT 28 -#define VK_FWSTS_RESET_REASON_MASK (0xf << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_SYS_PWRUP (0x0 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_MBOX_DB (0x1 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_M7_WDOG (0x2 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_TEMP (0x3 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_PCI_FLR (0x4 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_PCI_HOT (0x5 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_PCI_WARM (0x6 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_PCI_COLD (0x7 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_L1 (0x8 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_L0 (0x9 << VK_FWSTS_RESET_REASON_SHIFT) -#define VK_FWSTS_RESET_UNKNOWN (0xf << VK_FWSTS_RESET_REASON_SHIFT) - -#endif /* __UAPI_LINUX_MISC_BCM_VK_H */ diff --git a/original/uapi/linux/mman.h b/original/uapi/linux/mman.h index f55bc68..fc1a64c 100644 --- a/original/uapi/linux/mman.h +++ b/original/uapi/linux/mman.h @@ -5,9 +5,8 @@ #include <asm/mman.h> #include <asm-generic/hugetlb_encode.h> -#define MREMAP_MAYMOVE 1 -#define MREMAP_FIXED 2 -#define MREMAP_DONTUNMAP 4 +#define MREMAP_MAYMOVE 1 +#define MREMAP_FIXED 2 #define OVERCOMMIT_GUESS 0 #define OVERCOMMIT_ALWAYS 1 @@ -27,7 +26,6 @@ #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT #define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK -#define MAP_HUGE_16KB HUGETLB_FLAG_ENCODE_16KB #define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB #define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB #define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB diff --git a/original/uapi/linux/mmc/ioctl.h b/original/uapi/linux/mmc/ioctl.h index 27a3984..00c0812 100644 --- a/original/uapi/linux/mmc/ioctl.h +++ b/original/uapi/linux/mmc/ioctl.h @@ -3,7 +3,6 @@ #define LINUX_MMC_IOCTL_H #include <linux/types.h> -#include <linux/major.h> struct mmc_ioc_cmd { /* diff --git a/original/uapi/linux/mount.h b/original/uapi/linux/mount.h index e6524ea..96a0240 100644 --- a/original/uapi/linux/mount.h +++ b/original/uapi/linux/mount.h @@ -1,8 +1,6 @@ #ifndef _UAPI_LINUX_MOUNT_H #define _UAPI_LINUX_MOUNT_H -#include <linux/types.h> - /* * These are the fs-independent mount-flags: up to 32 flags are supported * @@ -18,7 +16,6 @@ #define MS_REMOUNT 32 /* Alter flags of a mounted FS */ #define MS_MANDLOCK 64 /* Allow mandatory locks on an FS */ #define MS_DIRSYNC 128 /* Directory modifications are synchronous */ -#define MS_NOSYMFOLLOW 256 /* Do not follow symlinks */ #define MS_NOATIME 1024 /* Do not update access times. */ #define MS_NODIRATIME 2048 /* Do not update directory access times */ #define MS_BIND 4096 @@ -119,19 +116,5 @@ enum fsconfig_command { #define MOUNT_ATTR_NOATIME 0x00000010 /* - Do not update access times. */ #define MOUNT_ATTR_STRICTATIME 0x00000020 /* - Always perform atime updates */ #define MOUNT_ATTR_NODIRATIME 0x00000080 /* Do not update directory access times */ -#define MOUNT_ATTR_IDMAP 0x00100000 /* Idmap mount to @userns_fd in struct mount_attr. */ - -/* - * mount_setattr() - */ -struct mount_attr { - __u64 attr_set; - __u64 attr_clr; - __u64 propagation; - __u64 userns_fd; -}; - -/* List of all mount_attr versions. */ -#define MOUNT_ATTR_SIZE_VER0 32 /* sizeof first published struct */ #endif /* _UAPI_LINUX_MOUNT_H */ diff --git a/original/uapi/linux/mptcp.h b/original/uapi/linux/mptcp.h deleted file mode 100644 index e1172c1..0000000 --- a/original/uapi/linux/mptcp.h +++ /dev/null @@ -1,183 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -#ifndef _UAPI_MPTCP_H -#define _UAPI_MPTCP_H - -#include <linux/const.h> -#include <linux/types.h> - -#define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0) -#define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1) -#define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2) -#define MPTCP_SUBFLOW_FLAG_JOIN_LOC _BITUL(3) -#define MPTCP_SUBFLOW_FLAG_BKUP_REM _BITUL(4) -#define MPTCP_SUBFLOW_FLAG_BKUP_LOC _BITUL(5) -#define MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED _BITUL(6) -#define MPTCP_SUBFLOW_FLAG_CONNECTED _BITUL(7) -#define MPTCP_SUBFLOW_FLAG_MAPVALID _BITUL(8) - -enum { - MPTCP_SUBFLOW_ATTR_UNSPEC, - MPTCP_SUBFLOW_ATTR_TOKEN_REM, - MPTCP_SUBFLOW_ATTR_TOKEN_LOC, - MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ, - MPTCP_SUBFLOW_ATTR_MAP_SEQ, - MPTCP_SUBFLOW_ATTR_MAP_SFSEQ, - MPTCP_SUBFLOW_ATTR_SSN_OFFSET, - MPTCP_SUBFLOW_ATTR_MAP_DATALEN, - MPTCP_SUBFLOW_ATTR_FLAGS, - MPTCP_SUBFLOW_ATTR_ID_REM, - MPTCP_SUBFLOW_ATTR_ID_LOC, - MPTCP_SUBFLOW_ATTR_PAD, - __MPTCP_SUBFLOW_ATTR_MAX -}; - -#define MPTCP_SUBFLOW_ATTR_MAX (__MPTCP_SUBFLOW_ATTR_MAX - 1) - -/* netlink interface */ -#define MPTCP_PM_NAME "mptcp_pm" -#define MPTCP_PM_CMD_GRP_NAME "mptcp_pm_cmds" -#define MPTCP_PM_EV_GRP_NAME "mptcp_pm_events" -#define MPTCP_PM_VER 0x1 - -/* - * ATTR types defined for MPTCP - */ -enum { - MPTCP_PM_ATTR_UNSPEC, - - MPTCP_PM_ATTR_ADDR, /* nested address */ - MPTCP_PM_ATTR_RCV_ADD_ADDRS, /* u32 */ - MPTCP_PM_ATTR_SUBFLOWS, /* u32 */ - - __MPTCP_PM_ATTR_MAX -}; - -#define MPTCP_PM_ATTR_MAX (__MPTCP_PM_ATTR_MAX - 1) - -enum { - MPTCP_PM_ADDR_ATTR_UNSPEC, - - MPTCP_PM_ADDR_ATTR_FAMILY, /* u16 */ - MPTCP_PM_ADDR_ATTR_ID, /* u8 */ - MPTCP_PM_ADDR_ATTR_ADDR4, /* struct in_addr */ - MPTCP_PM_ADDR_ATTR_ADDR6, /* struct in6_addr */ - MPTCP_PM_ADDR_ATTR_PORT, /* u16 */ - MPTCP_PM_ADDR_ATTR_FLAGS, /* u32 */ - MPTCP_PM_ADDR_ATTR_IF_IDX, /* s32 */ - - __MPTCP_PM_ADDR_ATTR_MAX -}; - -#define MPTCP_PM_ADDR_ATTR_MAX (__MPTCP_PM_ADDR_ATTR_MAX - 1) - -#define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0) -#define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1) -#define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2) - -enum { - MPTCP_PM_CMD_UNSPEC, - - MPTCP_PM_CMD_ADD_ADDR, - MPTCP_PM_CMD_DEL_ADDR, - MPTCP_PM_CMD_GET_ADDR, - MPTCP_PM_CMD_FLUSH_ADDRS, - MPTCP_PM_CMD_SET_LIMITS, - MPTCP_PM_CMD_GET_LIMITS, - MPTCP_PM_CMD_SET_FLAGS, - - __MPTCP_PM_CMD_AFTER_LAST -}; - -#define MPTCP_INFO_FLAG_FALLBACK _BITUL(0) -#define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1) - -struct mptcp_info { - __u8 mptcpi_subflows; - __u8 mptcpi_add_addr_signal; - __u8 mptcpi_add_addr_accepted; - __u8 mptcpi_subflows_max; - __u8 mptcpi_add_addr_signal_max; - __u8 mptcpi_add_addr_accepted_max; - __u32 mptcpi_flags; - __u32 mptcpi_token; - __u64 mptcpi_write_seq; - __u64 mptcpi_snd_una; - __u64 mptcpi_rcv_nxt; - __u8 mptcpi_local_addr_used; - __u8 mptcpi_local_addr_max; -}; - -/* - * MPTCP_EVENT_CREATED: token, family, saddr4 | saddr6, daddr4 | daddr6, - * sport, dport - * A new MPTCP connection has been created. It is the good time to allocate - * memory and send ADD_ADDR if needed. Depending on the traffic-patterns - * it can take a long time until the MPTCP_EVENT_ESTABLISHED is sent. - * - * MPTCP_EVENT_ESTABLISHED: token, family, saddr4 | saddr6, daddr4 | daddr6, - * sport, dport - * A MPTCP connection is established (can start new subflows). - * - * MPTCP_EVENT_CLOSED: token - * A MPTCP connection has stopped. - * - * MPTCP_EVENT_ANNOUNCED: token, rem_id, family, daddr4 | daddr6 [, dport] - * A new address has been announced by the peer. - * - * MPTCP_EVENT_REMOVED: token, rem_id - * An address has been lost by the peer. - * - * MPTCP_EVENT_SUB_ESTABLISHED: token, family, saddr4 | saddr6, - * daddr4 | daddr6, sport, dport, backup, - * if_idx [, error] - * A new subflow has been established. 'error' should not be set. - * - * MPTCP_EVENT_SUB_CLOSED: token, family, saddr4 | saddr6, daddr4 | daddr6, - * sport, dport, backup, if_idx [, error] - * A subflow has been closed. An error (copy of sk_err) could be set if an - * error has been detected for this subflow. - * - * MPTCP_EVENT_SUB_PRIORITY: token, family, saddr4 | saddr6, daddr4 | daddr6, - * sport, dport, backup, if_idx [, error] - * The priority of a subflow has changed. 'error' should not be set. - */ -enum mptcp_event_type { - MPTCP_EVENT_UNSPEC = 0, - MPTCP_EVENT_CREATED = 1, - MPTCP_EVENT_ESTABLISHED = 2, - MPTCP_EVENT_CLOSED = 3, - - MPTCP_EVENT_ANNOUNCED = 6, - MPTCP_EVENT_REMOVED = 7, - - MPTCP_EVENT_SUB_ESTABLISHED = 10, - MPTCP_EVENT_SUB_CLOSED = 11, - - MPTCP_EVENT_SUB_PRIORITY = 13, -}; - -enum mptcp_event_attr { - MPTCP_ATTR_UNSPEC = 0, - - MPTCP_ATTR_TOKEN, /* u32 */ - MPTCP_ATTR_FAMILY, /* u16 */ - MPTCP_ATTR_LOC_ID, /* u8 */ - MPTCP_ATTR_REM_ID, /* u8 */ - MPTCP_ATTR_SADDR4, /* be32 */ - MPTCP_ATTR_SADDR6, /* struct in6_addr */ - MPTCP_ATTR_DADDR4, /* be32 */ - MPTCP_ATTR_DADDR6, /* struct in6_addr */ - MPTCP_ATTR_SPORT, /* be16 */ - MPTCP_ATTR_DPORT, /* be16 */ - MPTCP_ATTR_BACKUP, /* u8 */ - MPTCP_ATTR_ERROR, /* u8 */ - MPTCP_ATTR_FLAGS, /* u16 */ - MPTCP_ATTR_TIMEOUT, /* u32 */ - MPTCP_ATTR_IF_IDX, /* s32 */ - - __MPTCP_ATTR_AFTER_LAST -}; - -#define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1) - -#endif /* _UAPI_MPTCP_H */ diff --git a/original/uapi/linux/mroute.h b/original/uapi/linux/mroute.h index 1a42f5f..11c8c1f 100644 --- a/original/uapi/linux/mroute.h +++ b/original/uapi/linux/mroute.h @@ -113,8 +113,8 @@ struct igmpmsg { __u32 unused1,unused2; unsigned char im_msgtype; /* What is this */ unsigned char im_mbz; /* Must be zero */ - unsigned char im_vif; /* Low 8 bits of Interface */ - unsigned char im_vif_hi; /* High 8 bits of Interface */ + unsigned char im_vif; /* Interface (this ought to be a vifi_t!) */ + unsigned char unused3; struct in_addr im_src,im_dst; }; @@ -169,7 +169,6 @@ enum { IPMRA_CREPORT_SRC_ADDR, IPMRA_CREPORT_DST_ADDR, IPMRA_CREPORT_PKT, - IPMRA_CREPORT_TABLE, __IPMRA_CREPORT_MAX }; #define IPMRA_CREPORT_MAX (__IPMRA_CREPORT_MAX - 1) diff --git a/original/uapi/linux/mroute6.h b/original/uapi/linux/mroute6.h index a1fd617..c36177a 100644 --- a/original/uapi/linux/mroute6.h +++ b/original/uapi/linux/mroute6.h @@ -2,7 +2,7 @@ #ifndef _UAPI__LINUX_MROUTE6_H #define _UAPI__LINUX_MROUTE6_H -#include <linux/const.h> +#include <linux/kernel.h> #include <linux/types.h> #include <linux/sockios.h> #include <linux/in6.h> /* For struct sockaddr_in6. */ diff --git a/original/uapi/linux/mrp_bridge.h b/original/uapi/linux/mrp_bridge.h deleted file mode 100644 index bd4424d..0000000 --- a/original/uapi/linux/mrp_bridge.h +++ /dev/null @@ -1,74 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ - -#ifndef _UAPI_LINUX_MRP_BRIDGE_H_ -#define _UAPI_LINUX_MRP_BRIDGE_H_ - -#include <linux/types.h> -#include <linux/if_ether.h> - -#define MRP_MAX_FRAME_LENGTH 200 -#define MRP_DEFAULT_PRIO 0x8000 -#define MRP_DOMAIN_UUID_LENGTH 16 -#define MRP_VERSION 1 -#define MRP_FRAME_PRIO 7 -#define MRP_OUI_LENGTH 3 -#define MRP_MANUFACTURE_DATA_LENGTH 2 - -enum br_mrp_ring_role_type { - BR_MRP_RING_ROLE_DISABLED, - BR_MRP_RING_ROLE_MRC, - BR_MRP_RING_ROLE_MRM, - BR_MRP_RING_ROLE_MRA, -}; - -enum br_mrp_in_role_type { - BR_MRP_IN_ROLE_DISABLED, - BR_MRP_IN_ROLE_MIC, - BR_MRP_IN_ROLE_MIM, -}; - -enum br_mrp_ring_state_type { - BR_MRP_RING_STATE_OPEN, - BR_MRP_RING_STATE_CLOSED, -}; - -enum br_mrp_in_state_type { - BR_MRP_IN_STATE_OPEN, - BR_MRP_IN_STATE_CLOSED, -}; - -enum br_mrp_port_state_type { - BR_MRP_PORT_STATE_DISABLED, - BR_MRP_PORT_STATE_BLOCKED, - BR_MRP_PORT_STATE_FORWARDING, - BR_MRP_PORT_STATE_NOT_CONNECTED, -}; - -enum br_mrp_port_role_type { - BR_MRP_PORT_ROLE_PRIMARY, - BR_MRP_PORT_ROLE_SECONDARY, - BR_MRP_PORT_ROLE_INTER, -}; - -enum br_mrp_tlv_header_type { - BR_MRP_TLV_HEADER_END = 0x0, - BR_MRP_TLV_HEADER_COMMON = 0x1, - BR_MRP_TLV_HEADER_RING_TEST = 0x2, - BR_MRP_TLV_HEADER_RING_TOPO = 0x3, - BR_MRP_TLV_HEADER_RING_LINK_DOWN = 0x4, - BR_MRP_TLV_HEADER_RING_LINK_UP = 0x5, - BR_MRP_TLV_HEADER_IN_TEST = 0x6, - BR_MRP_TLV_HEADER_IN_TOPO = 0x7, - BR_MRP_TLV_HEADER_IN_LINK_DOWN = 0x8, - BR_MRP_TLV_HEADER_IN_LINK_UP = 0x9, - BR_MRP_TLV_HEADER_IN_LINK_STATUS = 0xa, - BR_MRP_TLV_HEADER_OPTION = 0x7f, -}; - -enum br_mrp_sub_tlv_header_type { - BR_MRP_SUB_TLV_HEADER_TEST_MGR_NACK = 0x1, - BR_MRP_SUB_TLV_HEADER_TEST_PROPAGATE = 0x2, - BR_MRP_SUB_TLV_HEADER_TEST_AUTO_MGR = 0x3, -}; - -#endif diff --git a/original/uapi/linux/ndctl.h b/original/uapi/linux/ndctl.h index 8cf1e48..de5d902 100644 --- a/original/uapi/linux/ndctl.h +++ b/original/uapi/linux/ndctl.h @@ -244,12 +244,6 @@ struct nd_cmd_pkg { #define NVDIMM_FAMILY_HPE2 2 #define NVDIMM_FAMILY_MSFT 3 #define NVDIMM_FAMILY_HYPERV 4 -#define NVDIMM_FAMILY_PAPR 5 -#define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_PAPR - -#define NVDIMM_BUS_FAMILY_NFIT 0 -#define NVDIMM_BUS_FAMILY_INTEL 1 -#define NVDIMM_BUS_FAMILY_MAX NVDIMM_BUS_FAMILY_INTEL #define ND_IOCTL_CALL _IOWR(ND_IOCTL, ND_CMD_CALL,\ struct nd_cmd_pkg) diff --git a/original/uapi/linux/neighbour.h b/original/uapi/linux/neighbour.h index dc8b722..cd144e3 100644 --- a/original/uapi/linux/neighbour.h +++ b/original/uapi/linux/neighbour.h @@ -29,8 +29,6 @@ enum { NDA_LINK_NETNSID, NDA_SRC_VNI, NDA_PROTOCOL, /* Originator of entry */ - NDA_NH_ID, - NDA_FDB_EXT_ATTRS, __NDA_MAX }; @@ -173,27 +171,4 @@ enum { }; #define NDTA_MAX (__NDTA_MAX - 1) - /* FDB activity notification bits used in NFEA_ACTIVITY_NOTIFY: - * - FDB_NOTIFY_BIT - notify on activity/expire for any entry - * - FDB_NOTIFY_INACTIVE_BIT - mark as inactive to avoid multiple notifications - */ -enum { - FDB_NOTIFY_BIT = (1 << 0), - FDB_NOTIFY_INACTIVE_BIT = (1 << 1) -}; - -/* embedded into NDA_FDB_EXT_ATTRS: - * [NDA_FDB_EXT_ATTRS] = { - * [NFEA_ACTIVITY_NOTIFY] - * ... - * } - */ -enum { - NFEA_UNSPEC, - NFEA_ACTIVITY_NOTIFY, - NFEA_DONT_REFRESH, - __NFEA_MAX -}; -#define NFEA_MAX (__NFEA_MAX - 1) - #endif diff --git a/original/uapi/linux/net_dropmon.h b/original/uapi/linux/net_dropmon.h index 66048cc..8bf79a9 100644 --- a/original/uapi/linux/net_dropmon.h +++ b/original/uapi/linux/net_dropmon.h @@ -92,7 +92,6 @@ enum net_dm_attr { NET_DM_ATTR_HW_TRAP_COUNT, /* u32 */ NET_DM_ATTR_SW_DROPS, /* flag */ NET_DM_ATTR_HW_DROPS, /* flag */ - NET_DM_ATTR_FLOW_ACTION_COOKIE, /* binary */ __NET_DM_ATTR_MAX, NET_DM_ATTR_MAX = __NET_DM_ATTR_MAX - 1 diff --git a/original/uapi/linux/net_tstamp.h b/original/uapi/linux/net_tstamp.h index 7ed0b3d..e5b3972 100644 --- a/original/uapi/linux/net_tstamp.h +++ b/original/uapi/linux/net_tstamp.h @@ -90,17 +90,6 @@ enum hwtstamp_tx_types { * queue. */ HWTSTAMP_TX_ONESTEP_SYNC, - - /* - * Same as HWTSTAMP_TX_ONESTEP_SYNC, but also enables time - * stamp insertion directly into PDelay_Resp packets. In this - * case, neither transmitted Sync nor PDelay_Resp packets will - * receive a time stamp via the socket error queue. - */ - HWTSTAMP_TX_ONESTEP_P2P, - - /* add new constants above here */ - __HWTSTAMP_TX_CNT }; /* possible values for hwtstamp_config->rx_filter */ @@ -143,9 +132,6 @@ enum hwtstamp_rx_filters { /* NTP, UDP, all versions and packet modes */ HWTSTAMP_FILTER_NTP_ALL, - - /* add new constants above here */ - __HWTSTAMP_FILTER_CNT }; /* SCM_TIMESTAMPING_PKTINFO control message */ diff --git a/original/uapi/linux/netfilter.h b/original/uapi/linux/netfilter.h index ef9a442..ca9e63d 100644 --- a/original/uapi/linux/netfilter.h +++ b/original/uapi/linux/netfilter.h @@ -45,8 +45,7 @@ enum nf_inet_hooks { NF_INET_FORWARD, NF_INET_LOCAL_OUT, NF_INET_POST_ROUTING, - NF_INET_NUMHOOKS, - NF_INET_INGRESS = NF_INET_NUMHOOKS, + NF_INET_NUMHOOKS }; enum nf_dev_hooks { diff --git a/original/uapi/linux/netfilter/ipset/ip_set.h b/original/uapi/linux/netfilter/ipset/ip_set.h index 6397d75..11a72a9 100644 --- a/original/uapi/linux/netfilter/ipset/ip_set.h +++ b/original/uapi/linux/netfilter/ipset/ip_set.h @@ -92,11 +92,11 @@ enum { /* Reserve empty slots */ IPSET_ATTR_CADT_MAX = 16, /* Create-only specific attributes */ - IPSET_ATTR_INITVAL, /* was unused IPSET_ATTR_GC */ + IPSET_ATTR_GC, IPSET_ATTR_HASHSIZE, IPSET_ATTR_MAXELEM, IPSET_ATTR_NETMASK, - IPSET_ATTR_BUCKETSIZE, /* was unused IPSET_ATTR_PROBES */ + IPSET_ATTR_PROBES, IPSET_ATTR_RESIZE, IPSET_ATTR_SIZE, /* Kernel-only */ @@ -214,8 +214,6 @@ enum ipset_cadt_flags { enum ipset_create_flags { IPSET_CREATE_FLAG_BIT_FORCEADD = 0, IPSET_CREATE_FLAG_FORCEADD = (1 << IPSET_CREATE_FLAG_BIT_FORCEADD), - IPSET_CREATE_FLAG_BIT_BUCKETSIZE = 1, - IPSET_CREATE_FLAG_BUCKETSIZE = (1 << IPSET_CREATE_FLAG_BIT_BUCKETSIZE), IPSET_CREATE_FLAG_BIT_MAX = 7, }; diff --git a/original/uapi/linux/netfilter/nf_conntrack_common.h b/original/uapi/linux/netfilter/nf_conntrack_common.h index 4b33950..336014b 100644 --- a/original/uapi/linux/netfilter/nf_conntrack_common.h +++ b/original/uapi/linux/netfilter/nf_conntrack_common.h @@ -97,15 +97,6 @@ enum ip_conntrack_status { IPS_UNTRACKED_BIT = 12, IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT), -#ifdef __KERNEL__ - /* Re-purposed for in-kernel use: - * Tags a conntrack entry that clashed with an existing entry - * on insert. - */ - IPS_NAT_CLASH_BIT = IPS_UNTRACKED_BIT, - IPS_NAT_CLASH = IPS_UNTRACKED, -#endif - /* Conntrack got a helper explicitly attached via CT target. */ IPS_HELPER_BIT = 13, IPS_HELPER = (1 << IPS_HELPER_BIT), @@ -114,19 +105,14 @@ enum ip_conntrack_status { IPS_OFFLOAD_BIT = 14, IPS_OFFLOAD = (1 << IPS_OFFLOAD_BIT), - /* Conntrack has been offloaded to hardware. */ - IPS_HW_OFFLOAD_BIT = 15, - IPS_HW_OFFLOAD = (1 << IPS_HW_OFFLOAD_BIT), - /* Be careful here, modifying these bits can make things messy, * so don't let users modify them directly. */ IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | - IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_UNTRACKED | - IPS_OFFLOAD | IPS_HW_OFFLOAD), + IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_OFFLOAD), - __IPS_MAX_BIT = 16, + __IPS_MAX_BIT = 15, }; /* Connection tracking event types */ diff --git a/original/uapi/linux/netfilter/nf_nat.h b/original/uapi/linux/netfilter/nf_nat.h index a64586e..4a95c0d 100644 --- a/original/uapi/linux/netfilter/nf_nat.h +++ b/original/uapi/linux/netfilter/nf_nat.h @@ -11,7 +11,6 @@ #define NF_NAT_RANGE_PERSISTENT (1 << 3) #define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) #define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -#define NF_NAT_RANGE_NETMAP (1 << 6) #define NF_NAT_RANGE_PROTO_RANDOM_ALL \ (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) @@ -19,8 +18,7 @@ #define NF_NAT_RANGE_MASK \ (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ - NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ - NF_NAT_RANGE_NETMAP) + NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET) struct nf_nat_ipv4_range { unsigned int flags; diff --git a/original/uapi/linux/netfilter/nf_tables.h b/original/uapi/linux/netfilter/nf_tables.h index 79bab7a..bb9b049 100644 --- a/original/uapi/linux/netfilter/nf_tables.h +++ b/original/uapi/linux/netfilter/nf_tables.h @@ -48,7 +48,6 @@ enum nft_registers { #define NFT_REG_SIZE 16 #define NFT_REG32_SIZE 4 -#define NFT_REG32_COUNT (NFT_REG32_15 - NFT_REG32_00 + 1) /** * enum nft_verdicts - nf_tables internal verdicts @@ -133,7 +132,7 @@ enum nf_tables_msg_types { * @NFTA_LIST_ELEM: list element (NLA_NESTED) */ enum nft_list_attributes { - NFTA_LIST_UNSPEC, + NFTA_LIST_UNPEC, NFTA_LIST_ELEM, __NFTA_LIST_MAX }; @@ -164,10 +163,7 @@ enum nft_hook_attributes { */ enum nft_table_flags { NFT_TABLE_F_DORMANT = 0x1, - NFT_TABLE_F_OWNER = 0x2, }; -#define NFT_TABLE_F_MASK (NFT_TABLE_F_DORMANT | \ - NFT_TABLE_F_OWNER) /** * enum nft_table_attributes - nf_tables table netlink attributes @@ -175,8 +171,6 @@ enum nft_table_flags { * @NFTA_TABLE_NAME: name of the table (NLA_STRING) * @NFTA_TABLE_FLAGS: bitmask of enum nft_table_flags (NLA_U32) * @NFTA_TABLE_USE: number of chains in this table (NLA_U32) - * @NFTA_TABLE_USERDATA: user data (NLA_BINARY) - * @NFTA_TABLE_OWNER: owner of this table through netlink portID (NLA_U32) */ enum nft_table_attributes { NFTA_TABLE_UNSPEC, @@ -185,21 +179,10 @@ enum nft_table_attributes { NFTA_TABLE_USE, NFTA_TABLE_HANDLE, NFTA_TABLE_PAD, - NFTA_TABLE_USERDATA, - NFTA_TABLE_OWNER, __NFTA_TABLE_MAX }; #define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1) -enum nft_chain_flags { - NFT_CHAIN_BASE = (1 << 0), - NFT_CHAIN_HW_OFFLOAD = (1 << 1), - NFT_CHAIN_BINDING = (1 << 2), -}; -#define NFT_CHAIN_FLAGS (NFT_CHAIN_BASE | \ - NFT_CHAIN_HW_OFFLOAD | \ - NFT_CHAIN_BINDING) - /** * enum nft_chain_attributes - nf_tables chain netlink attributes * @@ -212,8 +195,6 @@ enum nft_chain_flags { * @NFTA_CHAIN_TYPE: type name of the string (NLA_NUL_STRING) * @NFTA_CHAIN_COUNTERS: counter specification of the chain (NLA_NESTED: nft_counter_attributes) * @NFTA_CHAIN_FLAGS: chain flags - * @NFTA_CHAIN_ID: uniquely identifies a chain in a transaction (NLA_U32) - * @NFTA_CHAIN_USERDATA: user data (NLA_BINARY) */ enum nft_chain_attributes { NFTA_CHAIN_UNSPEC, @@ -227,8 +208,6 @@ enum nft_chain_attributes { NFTA_CHAIN_COUNTERS, NFTA_CHAIN_PAD, NFTA_CHAIN_FLAGS, - NFTA_CHAIN_ID, - NFTA_CHAIN_USERDATA, __NFTA_CHAIN_MAX }; #define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1) @@ -258,7 +237,6 @@ enum nft_rule_attributes { NFTA_RULE_PAD, NFTA_RULE_ID, NFTA_RULE_POSITION_ID, - NFTA_RULE_CHAIN_ID, __NFTA_RULE_MAX }; #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1) @@ -297,8 +275,6 @@ enum nft_rule_compat_attributes { * @NFT_SET_TIMEOUT: set uses timeouts * @NFT_SET_EVAL: set can be updated from the evaluation path * @NFT_SET_OBJECT: set contains stateful objects - * @NFT_SET_CONCAT: set contains a concatenation - * @NFT_SET_EXPR: set contains expressions */ enum nft_set_flags { NFT_SET_ANONYMOUS = 0x1, @@ -308,8 +284,6 @@ enum nft_set_flags { NFT_SET_TIMEOUT = 0x10, NFT_SET_EVAL = 0x20, NFT_SET_OBJECT = 0x40, - NFT_SET_CONCAT = 0x80, - NFT_SET_EXPR = 0x100, }; /** @@ -327,29 +301,15 @@ enum nft_set_policies { * enum nft_set_desc_attributes - set element description * * @NFTA_SET_DESC_SIZE: number of elements in set (NLA_U32) - * @NFTA_SET_DESC_CONCAT: description of field concatenation (NLA_NESTED) */ enum nft_set_desc_attributes { NFTA_SET_DESC_UNSPEC, NFTA_SET_DESC_SIZE, - NFTA_SET_DESC_CONCAT, __NFTA_SET_DESC_MAX }; #define NFTA_SET_DESC_MAX (__NFTA_SET_DESC_MAX - 1) /** - * enum nft_set_field_attributes - attributes of concatenated fields - * - * @NFTA_SET_FIELD_LEN: length of single field, in bits (NLA_U32) - */ -enum nft_set_field_attributes { - NFTA_SET_FIELD_UNSPEC, - NFTA_SET_FIELD_LEN, - __NFTA_SET_FIELD_MAX -}; -#define NFTA_SET_FIELD_MAX (__NFTA_SET_FIELD_MAX - 1) - -/** * enum nft_set_attributes - nf_tables set netlink attributes * * @NFTA_SET_TABLE: table name (NLA_STRING) @@ -367,8 +327,6 @@ enum nft_set_field_attributes { * @NFTA_SET_USERDATA: user data (NLA_BINARY) * @NFTA_SET_OBJ_TYPE: stateful object type (NLA_U32: NFT_OBJECT_*) * @NFTA_SET_HANDLE: set handle (NLA_U64) - * @NFTA_SET_EXPR: set expression (NLA_NESTED: nft_expr_attributes) - * @NFTA_SET_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes) */ enum nft_set_attributes { NFTA_SET_UNSPEC, @@ -388,8 +346,6 @@ enum nft_set_attributes { NFTA_SET_PAD, NFTA_SET_OBJ_TYPE, NFTA_SET_HANDLE, - NFTA_SET_EXPR, - NFTA_SET_EXPRESSIONS, __NFTA_SET_MAX }; #define NFTA_SET_MAX (__NFTA_SET_MAX - 1) @@ -414,8 +370,6 @@ enum nft_set_elem_flags { * @NFTA_SET_ELEM_USERDATA: user data (NLA_BINARY) * @NFTA_SET_ELEM_EXPR: expression (NLA_NESTED: nft_expr_attributes) * @NFTA_SET_ELEM_OBJREF: stateful object reference (NLA_STRING) - * @NFTA_SET_ELEM_KEY_END: closing key value (NLA_NESTED: nft_data) - * @NFTA_SET_ELEM_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes) */ enum nft_set_elem_attributes { NFTA_SET_ELEM_UNSPEC, @@ -428,8 +382,6 @@ enum nft_set_elem_attributes { NFTA_SET_ELEM_EXPR, NFTA_SET_ELEM_PAD, NFTA_SET_ELEM_OBJREF, - NFTA_SET_ELEM_KEY_END, - NFTA_SET_ELEM_EXPRESSIONS, __NFTA_SET_ELEM_MAX }; #define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1) @@ -495,13 +447,11 @@ enum nft_data_attributes { * * @NFTA_VERDICT_CODE: nf_tables verdict (NLA_U32: enum nft_verdicts) * @NFTA_VERDICT_CHAIN: jump target chain name (NLA_STRING) - * @NFTA_VERDICT_CHAIN_ID: jump target chain ID (NLA_U32) */ enum nft_verdict_attributes { NFTA_VERDICT_UNSPEC, NFTA_VERDICT_CODE, NFTA_VERDICT_CHAIN, - NFTA_VERDICT_CHAIN_ID, __NFTA_VERDICT_MAX }; #define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1) @@ -535,20 +485,6 @@ enum nft_immediate_attributes { #define NFTA_IMMEDIATE_MAX (__NFTA_IMMEDIATE_MAX - 1) /** - * enum nft_bitwise_ops - nf_tables bitwise operations - * - * @NFT_BITWISE_BOOL: mask-and-xor operation used to implement NOT, AND, OR and - * XOR boolean operations - * @NFT_BITWISE_LSHIFT: left-shift operation - * @NFT_BITWISE_RSHIFT: right-shift operation - */ -enum nft_bitwise_ops { - NFT_BITWISE_BOOL, - NFT_BITWISE_LSHIFT, - NFT_BITWISE_RSHIFT, -}; - -/** * enum nft_bitwise_attributes - nf_tables bitwise expression netlink attributes * * @NFTA_BITWISE_SREG: source register (NLA_U32: nft_registers) @@ -556,20 +492,16 @@ enum nft_bitwise_ops { * @NFTA_BITWISE_LEN: length of operands (NLA_U32) * @NFTA_BITWISE_MASK: mask value (NLA_NESTED: nft_data_attributes) * @NFTA_BITWISE_XOR: xor value (NLA_NESTED: nft_data_attributes) - * @NFTA_BITWISE_OP: type of operation (NLA_U32: nft_bitwise_ops) - * @NFTA_BITWISE_DATA: argument for non-boolean operations - * (NLA_NESTED: nft_data_attributes) * - * The bitwise expression supports boolean and shift operations. It implements - * the boolean operations by performing the following operation: + * The bitwise expression performs the following operation: * * dreg = (sreg & mask) ^ xor * - * with these mask and xor values: + * which allow to express all bitwise operations: * * mask xor * NOT: 1 1 - * OR: ~x x + * OR: 0 x * XOR: 1 x * AND: x 0 */ @@ -580,8 +512,6 @@ enum nft_bitwise_attributes { NFTA_BITWISE_LEN, NFTA_BITWISE_MASK, NFTA_BITWISE_XOR, - NFTA_BITWISE_OP, - NFTA_BITWISE_DATA, __NFTA_BITWISE_MAX }; #define NFTA_BITWISE_MAX (__NFTA_BITWISE_MAX - 1) @@ -713,7 +643,6 @@ enum nft_dynset_ops { enum nft_dynset_flags { NFT_DYNSET_F_INV = (1 << 0), - NFT_DYNSET_F_EXPR = (1 << 1), }; /** @@ -727,7 +656,6 @@ enum nft_dynset_flags { * @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64) * @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes) * @NFTA_DYNSET_FLAGS: flags (NLA_U32) - * @NFTA_DYNSET_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes) */ enum nft_dynset_attributes { NFTA_DYNSET_UNSPEC, @@ -740,7 +668,6 @@ enum nft_dynset_attributes { NFTA_DYNSET_EXPR, NFTA_DYNSET_PAD, NFTA_DYNSET_FLAGS, - NFTA_DYNSET_EXPRESSIONS, __NFTA_DYNSET_MAX, }; #define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1) @@ -763,12 +690,10 @@ enum nft_payload_bases { * * @NFT_PAYLOAD_CSUM_NONE: no checksumming * @NFT_PAYLOAD_CSUM_INET: internet checksum (RFC 791) - * @NFT_PAYLOAD_CSUM_SCTP: CRC-32c, for use in SCTP header (RFC 3309) */ enum nft_payload_csum_types { NFT_PAYLOAD_CSUM_NONE, NFT_PAYLOAD_CSUM_INET, - NFT_PAYLOAD_CSUM_SCTP, }; enum nft_payload_csum_flags { @@ -880,8 +805,6 @@ enum nft_exthdr_attributes { * @NFT_META_TIME_NS: time since epoch (in nanoseconds) * @NFT_META_TIME_DAY: day of week (from 0 = Sunday to 6 = Saturday) * @NFT_META_TIME_HOUR: hour of day (in seconds) - * @NFT_META_SDIF: slave device interface index - * @NFT_META_SDIFNAME: slave device interface name */ enum nft_meta_keys { NFT_META_LEN, @@ -917,8 +840,6 @@ enum nft_meta_keys { NFT_META_TIME_NS, NFT_META_TIME_DAY, NFT_META_TIME_HOUR, - NFT_META_SDIF, - NFT_META_SDIFNAME, }; /** @@ -1028,12 +949,10 @@ enum nft_socket_attributes { * * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option * @NFT_SOCKET_MARK: Value of the socket mark - * @NFT_SOCKET_WILDCARD: Whether the socket is zero-bound (e.g. 0.0.0.0 or ::0) */ enum nft_socket_keys { NFT_SOCKET_TRANSPARENT, NFT_SOCKET_MARK, - NFT_SOCKET_WILDCARD, __NFT_SOCKET_MAX }; #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1) @@ -1577,7 +1496,6 @@ enum nft_ct_expectation_attributes { * @NFTA_OBJ_DATA: stateful object data (NLA_NESTED) * @NFTA_OBJ_USE: number of references to this expression (NLA_U32) * @NFTA_OBJ_HANDLE: object handle (NLA_U64) - * @NFTA_OBJ_USERDATA: user data (NLA_BINARY) */ enum nft_object_attributes { NFTA_OBJ_UNSPEC, @@ -1588,25 +1506,11 @@ enum nft_object_attributes { NFTA_OBJ_USE, NFTA_OBJ_HANDLE, NFTA_OBJ_PAD, - NFTA_OBJ_USERDATA, __NFTA_OBJ_MAX }; #define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1) /** - * enum nft_flowtable_flags - nf_tables flowtable flags - * - * @NFT_FLOWTABLE_HW_OFFLOAD: flowtable hardware offload is enabled - * @NFT_FLOWTABLE_COUNTER: enable flow counters - */ -enum nft_flowtable_flags { - NFT_FLOWTABLE_HW_OFFLOAD = 0x1, - NFT_FLOWTABLE_COUNTER = 0x2, - NFT_FLOWTABLE_MASK = (NFT_FLOWTABLE_HW_OFFLOAD | - NFT_FLOWTABLE_COUNTER) -}; - -/** * enum nft_flowtable_attributes - nf_tables flow table netlink attributes * * @NFTA_FLOWTABLE_TABLE: name of the table containing the expression (NLA_STRING) @@ -1825,7 +1729,6 @@ enum nft_tunnel_opts_attributes { NFTA_TUNNEL_KEY_OPTS_UNSPEC, NFTA_TUNNEL_KEY_OPTS_VXLAN, NFTA_TUNNEL_KEY_OPTS_ERSPAN, - NFTA_TUNNEL_KEY_OPTS_GENEVE, __NFTA_TUNNEL_KEY_OPTS_MAX }; #define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1) @@ -1847,15 +1750,6 @@ enum nft_tunnel_opts_erspan_attributes { }; #define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1) -enum nft_tunnel_opts_geneve_attributes { - NFTA_TUNNEL_KEY_GENEVE_UNSPEC, - NFTA_TUNNEL_KEY_GENEVE_CLASS, - NFTA_TUNNEL_KEY_GENEVE_TYPE, - NFTA_TUNNEL_KEY_GENEVE_DATA, - __NFTA_TUNNEL_KEY_GENEVE_MAX -}; -#define NFTA_TUNNEL_KEY_GENEVE_MAX (__NFTA_TUNNEL_KEY_GENEVE_MAX - 1) - enum nft_tunnel_flags { NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0), NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1), diff --git a/original/uapi/linux/netfilter/nfnetlink_conntrack.h b/original/uapi/linux/netfilter/nfnetlink_conntrack.h index d8484be..1d41810 100644 --- a/original/uapi/linux/netfilter/nfnetlink_conntrack.h +++ b/original/uapi/linux/netfilter/nfnetlink_conntrack.h @@ -55,7 +55,6 @@ enum ctattr_type { CTA_LABELS, CTA_LABELS_MASK, CTA_SYNPROXY, - CTA_FILTER, __CTA_MAX }; #define CTA_MAX (__CTA_MAX - 1) @@ -247,7 +246,7 @@ enum ctattr_stats_cpu { CTA_STATS_FOUND, CTA_STATS_NEW, /* no longer used */ CTA_STATS_INVALID, - CTA_STATS_IGNORE, /* no longer used */ + CTA_STATS_IGNORE, CTA_STATS_DELETE, /* no longer used */ CTA_STATS_DELETE_LIST, /* no longer used */ CTA_STATS_INSERT, @@ -256,7 +255,6 @@ enum ctattr_stats_cpu { CTA_STATS_EARLY_DROP, CTA_STATS_ERROR, CTA_STATS_SEARCH_RESTART, - CTA_STATS_CLASH_RESOLVE, __CTA_STATS_MAX, }; #define CTA_STATS_MAX (__CTA_STATS_MAX - 1) @@ -278,12 +276,4 @@ enum ctattr_expect_stats { }; #define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1) -enum ctattr_filter { - CTA_FILTER_UNSPEC, - CTA_FILTER_ORIG_FLAGS, - CTA_FILTER_REPLY_FLAGS, - __CTA_FILTER_MAX -}; -#define CTA_FILTER_MAX (__CTA_FILTER_MAX - 1) - #endif /* _IPCONNTRACK_NETLINK_H */ diff --git a/original/uapi/linux/netfilter/nfnetlink_cthelper.h b/original/uapi/linux/netfilter/nfnetlink_cthelper.h index 70af020..a13137a 100644 --- a/original/uapi/linux/netfilter/nfnetlink_cthelper.h +++ b/original/uapi/linux/netfilter/nfnetlink_cthelper.h @@ -5,7 +5,7 @@ #define NFCT_HELPER_STATUS_DISABLED 0 #define NFCT_HELPER_STATUS_ENABLED 1 -enum nfnl_cthelper_msg_types { +enum nfnl_acct_msg_types { NFNL_MSG_CTHELPER_NEW, NFNL_MSG_CTHELPER_GET, NFNL_MSG_CTHELPER_DEL, diff --git a/original/uapi/linux/netfilter/x_tables.h b/original/uapi/linux/netfilter/x_tables.h index b8c6bb2..a8283f7 100644 --- a/original/uapi/linux/netfilter/x_tables.h +++ b/original/uapi/linux/netfilter/x_tables.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _UAPI_X_TABLES_H #define _UAPI_X_TABLES_H -#include <linux/const.h> +#include <linux/kernel.h> #include <linux/types.h> #define XT_FUNCTION_MAXNAMELEN 30 diff --git a/original/uapi/linux/netfilter/xt_IDLETIMER.h b/original/uapi/linux/netfilter/xt_IDLETIMER.h index 49ddcdc..c82a1c1 100644 --- a/original/uapi/linux/netfilter/xt_IDLETIMER.h +++ b/original/uapi/linux/netfilter/xt_IDLETIMER.h @@ -1,9 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * linux/include/linux/netfilter/xt_IDLETIMER.h * * Header file for Xtables timer target module. * * Copyright (C) 2004, 2010 Nokia Corporation + * * Written by Timo Teras <ext-timo.teras@nokia.com> * * Converted to x_tables and forward-ported to 2.6.34 @@ -32,26 +34,21 @@ #include <linux/types.h> #define MAX_IDLETIMER_LABEL_SIZE 28 -#define XT_IDLETIMER_ALARM 0x01 - -struct idletimer_tg_info { - __u32 timeout; +#define NLMSG_MAX_SIZE 64 - char label[MAX_IDLETIMER_LABEL_SIZE]; +#define NL_EVENT_TYPE_INACTIVE 0 +#define NL_EVENT_TYPE_ACTIVE 1 - /* for kernel module internal use only */ - struct idletimer_tg *timer __attribute__((aligned(8))); -}; - -struct idletimer_tg_info_v1 { +struct idletimer_tg_info { __u32 timeout; char label[MAX_IDLETIMER_LABEL_SIZE]; - __u8 send_nl_msg; /* unused: for compatibility with Android */ - __u8 timer_type; + /* Use netlink messages for notification in addition to sysfs */ + __u8 send_nl_msg; /* for kernel module internal use only */ struct idletimer_tg *timer __attribute__((aligned(8))); }; + #endif diff --git a/original/uapi/linux/netfilter/xt_connmark.h b/original/uapi/linux/netfilter/xt_connmark.h index f01c19b..1aa5c95 100644 --- a/original/uapi/linux/netfilter/xt_connmark.h +++ b/original/uapi/linux/netfilter/xt_connmark.h @@ -4,7 +4,7 @@ #include <linux/types.h> -/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com> +/* Copyright (C) 2002,2004 MARA Systems AB <http://www.marasystems.com> * by Henrik Nordstrom <hno@marasystems.com> * * This program is free software; you can redistribute it and/or modify diff --git a/original/uapi/linux/netlink.h b/original/uapi/linux/netlink.h index 3d94269..0a4d733 100644 --- a/original/uapi/linux/netlink.h +++ b/original/uapi/linux/netlink.h @@ -2,7 +2,7 @@ #ifndef _UAPI__LINUX_NETLINK_H #define _UAPI__LINUX_NETLINK_H -#include <linux/const.h> +#include <linux/kernel.h> #include <linux/socket.h> /* for __kernel_sa_family_t */ #include <linux/types.h> @@ -129,7 +129,6 @@ struct nlmsgerr { * @NLMSGERR_ATTR_COOKIE: arbitrary subsystem specific cookie to * be used - in the success case - to identify a created * object or operation or similar (binary) - * @NLMSGERR_ATTR_POLICY: policy for a rejected attribute * @__NLMSGERR_ATTR_MAX: number of attributes * @NLMSGERR_ATTR_MAX: highest attribute number */ @@ -138,7 +137,6 @@ enum nlmsgerr_attrs { NLMSGERR_ATTR_MSG, NLMSGERR_ATTR_OFFS, NLMSGERR_ATTR_COOKIE, - NLMSGERR_ATTR_POLICY, __NLMSGERR_ATTR_MAX, NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1 @@ -251,109 +249,4 @@ struct nla_bitfield32 { __u32 selector; }; -/* - * policy descriptions - it's specific to each family how this is used - * Normally, it should be retrieved via a dump inside another attribute - * specifying where it applies. - */ - -/** - * enum netlink_attribute_type - type of an attribute - * @NL_ATTR_TYPE_INVALID: unused - * @NL_ATTR_TYPE_FLAG: flag attribute (present/not present) - * @NL_ATTR_TYPE_U8: 8-bit unsigned attribute - * @NL_ATTR_TYPE_U16: 16-bit unsigned attribute - * @NL_ATTR_TYPE_U32: 32-bit unsigned attribute - * @NL_ATTR_TYPE_U64: 64-bit unsigned attribute - * @NL_ATTR_TYPE_S8: 8-bit signed attribute - * @NL_ATTR_TYPE_S16: 16-bit signed attribute - * @NL_ATTR_TYPE_S32: 32-bit signed attribute - * @NL_ATTR_TYPE_S64: 64-bit signed attribute - * @NL_ATTR_TYPE_BINARY: binary data, min/max length may be specified - * @NL_ATTR_TYPE_STRING: string, min/max length may be specified - * @NL_ATTR_TYPE_NUL_STRING: NUL-terminated string, - * min/max length may be specified - * @NL_ATTR_TYPE_NESTED: nested, i.e. the content of this attribute - * consists of sub-attributes. The nested policy and maxtype - * inside may be specified. - * @NL_ATTR_TYPE_NESTED_ARRAY: nested array, i.e. the content of this - * attribute contains sub-attributes whose type is irrelevant - * (just used to separate the array entries) and each such array - * entry has attributes again, the policy for those inner ones - * and the corresponding maxtype may be specified. - * @NL_ATTR_TYPE_BITFIELD32: &struct nla_bitfield32 attribute - */ -enum netlink_attribute_type { - NL_ATTR_TYPE_INVALID, - - NL_ATTR_TYPE_FLAG, - - NL_ATTR_TYPE_U8, - NL_ATTR_TYPE_U16, - NL_ATTR_TYPE_U32, - NL_ATTR_TYPE_U64, - - NL_ATTR_TYPE_S8, - NL_ATTR_TYPE_S16, - NL_ATTR_TYPE_S32, - NL_ATTR_TYPE_S64, - - NL_ATTR_TYPE_BINARY, - NL_ATTR_TYPE_STRING, - NL_ATTR_TYPE_NUL_STRING, - - NL_ATTR_TYPE_NESTED, - NL_ATTR_TYPE_NESTED_ARRAY, - - NL_ATTR_TYPE_BITFIELD32, -}; - -/** - * enum netlink_policy_type_attr - policy type attributes - * @NL_POLICY_TYPE_ATTR_UNSPEC: unused - * @NL_POLICY_TYPE_ATTR_TYPE: type of the attribute, - * &enum netlink_attribute_type (U32) - * @NL_POLICY_TYPE_ATTR_MIN_VALUE_S: minimum value for signed - * integers (S64) - * @NL_POLICY_TYPE_ATTR_MAX_VALUE_S: maximum value for signed - * integers (S64) - * @NL_POLICY_TYPE_ATTR_MIN_VALUE_U: minimum value for unsigned - * integers (U64) - * @NL_POLICY_TYPE_ATTR_MAX_VALUE_U: maximum value for unsigned - * integers (U64) - * @NL_POLICY_TYPE_ATTR_MIN_LENGTH: minimum length for binary - * attributes, no minimum if not given (U32) - * @NL_POLICY_TYPE_ATTR_MAX_LENGTH: maximum length for binary - * attributes, no maximum if not given (U32) - * @NL_POLICY_TYPE_ATTR_POLICY_IDX: sub policy for nested and - * nested array types (U32) - * @NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE: maximum sub policy - * attribute for nested and nested array types, this can - * in theory be < the size of the policy pointed to by - * the index, if limited inside the nesting (U32) - * @NL_POLICY_TYPE_ATTR_BITFIELD32_MASK: valid mask for the - * bitfield32 type (U32) - * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64) - * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment - */ -enum netlink_policy_type_attr { - NL_POLICY_TYPE_ATTR_UNSPEC, - NL_POLICY_TYPE_ATTR_TYPE, - NL_POLICY_TYPE_ATTR_MIN_VALUE_S, - NL_POLICY_TYPE_ATTR_MAX_VALUE_S, - NL_POLICY_TYPE_ATTR_MIN_VALUE_U, - NL_POLICY_TYPE_ATTR_MAX_VALUE_U, - NL_POLICY_TYPE_ATTR_MIN_LENGTH, - NL_POLICY_TYPE_ATTR_MAX_LENGTH, - NL_POLICY_TYPE_ATTR_POLICY_IDX, - NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE, - NL_POLICY_TYPE_ATTR_BITFIELD32_MASK, - NL_POLICY_TYPE_ATTR_PAD, - NL_POLICY_TYPE_ATTR_MASK, - - /* keep last */ - __NL_POLICY_TYPE_ATTR_MAX, - NL_POLICY_TYPE_ATTR_MAX = __NL_POLICY_TYPE_ATTR_MAX - 1 -}; - #endif /* _UAPI__LINUX_NETLINK_H */ diff --git a/original/uapi/linux/nexthop.h b/original/uapi/linux/nexthop.h index 2d4a1e7..7b61867 100644 --- a/original/uapi/linux/nexthop.h +++ b/original/uapi/linux/nexthop.h @@ -49,9 +49,6 @@ enum { NHA_GROUPS, /* flag; only return nexthop groups in dump */ NHA_MASTER, /* u32; only return nexthops with given master dev */ - NHA_FDB, /* flag; nexthop belongs to a bridge fdb */ - /* if NHA_FDB is added, OIF, BLACKHOLE, ENCAP cannot be set */ - __NHA_MAX, }; diff --git a/original/uapi/linux/nfs3.h b/original/uapi/linux/nfs3.h index c22ab77..37e4b34 100644 --- a/original/uapi/linux/nfs3.h +++ b/original/uapi/linux/nfs3.h @@ -63,12 +63,6 @@ enum nfs3_ftype { NF3BAD = 8 }; -enum nfs3_time_how { - DONT_CHANGE = 0, - SET_TO_SERVER_TIME = 1, - SET_TO_CLIENT_TIME = 2, -}; - struct nfs3_fh { unsigned short size; unsigned char data[NFS3_FHSIZE]; diff --git a/original/uapi/linux/nfs4.h b/original/uapi/linux/nfs4.h index ed5415e..8572930 100644 --- a/original/uapi/linux/nfs4.h +++ b/original/uapi/linux/nfs4.h @@ -33,9 +33,6 @@ #define NFS4_ACCESS_EXTEND 0x0008 #define NFS4_ACCESS_DELETE 0x0010 #define NFS4_ACCESS_EXECUTE 0x0020 -#define NFS4_ACCESS_XAREAD 0x0040 -#define NFS4_ACCESS_XAWRITE 0x0080 -#define NFS4_ACCESS_XALIST 0x0100 #define NFS4_FH_PERSISTENT 0x0000 #define NFS4_FH_NOEXPIRE_WITH_OPEN 0x0001 @@ -139,8 +136,6 @@ #define EXCHGID4_FLAG_UPD_CONFIRMED_REC_A 0x40000000 #define EXCHGID4_FLAG_CONFIRMED_R 0x80000000 - -#define EXCHGID4_FLAG_SUPP_FENCE_OPS 0x00000004 /* * Since the validity of these bits depends on whether * they're set in the argument or response, have separate @@ -148,7 +143,6 @@ */ #define EXCHGID4_FLAG_MASK_A 0x40070103 #define EXCHGID4_FLAG_MASK_R 0x80070103 -#define EXCHGID4_2_FLAG_MASK_R 0x80070107 #define SEQ4_STATUS_CB_PATH_DOWN 0x00000001 #define SEQ4_STATUS_CB_GSS_CONTEXTS_EXPIRING 0x00000002 diff --git a/original/uapi/linux/nfs_fs.h b/original/uapi/linux/nfs_fs.h index 3afe376..7bcc8cd 100644 --- a/original/uapi/linux/nfs_fs.h +++ b/original/uapi/linux/nfs_fs.h @@ -56,7 +56,6 @@ #define NFSDBG_PNFS 0x1000 #define NFSDBG_PNFS_LD 0x2000 #define NFSDBG_STATE 0x4000 -#define NFSDBG_XATTRCACHE 0x8000 #define NFSDBG_ALL 0xFFFF diff --git a/original/uapi/linux/nfsacl.h b/original/uapi/linux/nfsacl.h index 2c2ad20..ca9a850 100644 --- a/original/uapi/linux/nfsacl.h +++ b/original/uapi/linux/nfsacl.h @@ -9,13 +9,11 @@ #define NFS_ACL_PROGRAM 100227 -#define ACLPROC2_NULL 0 #define ACLPROC2_GETACL 1 #define ACLPROC2_SETACL 2 #define ACLPROC2_GETATTR 3 #define ACLPROC2_ACCESS 4 -#define ACLPROC3_NULL 0 #define ACLPROC3_GETACL 1 #define ACLPROC3_SETACL 2 diff --git a/original/uapi/linux/nitro_enclaves.h b/original/uapi/linux/nitro_enclaves.h deleted file mode 100644 index b945073..0000000 --- a/original/uapi/linux/nitro_enclaves.h +++ /dev/null @@ -1,359 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - */ - -#ifndef _UAPI_LINUX_NITRO_ENCLAVES_H_ -#define _UAPI_LINUX_NITRO_ENCLAVES_H_ - -#include <linux/types.h> - -/** - * DOC: Nitro Enclaves (NE) Kernel Driver Interface - */ - -/** - * NE_CREATE_VM - The command is used to create a slot that is associated with - * an enclave VM. - * The generated unique slot id is an output parameter. - * The ioctl can be invoked on the /dev/nitro_enclaves fd, before - * setting any resources, such as memory and vCPUs, for an - * enclave. Memory and vCPUs are set for the slot mapped to an enclave. - * A NE CPU pool has to be set before calling this function. The - * pool can be set after the NE driver load, using - * /sys/module/nitro_enclaves/parameters/ne_cpus. - * Its format is the detailed in the cpu-lists section: - * https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html - * CPU 0 and its siblings have to remain available for the - * primary / parent VM, so they cannot be set for enclaves. Full - * CPU core(s), from the same NUMA node, need(s) to be included - * in the CPU pool. - * - * Context: Process context. - * Return: - * * Enclave file descriptor - Enclave file descriptor used with - * ioctl calls to set vCPUs and memory - * regions, then start the enclave. - * * -1 - There was a failure in the ioctl logic. - * On failure, errno is set to: - * * EFAULT - copy_to_user() failure. - * * ENOMEM - Memory allocation failure for internal - * bookkeeping variables. - * * NE_ERR_NO_CPUS_AVAIL_IN_POOL - No NE CPU pool set / no CPUs available - * in the pool. - * * Error codes from get_unused_fd_flags() and anon_inode_getfile(). - * * Error codes from the NE PCI device request. - */ -#define NE_CREATE_VM _IOR(0xAE, 0x20, __u64) - -/** - * NE_ADD_VCPU - The command is used to set a vCPU for an enclave. The vCPU can - * be auto-chosen from the NE CPU pool or it can be set by the - * caller, with the note that it needs to be available in the NE - * CPU pool. Full CPU core(s), from the same NUMA node, need(s) to - * be associated with an enclave. - * The vCPU id is an input / output parameter. If its value is 0, - * then a CPU is chosen from the enclave CPU pool and returned via - * this parameter. - * The ioctl can be invoked on the enclave fd, before an enclave - * is started. - * - * Context: Process context. - * Return: - * * 0 - Logic succesfully completed. - * * -1 - There was a failure in the ioctl logic. - * On failure, errno is set to: - * * EFAULT - copy_from_user() / copy_to_user() failure. - * * ENOMEM - Memory allocation failure for internal - * bookkeeping variables. - * * EIO - Current task mm is not the same as the one - * that created the enclave. - * * NE_ERR_NO_CPUS_AVAIL_IN_POOL - No CPUs available in the NE CPU pool. - * * NE_ERR_VCPU_ALREADY_USED - The provided vCPU is already used. - * * NE_ERR_VCPU_NOT_IN_CPU_POOL - The provided vCPU is not available in the - * NE CPU pool. - * * NE_ERR_VCPU_INVALID_CPU_CORE - The core id of the provided vCPU is invalid - * or out of range. - * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state - * (init = before being started). - * * NE_ERR_INVALID_VCPU - The provided vCPU is not in the available - * CPUs range. - * * Error codes from the NE PCI device request. - */ -#define NE_ADD_VCPU _IOWR(0xAE, 0x21, __u32) - -/** - * NE_GET_IMAGE_LOAD_INFO - The command is used to get information needed for - * in-memory enclave image loading e.g. offset in - * enclave memory to start placing the enclave image. - * The image load info is an input / output parameter. - * It includes info provided by the caller - flags - - * and returns the offset in enclave memory where to - * start placing the enclave image. - * The ioctl can be invoked on the enclave fd, before - * an enclave is started. - * - * Context: Process context. - * Return: - * * 0 - Logic succesfully completed. - * * -1 - There was a failure in the ioctl logic. - * On failure, errno is set to: - * * EFAULT - copy_from_user() / copy_to_user() failure. - * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state (init = - * before being started). - * * NE_ERR_INVALID_FLAG_VALUE - The value of the provided flag is invalid. - */ -#define NE_GET_IMAGE_LOAD_INFO _IOWR(0xAE, 0x22, struct ne_image_load_info) - -/** - * NE_SET_USER_MEMORY_REGION - The command is used to set a memory region for an - * enclave, given the allocated memory from the - * userspace. Enclave memory needs to be from the - * same NUMA node as the enclave CPUs. - * The user memory region is an input parameter. It - * includes info provided by the caller - flags, - * memory size and userspace address. - * The ioctl can be invoked on the enclave fd, - * before an enclave is started. - * - * Context: Process context. - * Return: - * * 0 - Logic succesfully completed. - * * -1 - There was a failure in the ioctl logic. - * On failure, errno is set to: - * * EFAULT - copy_from_user() failure. - * * EINVAL - Invalid physical memory region(s) e.g. - * unaligned address. - * * EIO - Current task mm is not the same as - * the one that created the enclave. - * * ENOMEM - Memory allocation failure for internal - * bookkeeping variables. - * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state - * (init = before being started). - * * NE_ERR_INVALID_MEM_REGION_SIZE - The memory size of the region is not - * multiple of 2 MiB. - * * NE_ERR_INVALID_MEM_REGION_ADDR - Invalid user space address given. - * * NE_ERR_UNALIGNED_MEM_REGION_ADDR - Unaligned user space address given. - * * NE_ERR_MEM_REGION_ALREADY_USED - The memory region is already used. - * * NE_ERR_MEM_NOT_HUGE_PAGE - The memory region is not backed by - * huge pages. - * * NE_ERR_MEM_DIFFERENT_NUMA_NODE - The memory region is not from the same - * NUMA node as the CPUs. - * * NE_ERR_MEM_MAX_REGIONS - The number of memory regions set for - * the enclave reached maximum. - * * NE_ERR_INVALID_PAGE_SIZE - The memory region is not backed by - * pages multiple of 2 MiB. - * * NE_ERR_INVALID_FLAG_VALUE - The value of the provided flag is invalid. - * * Error codes from get_user_pages(). - * * Error codes from the NE PCI device request. - */ -#define NE_SET_USER_MEMORY_REGION _IOW(0xAE, 0x23, struct ne_user_memory_region) - -/** - * NE_START_ENCLAVE - The command is used to trigger enclave start after the - * enclave resources, such as memory and CPU, have been set. - * The enclave start info is an input / output parameter. It - * includes info provided by the caller - enclave cid and - * flags - and returns the cid (if input cid is 0). - * The ioctl can be invoked on the enclave fd, after an - * enclave slot is created and resources, such as memory and - * vCPUs are set for an enclave. - * - * Context: Process context. - * Return: - * * 0 - Logic succesfully completed. - * * -1 - There was a failure in the ioctl logic. - * On failure, errno is set to: - * * EFAULT - copy_from_user() / copy_to_user() failure. - * * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state - * (init = before being started). - * * NE_ERR_NO_MEM_REGIONS_ADDED - No memory regions are set. - * * NE_ERR_NO_VCPUS_ADDED - No vCPUs are set. - * * NE_ERR_FULL_CORES_NOT_USED - Full core(s) not set for the enclave. - * * NE_ERR_ENCLAVE_MEM_MIN_SIZE - Enclave memory is less than minimum - * memory size (64 MiB). - * * NE_ERR_INVALID_FLAG_VALUE - The value of the provided flag is invalid. - * * NE_ERR_INVALID_ENCLAVE_CID - The provided enclave CID is invalid. - * * Error codes from the NE PCI device request. - */ -#define NE_START_ENCLAVE _IOWR(0xAE, 0x24, struct ne_enclave_start_info) - -/** - * DOC: NE specific error codes - */ - -/** - * NE_ERR_VCPU_ALREADY_USED - The provided vCPU is already used. - */ -#define NE_ERR_VCPU_ALREADY_USED (256) -/** - * NE_ERR_VCPU_NOT_IN_CPU_POOL - The provided vCPU is not available in the - * NE CPU pool. - */ -#define NE_ERR_VCPU_NOT_IN_CPU_POOL (257) -/** - * NE_ERR_VCPU_INVALID_CPU_CORE - The core id of the provided vCPU is invalid - * or out of range of the NE CPU pool. - */ -#define NE_ERR_VCPU_INVALID_CPU_CORE (258) -/** - * NE_ERR_INVALID_MEM_REGION_SIZE - The user space memory region size is not - * multiple of 2 MiB. - */ -#define NE_ERR_INVALID_MEM_REGION_SIZE (259) -/** - * NE_ERR_INVALID_MEM_REGION_ADDR - The user space memory region address range - * is invalid. - */ -#define NE_ERR_INVALID_MEM_REGION_ADDR (260) -/** - * NE_ERR_UNALIGNED_MEM_REGION_ADDR - The user space memory region address is - * not aligned. - */ -#define NE_ERR_UNALIGNED_MEM_REGION_ADDR (261) -/** - * NE_ERR_MEM_REGION_ALREADY_USED - The user space memory region is already used. - */ -#define NE_ERR_MEM_REGION_ALREADY_USED (262) -/** - * NE_ERR_MEM_NOT_HUGE_PAGE - The user space memory region is not backed by - * contiguous physical huge page(s). - */ -#define NE_ERR_MEM_NOT_HUGE_PAGE (263) -/** - * NE_ERR_MEM_DIFFERENT_NUMA_NODE - The user space memory region is backed by - * pages from different NUMA nodes than the CPUs. - */ -#define NE_ERR_MEM_DIFFERENT_NUMA_NODE (264) -/** - * NE_ERR_MEM_MAX_REGIONS - The supported max memory regions per enclaves has - * been reached. - */ -#define NE_ERR_MEM_MAX_REGIONS (265) -/** - * NE_ERR_NO_MEM_REGIONS_ADDED - The command to start an enclave is triggered - * and no memory regions are added. - */ -#define NE_ERR_NO_MEM_REGIONS_ADDED (266) -/** - * NE_ERR_NO_VCPUS_ADDED - The command to start an enclave is triggered and no - * vCPUs are added. - */ -#define NE_ERR_NO_VCPUS_ADDED (267) -/** - * NE_ERR_ENCLAVE_MEM_MIN_SIZE - The enclave memory size is lower than the - * minimum supported. - */ -#define NE_ERR_ENCLAVE_MEM_MIN_SIZE (268) -/** - * NE_ERR_FULL_CORES_NOT_USED - The command to start an enclave is triggered and - * full CPU cores are not set. - */ -#define NE_ERR_FULL_CORES_NOT_USED (269) -/** - * NE_ERR_NOT_IN_INIT_STATE - The enclave is not in init state when setting - * resources or triggering start. - */ -#define NE_ERR_NOT_IN_INIT_STATE (270) -/** - * NE_ERR_INVALID_VCPU - The provided vCPU is out of range of the available CPUs. - */ -#define NE_ERR_INVALID_VCPU (271) -/** - * NE_ERR_NO_CPUS_AVAIL_IN_POOL - The command to create an enclave is triggered - * and no CPUs are available in the pool. - */ -#define NE_ERR_NO_CPUS_AVAIL_IN_POOL (272) -/** - * NE_ERR_INVALID_PAGE_SIZE - The user space memory region is not backed by pages - * multiple of 2 MiB. - */ -#define NE_ERR_INVALID_PAGE_SIZE (273) -/** - * NE_ERR_INVALID_FLAG_VALUE - The provided flag value is invalid. - */ -#define NE_ERR_INVALID_FLAG_VALUE (274) -/** - * NE_ERR_INVALID_ENCLAVE_CID - The provided enclave CID is invalid, either - * being a well-known value or the CID of the - * parent / primary VM. - */ -#define NE_ERR_INVALID_ENCLAVE_CID (275) - -/** - * DOC: Image load info flags - */ - -/** - * NE_EIF_IMAGE - Enclave Image Format (EIF) - */ -#define NE_EIF_IMAGE (0x01) - -#define NE_IMAGE_LOAD_MAX_FLAG_VAL (0x02) - -/** - * struct ne_image_load_info - Info necessary for in-memory enclave image - * loading (in / out). - * @flags: Flags to determine the enclave image type - * (e.g. Enclave Image Format - EIF) (in). - * @memory_offset: Offset in enclave memory where to start placing the - * enclave image (out). - */ -struct ne_image_load_info { - __u64 flags; - __u64 memory_offset; -}; - -/** - * DOC: User memory region flags - */ - -/** - * NE_DEFAULT_MEMORY_REGION - Memory region for enclave general usage. - */ -#define NE_DEFAULT_MEMORY_REGION (0x00) - -#define NE_MEMORY_REGION_MAX_FLAG_VAL (0x01) - -/** - * struct ne_user_memory_region - Memory region to be set for an enclave (in). - * @flags: Flags to determine the usage for the memory region (in). - * @memory_size: The size, in bytes, of the memory region to be set for - * an enclave (in). - * @userspace_addr: The start address of the userspace allocated memory of - * the memory region to set for an enclave (in). - */ -struct ne_user_memory_region { - __u64 flags; - __u64 memory_size; - __u64 userspace_addr; -}; - -/** - * DOC: Enclave start info flags - */ - -/** - * NE_ENCLAVE_PRODUCTION_MODE - Start enclave in production mode. - */ -#define NE_ENCLAVE_PRODUCTION_MODE (0x00) -/** - * NE_ENCLAVE_DEBUG_MODE - Start enclave in debug mode. - */ -#define NE_ENCLAVE_DEBUG_MODE (0x01) - -#define NE_ENCLAVE_START_MAX_FLAG_VAL (0x02) - -/** - * struct ne_enclave_start_info - Setup info necessary for enclave start (in / out). - * @flags: Flags for the enclave to start with (e.g. debug mode) (in). - * @enclave_cid: Context ID (CID) for the enclave vsock device. If 0 as - * input, the CID is autogenerated by the hypervisor and - * returned back as output by the driver (in / out). - */ -struct ne_enclave_start_info { - __u64 flags; - __u64 enclave_cid; -}; - -#endif /* _UAPI_LINUX_NITRO_ENCLAVES_H_ */ diff --git a/original/uapi/linux/nl80211.h b/original/uapi/linux/nl80211.h index ac78da9..5eab191 100644 --- a/original/uapi/linux/nl80211.h +++ b/original/uapi/linux/nl80211.h @@ -11,7 +11,7 @@ * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> * Copyright 2008 Colin McCabe <colin@cozybit.com> * Copyright 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2020 Intel Corporation + * Copyright (C) 2018-2019 Intel Corporation * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -183,27 +183,18 @@ * * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag drivers * can indicate they support offloading EAPOL handshakes for WPA/WPA2 - * preshared key authentication in station mode. In %NL80211_CMD_CONNECT - * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers - * supporting this offload may reject the %NL80211_CMD_CONNECT when no - * preshared key material is provided, for example when that driver does - * not support setting the temporal keys through %NL80211_CMD_NEW_KEY. + * preshared key authentication. In %NL80211_CMD_CONNECT the preshared + * key should be specified using %NL80211_ATTR_PMK. Drivers supporting + * this offload may reject the %NL80211_CMD_CONNECT when no preshared + * key material is provided, for example when that driver does not + * support setting the temporal keys through %CMD_NEW_KEY. * * Similarly @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X flag can be * set by drivers indicating offload support of the PTK/GTK EAPOL - * handshakes during 802.1X authentication in station mode. In order to - * use the offload the %NL80211_CMD_CONNECT should have - * %NL80211_ATTR_WANT_1X_4WAY_HS attribute flag. Drivers supporting this - * offload may reject the %NL80211_CMD_CONNECT when the attribute flag is - * not present. - * - * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK flag drivers - * can indicate they support offloading EAPOL handshakes for WPA/WPA2 - * preshared key authentication in AP mode. In %NL80211_CMD_START_AP - * the preshared key should be specified using %NL80211_ATTR_PMK. Drivers - * supporting this offload may reject the %NL80211_CMD_START_AP when no - * preshared key material is provided, for example when that driver does - * not support setting the temporal keys through %NL80211_CMD_NEW_KEY. + * handshakes during 802.1X authentication. In order to use the offload + * the %NL80211_CMD_CONNECT should have %NL80211_ATTR_WANT_1X_4WAY_HS + * attribute flag. Drivers supporting this offload may reject the + * %NL80211_CMD_CONNECT when the attribute flag is not present. * * For 802.1X the PMK or PMK-R0 are set by providing %NL80211_ATTR_PMK * using %NL80211_CMD_SET_PMK. For offloaded FT support also @@ -252,13 +243,9 @@ * DOC: SAE authentication offload * * By setting @NL80211_EXT_FEATURE_SAE_OFFLOAD flag drivers can indicate they - * support offloading SAE authentication for WPA3-Personal networks in station - * mode. Similarly @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP flag can be set by - * drivers indicating the offload support in AP mode. - * - * The password for SAE should be specified using %NL80211_ATTR_SAE_PASSWORD in - * %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP for station and AP mode - * respectively. + * support offloading SAE authentication for WPA3-Personal networks. In + * %NL80211_CMD_CONNECT the password for SAE should be specified using + * %NL80211_ATTR_SAE_PASSWORD. */ /** @@ -278,29 +265,6 @@ */ /** - * DOC: TID configuration - * - * TID config support can be checked in the %NL80211_ATTR_TID_CONFIG - * attribute given in wiphy capabilities. - * - * The necessary configuration parameters are mentioned in - * &enum nl80211_tid_config_attr and it will be passed to the - * %NL80211_CMD_SET_TID_CONFIG command in %NL80211_ATTR_TID_CONFIG. - * - * If the configuration needs to be applied for specific peer then the MAC - * address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the - * configuration will be applied for all the connected peers in the vif except - * any peers that have peer specific configuration for the TID by default; if - * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values - * will be overwritten. - * - * All this configuration is valid only for STA's current connection - * i.e. the configuration will be reset to default when the STA connects back - * after disconnection/roaming, and this configuration will be cleared when - * the interface goes down. - */ - -/** * enum nl80211_commands - supported nl80211 commands * * @NL80211_CMD_UNSPEC: unspecified command to catch errors @@ -309,14 +273,13 @@ * to get a list of all present wiphys. * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, - * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, - * %NL80211_ATTR_WIPHY_FREQ_OFFSET (and the attributes determining the - * channel width; this is used for setting monitor mode channel), - * %NL80211_ATTR_WIPHY_RETRY_SHORT, %NL80211_ATTR_WIPHY_RETRY_LONG, - * %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, and/or - * %NL80211_ATTR_WIPHY_RTS_THRESHOLD. However, for setting the channel, - * see %NL80211_CMD_SET_CHANNEL instead, the support here is for backward - * compatibility only. + * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the + * attributes determining the channel width; this is used for setting + * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT, + * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, + * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. + * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL + * instead, the support here is for backward compatibility only. * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request * or rename notification. Has attributes %NL80211_ATTR_WIPHY and * %NL80211_ATTR_WIPHY_NAME. @@ -365,8 +328,7 @@ * %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT, * %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS. * The channel to use can be set on the interface or be given using the - * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_FREQ_OFFSET, and the - * attributes determining channel width. + * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width. * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP @@ -376,7 +338,7 @@ * @NL80211_CMD_SET_STATION: Set station attributes for station identified by * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the - * interface identified by %NL80211_ATTR_IFINDEX. + * the interface identified by %NL80211_ATTR_IFINDEX. * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC * or, if no MAC address given, all stations, on the interface identified * by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and @@ -396,7 +358,7 @@ * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by * %NL80211_ATTR_MAC. * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the - * interface identified by %NL80211_ATTR_IFINDEX. + * the interface identified by %NL80211_ATTR_IFINDEX. * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC * or, if no MAC address given, all mesh paths, on the interface identified * by %NL80211_ATTR_IFINDEX. @@ -551,12 +513,11 @@ * interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and * BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify * the SSID (mainly for association, but is included in authentication - * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ + - * %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequence of the - * channel in MHz. %NL80211_ATTR_AUTH_TYPE is used to specify the - * authentication type. %NL80211_ATTR_IE is used to define IEs - * (VendorSpecificInfo, but also including RSN IE and FT IEs) to be added - * to the frame. + * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used + * to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE + * is used to specify the authentication type. %NL80211_ATTR_IE is used to + * define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs) + * to be added to the frame. * When used as an event, this reports reception of an Authentication * frame in station and IBSS modes when the local MLME processed the * frame, i.e., it was for the local STA and was received in correct @@ -611,9 +572,8 @@ * requests to connect to a specified network but without separating * auth and assoc steps. For this, you need to specify the SSID in a * %NL80211_ATTR_SSID attribute, and can optionally specify the association - * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, - * %NL80211_ATTR_USE_MFP, %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, - * %NL80211_ATTR_WIPHY_FREQ_OFFSET, %NL80211_ATTR_CONTROL_PORT, + * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP, + * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, * %NL80211_ATTR_CONTROL_PORT_OVER_NL80211, %NL80211_ATTR_MAC_HINT, and @@ -651,9 +611,13 @@ * authentication/association or not receiving a response from the AP. * Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as * well to remain backwards compatible. + * When establishing a security association, drivers that support 4 way + * handshake offload should send %NL80211_CMD_PORT_AUTHORIZED event when + * the 4 way handshake is completed successfully. * @NL80211_CMD_ROAM: Notification indicating the card/driver roamed by itself. - * When a security association was established on an 802.1X network using - * fast transition, this event should be followed by an + * When a security association was established with the new AP (e.g. if + * the FT protocol was used for roaming or the driver completed the 4 way + * handshake), this event should be followed by an * %NL80211_CMD_PORT_AUTHORIZED event. * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify * userspace that a connection was dropped by the AP or due to other @@ -700,10 +664,6 @@ * four bytes for vendor frames including the OUI. The registration * cannot be dropped, but is removed automatically when the netlink * socket is closed. Multiple registrations can be made. - * The %NL80211_ATTR_RECEIVE_MULTICAST flag attribute can be given if - * %NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS is available, in which - * case the registration can also be modified to include/exclude the - * flag, rather than requiring unregistration to change it. * @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for * backward compatibility * @NL80211_CMD_FRAME: Management frame TX request and RX notification. This @@ -757,8 +717,7 @@ * of any other interfaces, and other interfaces will again take * precedence when they are used. * - * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface - * (no longer supported). + * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface. * * @NL80211_CMD_SET_MULTICAST_TO_UNICAST: Configure if this AP should perform * multicast to unicast conversion. When enabled, all multicast packets @@ -804,7 +763,7 @@ * various triggers. These triggers can be configured through this * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For * more background information, see - * https://wireless.wiki.kernel.org/en/users/Documentation/WoWLAN. + * http://wireless.kernel.org/en/users/Documentation/WoWLAN. * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification * from the driver reporting the wakeup reason. In this case, the * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason @@ -944,7 +903,7 @@ * @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules. * * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the - * new channel information (Channel Switch Announcement - CSA) + * the new channel information (Channel Switch Announcement - CSA) * in the beacon for some time (as defined in the * %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the * new channel. Userspace provides the new channel information (using @@ -1068,11 +1027,13 @@ * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously * configured PMK for the authenticator address identified by * %NL80211_ATTR_MAC. - * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was - * completed successfully. Drivers that support 4 way handshake offload - * should send this event after indicating 802.1X FT assocation with - * %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT - * should be indicated instead. + * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates that the 4 way + * handshake was completed successfully by the driver. The BSSID is + * specified with %NL80211_ATTR_MAC. Drivers that support 4 way handshake + * offload should send this event after indicating 802.11 association with + * %NL80211_CMD_CONNECT or %NL80211_CMD_ROAM. If the 4 way handshake failed + * %NL80211_CMD_DISCONNECT should be indicated instead. + * * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request * and RX notification. This command is used both as a request to transmit * a control port frame and as a notification that a control port frame @@ -1121,7 +1082,7 @@ * randomization may be enabled and configured by specifying the * %NL80211_ATTR_MAC and %NL80211_ATTR_MAC_MASK attributes. * If a timeout is requested, use the %NL80211_ATTR_TIMEOUT attribute. - * A u64 cookie for further %NL80211_ATTR_COOKIE use is returned in + * A u64 cookie for further %NL80211_ATTR_COOKIE use is is returned in * the netlink extended ack message. * * To cancel a measurement, close the socket that requested it. @@ -1164,24 +1125,6 @@ * peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame * content. The frame is ethernet data. * - * @NL80211_CMD_SET_TID_CONFIG: Data frame TID specific configuration - * is passed using %NL80211_ATTR_TID_CONFIG attribute. - * - * @NL80211_CMD_UNPROT_BEACON: Unprotected or incorrectly protected Beacon - * frame. This event is used to indicate that a received Beacon frame was - * dropped because it did not include a valid MME MIC while beacon - * protection was enabled (BIGTK configured in station mode). - * - * @NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS: Report TX status of a control - * port frame transmitted with %NL80211_CMD_CONTROL_PORT_FRAME. - * %NL80211_ATTR_COOKIE identifies the TX command and %NL80211_ATTR_FRAME - * includes the contents of the frame. %NL80211_ATTR_ACK flag is included - * if the recipient acknowledged the frame. - * - * @NL80211_CMD_SET_SAR_SPECS: SAR power limitation configuration is - * passed using %NL80211_ATTR_SAR_SPEC. %NL80211_ATTR_WIPHY is used to - * specify the wiphy index to be applied to. - * * @NL80211_CMD_MAX: highest used command number * @__NL80211_CMD_AFTER_LAST: internal use */ @@ -1406,14 +1349,6 @@ enum nl80211_commands { NL80211_CMD_PROBE_MESH_LINK, - NL80211_CMD_SET_TID_CONFIG, - - NL80211_CMD_UNPROT_BEACON, - - NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS, - - NL80211_CMD_SET_SAR_SPECS, - /* add new commands above here */ /* used to define NL80211_CMD_MAX below */ @@ -1459,8 +1394,7 @@ enum nl80211_commands { * of &enum nl80211_chan_width, describing the channel width. See the * documentation of the enum for more information. * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the - * channel, used for anything but 20 MHz bandwidth. In S1G this is the - * operating channel center frequency. + * channel, used for anything but 20 MHz bandwidth * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the * channel, used only for 80+80 MHz bandwidth * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ @@ -1525,7 +1459,7 @@ enum nl80211_commands { * rates as defined by IEEE 802.11 7.3.2.2 but without the length * restriction (at most %NL80211_MAX_SUPP_RATES). * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station - * to, or the AP interface the station was originally added to. + * to, or the AP interface the station was originally added to to. * @NL80211_ATTR_STA_INFO: information about a station, part of station info * given for %NL80211_CMD_GET_STATION, nested attribute containing * info as possible, see &enum nl80211_sta_info. @@ -1670,8 +1604,7 @@ enum nl80211_commands { * flag is included, then control port frames are sent over NL80211 instead * using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is * to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER - * flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth - * frames are not forwared over the control port. + * flag. * * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver. * We recommend using nested, driver-specific attributes within this. @@ -1757,9 +1690,8 @@ enum nl80211_commands { * specify just a single bitrate, which is to be used for the beacon. * The driver must also specify support for this with the extended * features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, - * NL80211_EXT_FEATURE_BEACON_RATE_HT, - * NL80211_EXT_FEATURE_BEACON_RATE_VHT and - * NL80211_EXT_FEATURE_BEACON_RATE_HE. + * NL80211_EXT_FEATURE_BEACON_RATE_HT and + * NL80211_EXT_FEATURE_BEACON_RATE_VHT. * * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. @@ -1963,15 +1895,8 @@ enum nl80211_commands { * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire * probe-response frame. The DA field in the 802.11 header is zero-ed out, * to be filled by the FW. - * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable - * this feature during association. This is a flag attribute. - * Currently only supported in mac80211 drivers. - * @NL80211_ATTR_DISABLE_VHT: Force VHT capable interfaces to disable - * this feature during association. This is a flag attribute. - * Currently only supported in mac80211 drivers. - * @NL80211_ATTR_DISABLE_HE: Force HE capable interfaces to disable - * this feature during association. This is a flag attribute. - * Currently only supported in mac80211 drivers. + * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable + * this feature. Currently, only supported in mac80211 drivers. * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the * ATTR_HT_CAPABILITY to which attention should be paid. * Currently, only mac80211 NICs support this feature. @@ -2092,14 +2017,13 @@ enum nl80211_commands { * until the channel switch event. * @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission * must be blocked on the current channel (before the channel switch - * operation). Also included in the channel switch started event if quiet - * was requested by the AP. + * operation). * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information * for the time while performing a channel switch. - * @NL80211_ATTR_CNTDWN_OFFS_BEACON: An array of offsets (u16) to the channel - * switch or color change counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL). - * @NL80211_ATTR_CNTDWN_OFFS_PRESP: An array of offsets (u16) to the channel - * switch or color change counters in the probe response (%NL80211_ATTR_PROBE_RESP). + * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel + * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL). + * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel + * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP). * * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32. * As specified in the &enum nl80211_rxmgmt_flags. @@ -2107,7 +2031,7 @@ enum nl80211_commands { * @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels. * * @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported - * operating classes. + * supported operating classes. * * @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space * controls DFS operation in IBSS mode. If the flag is included in @@ -2385,11 +2309,10 @@ enum nl80211_commands { * * @NL80211_ATTR_PMK: attribute for passing PMK key material. Used with * %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID. - * For %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP it is used to provide - * PSK for offloading 4-way handshake for WPA/WPA2-PSK networks. For 802.1X - * authentication it is used with %NL80211_CMD_SET_PMK. For offloaded FT - * support this attribute specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME - * is included as well. + * For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way + * handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is + * used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute + * specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well. * * @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to * indicate that it supports multiple active scheduled scan requests. @@ -2419,7 +2342,7 @@ enum nl80211_commands { * nl80211_txq_stats) * @NL80211_ATTR_TXQ_LIMIT: Total packet limit for the TXQ queues for this phy. * The smaller of this and the memory limit is enforced. - * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory limit (in bytes) for the + * @NL80211_ATTR_TXQ_MEMORY_LIMIT: Total memory memory limit (in bytes) for the * TXQ queues for this phy. The smaller of this and the packet limit is * enforced. * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes @@ -2477,86 +2400,6 @@ enum nl80211_commands { * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key * (u16). * - * @NL80211_ATTR_HE_BSS_COLOR: nested attribute for BSS Color Settings. - * - * @NL80211_ATTR_IFTYPE_AKM_SUITES: nested array attribute, with each entry - * using attributes from &enum nl80211_iftype_akm_attributes. This - * attribute is sent in a response to %NL80211_CMD_GET_WIPHY indicating - * supported AKM suites capability per interface. AKMs advertised in - * %NL80211_ATTR_AKM_SUITES are default capabilities if AKM suites not - * advertised for a specific interface type. - * - * @NL80211_ATTR_TID_CONFIG: TID specific configuration in a - * nested attribute with &enum nl80211_tid_config_attr sub-attributes; - * on output (in wiphy attributes) it contains only the feature sub- - * attributes. - * - * @NL80211_ATTR_CONTROL_PORT_NO_PREAUTH: disable preauth frame rx on control - * port in order to forward/receive them as ordinary data frames. - * - * @NL80211_ATTR_PMK_LIFETIME: Maximum lifetime for PMKSA in seconds (u32, - * dot11RSNAConfigPMKReauthThreshold; 0 is not a valid value). - * An optional parameter configured through %NL80211_CMD_SET_PMKSA. - * Drivers that trigger roaming need to know the lifetime of the - * configured PMKSA for triggering the full vs. PMKSA caching based - * authentication. This timeout helps authentication methods like SAE, - * where PMK gets updated only by going through a full (new SAE) - * authentication instead of getting updated during an association for EAP - * authentication. No new full authentication within the PMK expiry shall - * result in a disassociation at the end of the lifetime. - * - * @NL80211_ATTR_PMK_REAUTH_THRESHOLD: Reauthentication threshold time, in - * terms of percentage of %NL80211_ATTR_PMK_LIFETIME - * (u8, dot11RSNAConfigPMKReauthThreshold, 1..100). This is an optional - * parameter configured through %NL80211_CMD_SET_PMKSA. Requests the - * driver to trigger a full authentication roam (without PMKSA caching) - * after the reauthentication threshold time, but before the PMK lifetime - * has expired. - * - * Authentication methods like SAE need to be able to generate a new PMKSA - * entry without having to force a disconnection after the PMK timeout. If - * no roaming occurs between the reauth threshold and PMK expiration, - * disassociation is still forced. - * @NL80211_ATTR_RECEIVE_MULTICAST: multicast flag for the - * %NL80211_CMD_REGISTER_FRAME command, see the description there. - * @NL80211_ATTR_WIPHY_FREQ_OFFSET: offset of the associated - * %NL80211_ATTR_WIPHY_FREQ in positive KHz. Only valid when supplied with - * an %NL80211_ATTR_WIPHY_FREQ_OFFSET. - * @NL80211_ATTR_CENTER_FREQ1_OFFSET: Center frequency offset in KHz for the - * first channel segment specified in %NL80211_ATTR_CENTER_FREQ1. - * @NL80211_ATTR_SCAN_FREQ_KHZ: nested attribute with KHz frequencies - * - * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from - * association request when used with NL80211_CMD_NEW_STATION). - * - * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS - * discovery. It is a nested attribute, see - * &enum nl80211_fils_discovery_attributes. - * - * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure - * unsolicited broadcast probe response. It is a nested attribute, see - * &enum nl80211_unsol_bcast_probe_resp_attributes. - * - * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from - * association request when used with NL80211_CMD_NEW_STATION) - * @NL80211_ATTR_S1G_CAPABILITY_MASK: S1G Capability Information element - * override mask. Used with NL80211_ATTR_S1G_CAPABILITY in - * NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT. - * - * @NL80211_ATTR_SAE_PWE: Indicates the mechanism(s) allowed for SAE PWE - * derivation in WPA3-Personal networks which are using SAE authentication. - * This is a u8 attribute that encapsulates one of the values from - * &enum nl80211_sae_pwe_mechanism. - * - * @NL80211_ATTR_SAR_SPEC: SAR power limitation specification when - * used with %NL80211_CMD_SET_SAR_SPECS. The message contains fields - * of %nl80211_sar_attrs which specifies the sar type and related - * sar specs. Sar specs contains array of %nl80211_sar_specs_attrs. - * - * @NL80211_ATTR_RECONNECT_REQUESTED: flag attribute, used with deauth and - * disassoc events to indicate that an immediate reconnect to the AP - * is desired. - * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use @@ -2863,8 +2706,8 @@ enum nl80211_attrs { NL80211_ATTR_CH_SWITCH_COUNT, NL80211_ATTR_CH_SWITCH_BLOCK_TX, NL80211_ATTR_CSA_IES, - NL80211_ATTR_CNTDWN_OFFS_BEACON, - NL80211_ATTR_CNTDWN_OFFS_PRESP, + NL80211_ATTR_CSA_C_OFF_BEACON, + NL80211_ATTR_CSA_C_OFF_PRESP, NL80211_ATTR_RXMGMT_FLAGS, @@ -3021,39 +2864,6 @@ enum nl80211_attrs { NL80211_ATTR_VLAN_ID, - NL80211_ATTR_HE_BSS_COLOR, - - NL80211_ATTR_IFTYPE_AKM_SUITES, - - NL80211_ATTR_TID_CONFIG, - - NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, - - NL80211_ATTR_PMK_LIFETIME, - NL80211_ATTR_PMK_REAUTH_THRESHOLD, - - NL80211_ATTR_RECEIVE_MULTICAST, - NL80211_ATTR_WIPHY_FREQ_OFFSET, - NL80211_ATTR_CENTER_FREQ1_OFFSET, - NL80211_ATTR_SCAN_FREQ_KHZ, - - NL80211_ATTR_HE_6GHZ_CAPABILITY, - - NL80211_ATTR_FILS_DISCOVERY, - - NL80211_ATTR_UNSOL_BCAST_PROBE_RESP, - - NL80211_ATTR_S1G_CAPABILITY, - NL80211_ATTR_S1G_CAPABILITY_MASK, - - NL80211_ATTR_SAE_PWE, - - NL80211_ATTR_RECONNECT_REQUESTED, - - NL80211_ATTR_SAR_SPEC, - - NL80211_ATTR_DISABLE_HE, - /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, @@ -3066,8 +2876,6 @@ enum nl80211_attrs { #define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA -#define NL80211_ATTR_CSA_C_OFF_BEACON NL80211_ATTR_CNTDWN_OFFS_BEACON -#define NL80211_ATTR_CSA_C_OFF_PRESP NL80211_ATTR_CNTDWN_OFFS_PRESP /* * Allow user space programs to use #ifdef on new attributes by defining them @@ -3246,18 +3054,6 @@ enum nl80211_he_gi { }; /** - * enum nl80211_he_ltf - HE long training field - * @NL80211_RATE_INFO_HE_1xLTF: 3.2 usec - * @NL80211_RATE_INFO_HE_2xLTF: 6.4 usec - * @NL80211_RATE_INFO_HE_4xLTF: 12.8 usec - */ -enum nl80211_he_ltf { - NL80211_RATE_INFO_HE_1XLTF, - NL80211_RATE_INFO_HE_2XLTF, - NL80211_RATE_INFO_HE_4XLTF, -}; - -/** * enum nl80211_he_ru_alloc - HE RU allocation values * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation * @NL80211_RATE_INFO_HE_RU_ALLOC_52: 52-tone RU allocation @@ -3451,8 +3247,6 @@ enum nl80211_sta_bss_param { * @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station * @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds) * of STA's association - * @NL80211_STA_INFO_CONNECTED_TO_AS: set to true if STA has a path to a - * authentication server (u8, 0 or 1) * @__NL80211_STA_INFO_AFTER_LAST: internal * @NL80211_STA_INFO_MAX: highest possible station info attribute */ @@ -3500,7 +3294,6 @@ enum nl80211_sta_info { NL80211_STA_INFO_AIRTIME_WEIGHT, NL80211_STA_INFO_AIRTIME_LINK_METRIC, NL80211_STA_INFO_ASSOC_AT_BOOTTIME, - NL80211_STA_INFO_CONNECTED_TO_AS, /* keep last */ __NL80211_STA_INFO_AFTER_LAST, @@ -3649,8 +3442,6 @@ enum nl80211_mpath_info { * defined in HE capabilities IE * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently * defined - * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16), - * given for all 6 GHz band channels * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use */ enum nl80211_band_iftype_attr { @@ -3661,7 +3452,6 @@ enum nl80211_band_iftype_attr { NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY, NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, - NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, /* keep last */ __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, @@ -3793,19 +3583,6 @@ enum nl80211_wmm_rule { * @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations. * This is a nested attribute that contains the wmm limitation per AC. * (see &enum nl80211_wmm_rule) - * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel - * in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_OFFSET: frequency offset in KHz - * @NL80211_FREQUENCY_ATTR_1MHZ: 1 MHz operation is allowed - * on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_2MHZ: 2 MHz operation is allowed - * on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_4MHZ: 4 MHz operation is allowed - * on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_8MHZ: 8 MHz operation is allowed - * on this channel in current regulatory domain. - * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed - * on this channel in current regulatory domain. * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number * currently defined * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use @@ -3835,13 +3612,6 @@ enum nl80211_frequency_attr { NL80211_FREQUENCY_ATTR_NO_20MHZ, NL80211_FREQUENCY_ATTR_NO_10MHZ, NL80211_FREQUENCY_ATTR_WMM, - NL80211_FREQUENCY_ATTR_NO_HE, - NL80211_FREQUENCY_ATTR_OFFSET, - NL80211_FREQUENCY_ATTR_1MHZ, - NL80211_FREQUENCY_ATTR_2MHZ, - NL80211_FREQUENCY_ATTR_4MHZ, - NL80211_FREQUENCY_ATTR_8MHZ, - NL80211_FREQUENCY_ATTR_16MHZ, /* keep last */ __NL80211_FREQUENCY_ATTR_AFTER_LAST, @@ -4039,7 +3809,6 @@ enum nl80211_sched_scan_match_attr { * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed - * @NL80211_RRF_NO_HE: HE operation not allowed */ enum nl80211_reg_rule_flags { NL80211_RRF_NO_OFDM = 1<<0, @@ -4057,7 +3826,6 @@ enum nl80211_reg_rule_flags { NL80211_RRF_NO_HT40PLUS = 1<<14, NL80211_RRF_NO_80MHZ = 1<<15, NL80211_RRF_NO_160MHZ = 1<<16, - NL80211_RRF_NO_HE = 1<<17, }; #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR @@ -4135,7 +3903,6 @@ enum nl80211_user_reg_hint_type { * receiving frames destined to the local BSS * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number * currently defined - * @NL80211_SURVEY_INFO_FREQUENCY_OFFSET: center frequency offset in KHz * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use */ enum nl80211_survey_info { @@ -4151,7 +3918,6 @@ enum nl80211_survey_info { NL80211_SURVEY_INFO_TIME_SCAN, NL80211_SURVEY_INFO_PAD, NL80211_SURVEY_INFO_TIME_BSS_RX, - NL80211_SURVEY_INFO_FREQUENCY_OFFSET, /* keep last */ __NL80211_SURVEY_INFO_AFTER_LAST, @@ -4337,16 +4103,6 @@ enum nl80211_mesh_power_mode { * field. If left unset then the mesh formation field will only * advertise such if there is an active root mesh path. * - * @NL80211_MESHCONF_NOLEARN: Try to avoid multi-hop path discovery (e.g. - * PREQ/PREP for HWMP) if the destination is a direct neighbor. Note that - * this might not be the optimal decision as a multi-hop route might be - * better. So if using this setting you will likely also want to disable - * dot11MeshForwarding and use another mesh routing protocol on top. - * - * @NL80211_MESHCONF_CONNECTED_TO_AS: If set to true then this mesh STA - * will advertise that it is connected to a authentication server - * in the mesh formation field. - * * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use */ enum nl80211_meshconf_params { @@ -4380,8 +4136,6 @@ enum nl80211_meshconf_params { NL80211_MESHCONF_AWAKE_WINDOW, NL80211_MESHCONF_PLINK_TIMEOUT, NL80211_MESHCONF_CONNECTED_TO_GATE, - NL80211_MESHCONF_NOLEARN, - NL80211_MESHCONF_CONNECTED_TO_AS, /* keep last */ __NL80211_MESHCONF_ATTR_AFTER_LAST, @@ -4550,11 +4304,6 @@ enum nl80211_key_mode { * attribute must be provided as well * @NL80211_CHAN_WIDTH_5: 5 MHz OFDM channel * @NL80211_CHAN_WIDTH_10: 10 MHz OFDM channel - * @NL80211_CHAN_WIDTH_1: 1 MHz OFDM channel - * @NL80211_CHAN_WIDTH_2: 2 MHz OFDM channel - * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel - * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel - * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel */ enum nl80211_chan_width { NL80211_CHAN_WIDTH_20_NOHT, @@ -4565,11 +4314,6 @@ enum nl80211_chan_width { NL80211_CHAN_WIDTH_160, NL80211_CHAN_WIDTH_5, NL80211_CHAN_WIDTH_10, - NL80211_CHAN_WIDTH_1, - NL80211_CHAN_WIDTH_2, - NL80211_CHAN_WIDTH_4, - NL80211_CHAN_WIDTH_8, - NL80211_CHAN_WIDTH_16, }; /** @@ -4580,15 +4324,11 @@ enum nl80211_chan_width { * @NL80211_BSS_CHAN_WIDTH_20: control channel is 20 MHz wide or compatible * @NL80211_BSS_CHAN_WIDTH_10: control channel is 10 MHz wide * @NL80211_BSS_CHAN_WIDTH_5: control channel is 5 MHz wide - * @NL80211_BSS_CHAN_WIDTH_1: control channel is 1 MHz wide - * @NL80211_BSS_CHAN_WIDTH_2: control channel is 2 MHz wide */ enum nl80211_bss_scan_width { NL80211_BSS_CHAN_WIDTH_20, NL80211_BSS_CHAN_WIDTH_10, NL80211_BSS_CHAN_WIDTH_5, - NL80211_BSS_CHAN_WIDTH_1, - NL80211_BSS_CHAN_WIDTH_2, }; /** @@ -4640,7 +4380,6 @@ enum nl80211_bss_scan_width { * @NL80211_BSS_CHAIN_SIGNAL: per-chain signal strength of last BSS update. * Contains a nested array of signal strength attributes (u8, dBm), * using the nesting index as the antenna number. - * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz * @__NL80211_BSS_AFTER_LAST: internal * @NL80211_BSS_MAX: highest BSS attribute */ @@ -4665,7 +4404,6 @@ enum nl80211_bss { NL80211_BSS_PARENT_TSF, NL80211_BSS_PARENT_BSSID, NL80211_BSS_CHAIN_SIGNAL, - NL80211_BSS_FREQUENCY_OFFSET, /* keep last */ __NL80211_BSS_AFTER_LAST, @@ -4794,7 +4532,6 @@ enum nl80211_key_default_types { * See &enum nl80211_key_default_types. * @NL80211_KEY_MODE: the mode from enum nl80211_key_mode. * Defaults to @NL80211_KEY_RX_TX. - * @NL80211_KEY_DEFAULT_BEACON: flag indicating default Beacon frame key * * @__NL80211_KEY_AFTER_LAST: internal * @NL80211_KEY_MAX: highest key attribute @@ -4810,7 +4547,6 @@ enum nl80211_key_attributes { NL80211_KEY_TYPE, NL80211_KEY_DEFAULT_TYPES, NL80211_KEY_MODE, - NL80211_KEY_DEFAULT_BEACON, /* keep last */ __NL80211_KEY_AFTER_LAST, @@ -4829,10 +4565,6 @@ enum nl80211_key_attributes { * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, * see &struct nl80211_txrate_vht * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi - * @NL80211_TXRATE_HE: HE rates allowed for TX rate selection, - * see &struct nl80211_txrate_he - * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us. - * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF. * @__NL80211_TXRATE_AFTER_LAST: internal * @NL80211_TXRATE_MAX: highest TX rate attribute */ @@ -4842,9 +4574,6 @@ enum nl80211_tx_rate_attributes { NL80211_TXRATE_HT, NL80211_TXRATE_VHT, NL80211_TXRATE_GI, - NL80211_TXRATE_HE, - NL80211_TXRATE_HE_GI, - NL80211_TXRATE_HE_LTF, /* keep last */ __NL80211_TXRATE_AFTER_LAST, @@ -4862,15 +4591,6 @@ struct nl80211_txrate_vht { __u16 mcs[NL80211_VHT_NSS_MAX]; }; -#define NL80211_HE_NSS_MAX 8 -/** - * struct nl80211_txrate_he - HE MCS/NSS txrate bitmap - * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.) - */ -struct nl80211_txrate_he { - __u16 mcs[NL80211_HE_NSS_MAX]; -}; - enum nl80211_txrate_gi { NL80211_TXRATE_DEFAULT_GI, NL80211_TXRATE_FORCE_SGI, @@ -4883,7 +4603,6 @@ enum nl80211_txrate_gi { * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz) * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz) * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz) - * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace * since newer kernel versions may support more bands */ @@ -4892,7 +4611,6 @@ enum nl80211_band { NL80211_BAND_5GHZ, NL80211_BAND_60GHZ, NL80211_BAND_6GHZ, - NL80211_BAND_S1GHZ, NUM_NL80211_BANDS, }; @@ -4985,92 +4703,6 @@ enum nl80211_tx_power_setting { }; /** - * enum nl80211_tid_config - TID config state - * @NL80211_TID_CONFIG_ENABLE: Enable config for the TID - * @NL80211_TID_CONFIG_DISABLE: Disable config for the TID - */ -enum nl80211_tid_config { - NL80211_TID_CONFIG_ENABLE, - NL80211_TID_CONFIG_DISABLE, -}; - -/* enum nl80211_tx_rate_setting - TX rate configuration type - * @NL80211_TX_RATE_AUTOMATIC: automatically determine TX rate - * @NL80211_TX_RATE_LIMITED: limit the TX rate by the TX rate parameter - * @NL80211_TX_RATE_FIXED: fix TX rate to the TX rate parameter - */ -enum nl80211_tx_rate_setting { - NL80211_TX_RATE_AUTOMATIC, - NL80211_TX_RATE_LIMITED, - NL80211_TX_RATE_FIXED, -}; - -/* enum nl80211_tid_config_attr - TID specific configuration. - * @NL80211_TID_CONFIG_ATTR_PAD: pad attribute for 64-bit values - * @NL80211_TID_CONFIG_ATTR_VIF_SUPP: a bitmap (u64) of attributes supported - * for per-vif configuration; doesn't list the ones that are generic - * (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE). - * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but - * per peer instead. - * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if set indicates - * that the new configuration overrides all previous peer - * configurations, otherwise previous peer specific configurations - * should be left untouched. - * @NL80211_TID_CONFIG_ATTR_TIDS: a bitmask value of TIDs (bit 0 to 7) - * Its type is u16. - * @NL80211_TID_CONFIG_ATTR_NOACK: Configure ack policy for the TID. - * specified in %NL80211_TID_CONFIG_ATTR_TID. see %enum nl80211_tid_config. - * Its type is u8. - * @NL80211_TID_CONFIG_ATTR_RETRY_SHORT: Number of retries used with data frame - * transmission, user-space sets this configuration in - * &NL80211_CMD_SET_TID_CONFIG. It is u8 type, min value is 1 and - * the max value is advertised by the driver in this attribute on - * output in wiphy capabilities. - * @NL80211_TID_CONFIG_ATTR_RETRY_LONG: Number of retries used with data frame - * transmission, user-space sets this configuration in - * &NL80211_CMD_SET_TID_CONFIG. Its type is u8, min value is 1 and - * the max value is advertised by the driver in this attribute on - * output in wiphy capabilities. - * @NL80211_TID_CONFIG_ATTR_AMPDU_CTRL: Enable/Disable MPDU aggregation - * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS. - * Its type is u8, using the values from &nl80211_tid_config. - * @NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL: Enable/Disable RTS_CTS for the TIDs - * specified in %NL80211_TID_CONFIG_ATTR_TIDS. It is u8 type, using - * the values from &nl80211_tid_config. - * @NL80211_TID_CONFIG_ATTR_AMSDU_CTRL: Enable/Disable MSDU aggregation - * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS. - * Its type is u8, using the values from &nl80211_tid_config. - * @NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE: This attribute will be useful - * to notfiy the driver that what type of txrate should be used - * for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS. using - * the values form &nl80211_tx_rate_setting. - * @NL80211_TID_CONFIG_ATTR_TX_RATE: Data frame TX rate mask should be applied - * with the parameters passed through %NL80211_ATTR_TX_RATES. - * configuration is applied to the data frame for the tid to that connected - * station. - */ -enum nl80211_tid_config_attr { - __NL80211_TID_CONFIG_ATTR_INVALID, - NL80211_TID_CONFIG_ATTR_PAD, - NL80211_TID_CONFIG_ATTR_VIF_SUPP, - NL80211_TID_CONFIG_ATTR_PEER_SUPP, - NL80211_TID_CONFIG_ATTR_OVERRIDE, - NL80211_TID_CONFIG_ATTR_TIDS, - NL80211_TID_CONFIG_ATTR_NOACK, - NL80211_TID_CONFIG_ATTR_RETRY_SHORT, - NL80211_TID_CONFIG_ATTR_RETRY_LONG, - NL80211_TID_CONFIG_ATTR_AMPDU_CTRL, - NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL, - NL80211_TID_CONFIG_ATTR_AMSDU_CTRL, - NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE, - NL80211_TID_CONFIG_ATTR_TX_RATE, - - /* keep last */ - __NL80211_TID_CONFIG_ATTR_AFTER_LAST, - NL80211_TID_CONFIG_ATTR_MAX = __NL80211_TID_CONFIG_ATTR_AFTER_LAST - 1 -}; - -/** * enum nl80211_packet_pattern_attr - packet pattern attribute * @__NL80211_PKTPAT_INVALID: invalid number for nested attribute * @NL80211_PKTPAT_PATTERN: the pattern, values where the mask has @@ -5541,8 +5173,6 @@ enum plink_actions { #define NL80211_KCK_LEN 16 #define NL80211_KEK_LEN 16 -#define NL80211_KCK_EXT_LEN 24 -#define NL80211_KEK_EXT_LEN 32 #define NL80211_REPLAY_CTR_LEN 8 /** @@ -5551,7 +5181,6 @@ enum plink_actions { * @NL80211_REKEY_DATA_KEK: key encryption key (binary) * @NL80211_REKEY_DATA_KCK: key confirmation key (binary) * @NL80211_REKEY_DATA_REPLAY_CTR: replay counter (binary) - * @NL80211_REKEY_DATA_AKM: AKM data (OUI, suite type) * @NUM_NL80211_REKEY_DATA: number of rekey attributes (internal) * @MAX_NL80211_REKEY_DATA: highest rekey attribute (internal) */ @@ -5560,7 +5189,6 @@ enum nl80211_rekey_data { NL80211_REKEY_DATA_KEK, NL80211_REKEY_DATA_KCK, NL80211_REKEY_DATA_REPLAY_CTR, - NL80211_REKEY_DATA_AKM, /* keep last */ NUM_NL80211_REKEY_DATA, @@ -5781,7 +5409,7 @@ enum nl80211_feature_flags { * enum nl80211_ext_feature_index - bit index of extended features. * @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates. * @NL80211_EXT_FEATURE_RRM: This driver supports RRM. When featured, user can - * request to use RRM (see %NL80211_ATTR_USE_RRM) with + * can request to use RRM (see %NL80211_ATTR_USE_RRM) with * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set * the ASSOC_REQ_USE_RRM flag in the association request even if * NL80211_FEATURE_QUIET is not advertized. @@ -5893,50 +5521,6 @@ enum nl80211_feature_flags { * feature, which prevents bufferbloat by using the expected transmission * time to limit the amount of data buffered in the hardware. * - * @NL80211_EXT_FEATURE_BEACON_PROTECTION: The driver supports Beacon protection - * and can receive key configuration for BIGTK using key indexes 6 and 7. - * @NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT: The driver supports Beacon - * protection as a client only and cannot transmit protected beacons. - * - * @NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH: The driver can disable the - * forwarding of preauth frames over the control port. They are then - * handled as ordinary data frames. - * - * @NL80211_EXT_FEATURE_PROTECTED_TWT: Driver supports protected TWT frames - * - * @NL80211_EXT_FEATURE_DEL_IBSS_STA: The driver supports removing stations - * in IBSS mode, essentially by dropping their state. - * - * @NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS: management frame registrations - * are possible for multicast frames and those will be reported properly. - * - * @NL80211_EXT_FEATURE_SCAN_FREQ_KHZ: This driver supports receiving and - * reporting scan request with %NL80211_ATTR_SCAN_FREQ_KHZ. In order to - * report %NL80211_ATTR_SCAN_FREQ_KHZ, %NL80211_SCAN_FLAG_FREQ_KHZ must be - * included in the scan request. - * - * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS: The driver - * can report tx status for control port over nl80211 tx operations. - * - * @NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION: Driver supports Operating - * Channel Validation (OCV) when using driver's SME for RSNA handshakes. - * - * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK: Device wants to do 4-way - * handshake with PSK in AP mode (PSK is passed as part of the start AP - * command). - * - * @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP: Device wants to do SAE authentication - * in AP mode (SAE password is passed as part of the start AP command). - * - * @NL80211_EXT_FEATURE_FILS_DISCOVERY: Driver/device supports FILS discovery - * frames transmission - * - * @NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP: Driver/device supports - * unsolicited broadcast probe response transmission - * - * @NL80211_EXT_FEATURE_BEACON_RATE_HE: Driver supports beacon rate - * configuration (AP/mesh) with HE rates. - * * @NUM_NL80211_EXT_FEATURES: number of extended features. * @MAX_NL80211_EXT_FEATURES: highest extended feature index. */ @@ -5984,20 +5568,6 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_SAE_OFFLOAD, NL80211_EXT_FEATURE_VLAN_OFFLOAD, NL80211_EXT_FEATURE_AQL, - NL80211_EXT_FEATURE_BEACON_PROTECTION, - NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH, - NL80211_EXT_FEATURE_PROTECTED_TWT, - NL80211_EXT_FEATURE_DEL_IBSS_STA, - NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS, - NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT, - NL80211_EXT_FEATURE_SCAN_FREQ_KHZ, - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS, - NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK, - NL80211_EXT_FEATURE_SAE_OFFLOAD_AP, - NL80211_EXT_FEATURE_FILS_DISCOVERY, - NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP, - NL80211_EXT_FEATURE_BEACON_RATE_HE, /* add new features before the definition below */ NUM_NL80211_EXT_FEATURES, @@ -6109,11 +5679,6 @@ enum nl80211_timeout_reason { * @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to * only have supported rates and no additional capabilities (unless * added by userspace explicitly.) - * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with - * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means - * %NL80211_ATTR_SCAN_FREQUENCIES will not be included. - * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by - * 2.4/5 GHz APs */ enum nl80211_scan_flags { NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, @@ -6129,8 +5694,6 @@ enum nl80211_scan_flags { NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10, NL80211_SCAN_FLAG_RANDOM_SN = 1<<11, NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12, - NL80211_SCAN_FLAG_FREQ_KHZ = 1<<13, - NL80211_SCAN_FLAG_COLOCATED_6GHZ = 1<<14, }; /** @@ -6218,7 +5781,7 @@ enum nl80211_dfs_state { }; /** - * enum nl80211_protocol_features - nl80211 protocol features + * enum enum nl80211_protocol_features - nl80211 protocol features * @NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP: nl80211 supports splitting * wiphy dumps (if requested by the application with the attribute * %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the @@ -6627,14 +6190,12 @@ enum nl80211_ftm_responder_stats { * @NL80211_PREAMBLE_HT: HT preamble * @NL80211_PREAMBLE_VHT: VHT preamble * @NL80211_PREAMBLE_DMG: DMG preamble - * @NL80211_PREAMBLE_HE: HE preamble */ enum nl80211_preamble { NL80211_PREAMBLE_LEGACY, NL80211_PREAMBLE_HT, NL80211_PREAMBLE_VHT, NL80211_PREAMBLE_DMG, - NL80211_PREAMBLE_HE, }; /** @@ -6827,10 +6388,6 @@ enum nl80211_peer_measurement_attrs { * is valid) * @NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST: u32 attribute indicating * the maximum FTMs per burst (if not present anything is valid) - * @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if - * trigger based ranging measurement is supported - * @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating - * if non trigger based ranging measurement is supported * * @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal * @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number @@ -6846,8 +6403,6 @@ enum nl80211_peer_measurement_ftm_capa { NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS, NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT, NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST, - NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED, - NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED, /* keep last */ NUM_NL80211_PMSR_FTM_CAPA_ATTR, @@ -6877,20 +6432,6 @@ enum nl80211_peer_measurement_ftm_capa { * @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI: request LCI data (flag) * @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC: request civic location data * (flag) - * @NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED: request trigger based ranging - * measurement (flag). - * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED are - * mutually exclusive. - * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor - * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based - * ranging will be used. - * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based - * ranging measurement (flag) - * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are - * mutually exclusive. - * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor - * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based - * ranging will be used. * * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number @@ -6907,8 +6448,6 @@ enum nl80211_peer_measurement_ftm_req { NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES, NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI, NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC, - NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED, - NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED, /* keep last */ NUM_NL80211_PMSR_FTM_REQ_ATTR, @@ -7033,13 +6572,6 @@ enum nl80211_peer_measurement_ftm_resp { * * @NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET: the OBSS PD minimum tx power offset. * @NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET: the OBSS PD maximum tx power offset. - * @NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET: the non-SRG OBSS PD maximum - * tx power offset. - * @NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP: bitmap that indicates the BSS color - * values used by members of the SRG. - * @NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP: bitmap that indicates the partial - * BSSID values used by members of the SRG. - * @NL80211_HE_OBSS_PD_ATTR_SR_CTRL: The SR Control field of SRP element. * * @__NL80211_HE_OBSS_PD_ATTR_LAST: Internal * @NL80211_HE_OBSS_PD_ATTR_MAX: highest OBSS PD attribute. @@ -7049,232 +6581,11 @@ enum nl80211_obss_pd_attributes { NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET, NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET, - NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET, - NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP, - NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP, - NL80211_HE_OBSS_PD_ATTR_SR_CTRL, /* keep last */ __NL80211_HE_OBSS_PD_ATTR_LAST, NL80211_HE_OBSS_PD_ATTR_MAX = __NL80211_HE_OBSS_PD_ATTR_LAST - 1, }; -/** - * enum nl80211_bss_color_attributes - BSS Color attributes - * @__NL80211_HE_BSS_COLOR_ATTR_INVALID: Invalid - * - * @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color. - * @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled. - * @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used.. - * - * @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal - * @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute. - */ -enum nl80211_bss_color_attributes { - __NL80211_HE_BSS_COLOR_ATTR_INVALID, - - NL80211_HE_BSS_COLOR_ATTR_COLOR, - NL80211_HE_BSS_COLOR_ATTR_DISABLED, - NL80211_HE_BSS_COLOR_ATTR_PARTIAL, - - /* keep last */ - __NL80211_HE_BSS_COLOR_ATTR_LAST, - NL80211_HE_BSS_COLOR_ATTR_MAX = __NL80211_HE_BSS_COLOR_ATTR_LAST - 1, -}; - -/** - * enum nl80211_iftype_akm_attributes - interface type AKM attributes - * @__NL80211_IFTYPE_AKM_ATTR_INVALID: Invalid - * - * @NL80211_IFTYPE_AKM_ATTR_IFTYPES: nested attribute containing a flag - * attribute for each interface type that supports AKM suites specified in - * %NL80211_IFTYPE_AKM_ATTR_SUITES - * @NL80211_IFTYPE_AKM_ATTR_SUITES: an array of u32. Used to indicate supported - * AKM suites for the specified interface types. - * - * @__NL80211_IFTYPE_AKM_ATTR_LAST: Internal - * @NL80211_IFTYPE_AKM_ATTR_MAX: highest interface type AKM attribute. - */ -enum nl80211_iftype_akm_attributes { - __NL80211_IFTYPE_AKM_ATTR_INVALID, - - NL80211_IFTYPE_AKM_ATTR_IFTYPES, - NL80211_IFTYPE_AKM_ATTR_SUITES, - - /* keep last */ - __NL80211_IFTYPE_AKM_ATTR_LAST, - NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1, -}; - -/** - * enum nl80211_fils_discovery_attributes - FILS discovery configuration - * from IEEE Std 802.11ai-2016, Annex C.3 MIB detail. - * - * @__NL80211_FILS_DISCOVERY_ATTR_INVALID: Invalid - * - * @NL80211_FILS_DISCOVERY_ATTR_INT_MIN: Minimum packet interval (u32, TU). - * Allowed range: 0..10000 (TU = Time Unit) - * @NL80211_FILS_DISCOVERY_ATTR_INT_MAX: Maximum packet interval (u32, TU). - * Allowed range: 0..10000 (TU = Time Unit) - * @NL80211_FILS_DISCOVERY_ATTR_TMPL: Template data for FILS discovery action - * frame including the headers. - * - * @__NL80211_FILS_DISCOVERY_ATTR_LAST: Internal - * @NL80211_FILS_DISCOVERY_ATTR_MAX: highest attribute - */ -enum nl80211_fils_discovery_attributes { - __NL80211_FILS_DISCOVERY_ATTR_INVALID, - - NL80211_FILS_DISCOVERY_ATTR_INT_MIN, - NL80211_FILS_DISCOVERY_ATTR_INT_MAX, - NL80211_FILS_DISCOVERY_ATTR_TMPL, - - /* keep last */ - __NL80211_FILS_DISCOVERY_ATTR_LAST, - NL80211_FILS_DISCOVERY_ATTR_MAX = __NL80211_FILS_DISCOVERY_ATTR_LAST - 1 -}; - -/* - * FILS discovery template minimum length with action frame headers and - * mandatory fields. - */ -#define NL80211_FILS_DISCOVERY_TMPL_MIN_LEN 42 - -/** - * enum nl80211_unsol_bcast_probe_resp_attributes - Unsolicited broadcast probe - * response configuration. Applicable only in 6GHz. - * - * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID: Invalid - * - * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT: Maximum packet interval (u32, TU). - * Allowed range: 0..20 (TU = Time Unit). IEEE P802.11ax/D6.0 - * 26.17.2.3.2 (AP behavior for fast passive scanning). - * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL: Unsolicited broadcast probe response - * frame template (binary). - * - * @__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST: Internal - * @NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX: highest attribute - */ -enum nl80211_unsol_bcast_probe_resp_attributes { - __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID, - - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT, - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL, - - /* keep last */ - __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST, - NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = - __NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST - 1 -}; - -/** - * enum nl80211_sae_pwe_mechanism - The mechanism(s) allowed for SAE PWE - * derivation. Applicable only when WPA3-Personal SAE authentication is - * used. - * - * @NL80211_SAE_PWE_UNSPECIFIED: not specified, used internally to indicate that - * attribute is not present from userspace. - * @NL80211_SAE_PWE_HUNT_AND_PECK: hunting-and-pecking loop only - * @NL80211_SAE_PWE_HASH_TO_ELEMENT: hash-to-element only - * @NL80211_SAE_PWE_BOTH: both hunting-and-pecking loop and hash-to-element - * can be used. - */ -enum nl80211_sae_pwe_mechanism { - NL80211_SAE_PWE_UNSPECIFIED, - NL80211_SAE_PWE_HUNT_AND_PECK, - NL80211_SAE_PWE_HASH_TO_ELEMENT, - NL80211_SAE_PWE_BOTH, -}; - -/** - * enum nl80211_sar_type - type of SAR specs - * - * @NL80211_SAR_TYPE_POWER: power limitation specified in 0.25dBm unit - * - */ -enum nl80211_sar_type { - NL80211_SAR_TYPE_POWER, - - /* add new type here */ - - /* Keep last */ - NUM_NL80211_SAR_TYPE, -}; - -/** - * enum nl80211_sar_attrs - Attributes for SAR spec - * - * @NL80211_SAR_ATTR_TYPE: the SAR type as defined in &enum nl80211_sar_type. - * - * @NL80211_SAR_ATTR_SPECS: Nested array of SAR power - * limit specifications. Each specification contains a set - * of %nl80211_sar_specs_attrs. - * - * For SET operation, it contains array of %NL80211_SAR_ATTR_SPECS_POWER - * and %NL80211_SAR_ATTR_SPECS_RANGE_INDEX. - * - * For sar_capa dump, it contains array of - * %NL80211_SAR_ATTR_SPECS_START_FREQ - * and %NL80211_SAR_ATTR_SPECS_END_FREQ. - * - * @__NL80211_SAR_ATTR_LAST: Internal - * @NL80211_SAR_ATTR_MAX: highest sar attribute - * - * These attributes are used with %NL80211_CMD_SET_SAR_SPEC - */ -enum nl80211_sar_attrs { - __NL80211_SAR_ATTR_INVALID, - - NL80211_SAR_ATTR_TYPE, - NL80211_SAR_ATTR_SPECS, - - __NL80211_SAR_ATTR_LAST, - NL80211_SAR_ATTR_MAX = __NL80211_SAR_ATTR_LAST - 1, -}; - -/** - * enum nl80211_sar_specs_attrs - Attributes for SAR power limit specs - * - * @NL80211_SAR_ATTR_SPECS_POWER: Required (s32)value to specify the actual - * power limit value in units of 0.25 dBm if type is - * NL80211_SAR_TYPE_POWER. (i.e., a value of 44 represents 11 dBm). - * 0 means userspace doesn't have SAR limitation on this associated range. - * - * @NL80211_SAR_ATTR_SPECS_RANGE_INDEX: Required (u32) value to specify the - * index of exported freq range table and the associated power limitation - * is applied to this range. - * - * Userspace isn't required to set all the ranges advertised by WLAN driver, - * and userspace can skip some certain ranges. These skipped ranges don't - * have SAR limitations, and they are same as setting the - * %NL80211_SAR_ATTR_SPECS_POWER to any unreasonable high value because any - * value higher than regulatory allowed value just means SAR power - * limitation is removed, but it's required to set at least one range. - * It's not allowed to set duplicated range in one SET operation. - * - * Every SET operation overwrites previous SET operation. - * - * @NL80211_SAR_ATTR_SPECS_START_FREQ: Required (u32) value to specify the start - * frequency of this range edge when registering SAR capability to wiphy. - * It's not a channel center frequency. The unit is kHz. - * - * @NL80211_SAR_ATTR_SPECS_END_FREQ: Required (u32) value to specify the end - * frequency of this range edge when registering SAR capability to wiphy. - * It's not a channel center frequency. The unit is kHz. - * - * @__NL80211_SAR_ATTR_SPECS_LAST: Internal - * @NL80211_SAR_ATTR_SPECS_MAX: highest sar specs attribute - */ -enum nl80211_sar_specs_attrs { - __NL80211_SAR_ATTR_SPECS_INVALID, - - NL80211_SAR_ATTR_SPECS_POWER, - NL80211_SAR_ATTR_SPECS_RANGE_INDEX, - NL80211_SAR_ATTR_SPECS_START_FREQ, - NL80211_SAR_ATTR_SPECS_END_FREQ, - - __NL80211_SAR_ATTR_SPECS_LAST, - NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1, -}; #endif /* __LINUX_NL80211_H */ diff --git a/original/uapi/linux/openat2.h b/original/uapi/linux/openat2.h deleted file mode 100644 index a5feb76..0000000 --- a/original/uapi/linux/openat2.h +++ /dev/null @@ -1,43 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_LINUX_OPENAT2_H -#define _UAPI_LINUX_OPENAT2_H - -#include <linux/types.h> - -/* - * Arguments for how openat2(2) should open the target path. If only @flags and - * @mode are non-zero, then openat2(2) operates very similarly to openat(2). - * - * However, unlike openat(2), unknown or invalid bits in @flags result in - * -EINVAL rather than being silently ignored. @mode must be zero unless one of - * {O_CREAT, O_TMPFILE} are set. - * - * @flags: O_* flags. - * @mode: O_CREAT/O_TMPFILE file mode. - * @resolve: RESOLVE_* flags. - */ -struct open_how { - __u64 flags; - __u64 mode; - __u64 resolve; -}; - -/* how->resolve flags for openat2(2). */ -#define RESOLVE_NO_XDEV 0x01 /* Block mount-point crossings - (includes bind-mounts). */ -#define RESOLVE_NO_MAGICLINKS 0x02 /* Block traversal through procfs-style - "magic-links". */ -#define RESOLVE_NO_SYMLINKS 0x04 /* Block traversal through all symlinks - (implies OEXT_NO_MAGICLINKS) */ -#define RESOLVE_BENEATH 0x08 /* Block "lexical" trickery like - "..", symlinks, and absolute - paths which escape the dirfd. */ -#define RESOLVE_IN_ROOT 0x10 /* Make all jumps to "/" and ".." - be scoped inside the dirfd - (similar to chroot(2)). */ -#define RESOLVE_CACHED 0x20 /* Only complete if resolution can be - completed through cached lookup. May - return -EAGAIN if that's not - possible. */ - -#endif /* _UAPI_LINUX_OPENAT2_H */ diff --git a/original/uapi/linux/openvswitch.h b/original/uapi/linux/openvswitch.h index 8d16744..a87b44c 100644 --- a/original/uapi/linux/openvswitch.h +++ b/original/uapi/linux/openvswitch.h @@ -86,7 +86,6 @@ enum ovs_datapath_attr { OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */ OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */ OVS_DP_ATTR_PAD, - OVS_DP_ATTR_MASKS_CACHE_SIZE, __OVS_DP_ATTR_MAX }; @@ -103,8 +102,8 @@ struct ovs_dp_megaflow_stats { __u64 n_mask_hit; /* Number of masks used for flow lookups. */ __u32 n_masks; /* Number of masks for the datapath. */ __u32 pad0; /* Pad for future expension. */ - __u64 n_cache_hit; /* Number of cache matches for flow lookups. */ __u64 pad1; /* Pad for future expension. */ + __u64 pad2; /* Pad for future expension. */ }; struct ovs_vport_stats { @@ -674,32 +673,6 @@ struct ovs_action_push_mpls { }; /** - * struct ovs_action_add_mpls - %OVS_ACTION_ATTR_ADD_MPLS action - * argument. - * @mpls_lse: MPLS label stack entry to push. - * @mpls_ethertype: Ethertype to set in the encapsulating ethernet frame. - * @tun_flags: MPLS tunnel attributes. - * - * The only values @mpls_ethertype should ever be given are %ETH_P_MPLS_UC and - * %ETH_P_MPLS_MC, indicating MPLS unicast or multicast. Other are rejected. - */ -struct ovs_action_add_mpls { - __be32 mpls_lse; - __be16 mpls_ethertype; /* Either %ETH_P_MPLS_UC or %ETH_P_MPLS_MC */ - __u16 tun_flags; -}; - -#define OVS_MPLS_L3_TUNNEL_FLAG_MASK (1 << 0) /* Flag to specify the place of - * insertion of MPLS header. - * When false, the MPLS header - * will be inserted at the start - * of the packet. - * When true, the MPLS header - * will be inserted at the start - * of the l3 header. - */ - -/** * struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument. * @vlan_tpid: Tag protocol identifier (TPID) to push. * @vlan_tci: Tag control identifier (TCI) to push. The CFI bit must be set @@ -919,10 +892,6 @@ struct check_pkt_len_arg { * @OVS_ACTION_ATTR_CHECK_PKT_LEN: Check the packet length and execute a set * of actions if greater than the specified packet length, else execute * another set of actions. - * @OVS_ACTION_ATTR_ADD_MPLS: Push a new MPLS label stack entry at the - * start of the packet or at the start of the l3 header depending on the value - * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS - * argument. * * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all * fields within a header are modifiable, e.g. the IPv4 protocol and fragment @@ -958,8 +927,6 @@ enum ovs_action_attr { OVS_ACTION_ATTR_METER, /* u32 meter ID. */ OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */ OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */ - OVS_ACTION_ATTR_ADD_MPLS, /* struct ovs_action_add_mpls. */ - OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */ __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted * from userspace. */ @@ -1052,12 +1019,4 @@ struct ovs_zone_limit { __u32 count; }; -enum ovs_dec_ttl_attr { - OVS_DEC_TTL_ATTR_UNSPEC, - OVS_DEC_TTL_ATTR_ACTION, /* Nested struct nlattr */ - __OVS_DEC_TTL_ATTR_MAX -}; - -#define OVS_DEC_TTL_ATTR_MAX (__OVS_DEC_TTL_ATTR_MAX - 1) - #endif /* _LINUX_OPENVSWITCH_H */ diff --git a/original/uapi/linux/pci_regs.h b/original/uapi/linux/pci_regs.h index e709ae8..acb7d2b 100644 --- a/original/uapi/linux/pci_regs.h +++ b/original/uapi/linux/pci_regs.h @@ -76,7 +76,6 @@ #define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */ #define PCI_LATENCY_TIMER 0x0d /* 8 bits */ #define PCI_HEADER_TYPE 0x0e /* 8 bits */ -#define PCI_HEADER_TYPE_MASK 0x7f #define PCI_HEADER_TYPE_NORMAL 0 #define PCI_HEADER_TYPE_BRIDGE 1 #define PCI_HEADER_TYPE_CARDBUS 2 @@ -247,7 +246,7 @@ #define PCI_PM_CAP_PME_D0 0x0800 /* PME# from D0 */ #define PCI_PM_CAP_PME_D1 0x1000 /* PME# from D1 */ #define PCI_PM_CAP_PME_D2 0x2000 /* PME# from D2 */ -#define PCI_PM_CAP_PME_D3hot 0x4000 /* PME# from D3 (hot) */ +#define PCI_PM_CAP_PME_D3 0x4000 /* PME# from D3 (hot) */ #define PCI_PM_CAP_PME_D3cold 0x8000 /* PME# from D3 (cold) */ #define PCI_PM_CAP_PME_SHIFT 11 /* Start of the PME Mask in PMC */ #define PCI_PM_CTRL 4 /* PM control and status register */ @@ -531,11 +530,8 @@ #define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003 /* LNKCAP2 SLS Vector bit 2 */ #define PCI_EXP_LNKCAP_SLS_16_0GB 0x00000004 /* LNKCAP2 SLS Vector bit 3 */ #define PCI_EXP_LNKCAP_SLS_32_0GB 0x00000005 /* LNKCAP2 SLS Vector bit 4 */ -#define PCI_EXP_LNKCAP_SLS_64_0GB 0x00000006 /* LNKCAP2 SLS Vector bit 5 */ #define PCI_EXP_LNKCAP_MLW 0x000003f0 /* Maximum Link Width */ #define PCI_EXP_LNKCAP_ASPMS 0x00000c00 /* ASPM Support */ -#define PCI_EXP_LNKCAP_ASPM_L0S 0x00000400 /* ASPM L0s Support */ -#define PCI_EXP_LNKCAP_ASPM_L1 0x00000800 /* ASPM L1 Support */ #define PCI_EXP_LNKCAP_L0SEL 0x00007000 /* L0s Exit Latency */ #define PCI_EXP_LNKCAP_L1EL 0x00038000 /* L1 Exit Latency */ #define PCI_EXP_LNKCAP_CLKPM 0x00040000 /* Clock Power Management */ @@ -563,7 +559,6 @@ #define PCI_EXP_LNKSTA_CLS_8_0GB 0x0003 /* Current Link Speed 8.0GT/s */ #define PCI_EXP_LNKSTA_CLS_16_0GB 0x0004 /* Current Link Speed 16.0GT/s */ #define PCI_EXP_LNKSTA_CLS_32_0GB 0x0005 /* Current Link Speed 32.0GT/s */ -#define PCI_EXP_LNKSTA_CLS_64_0GB 0x0006 /* Current Link Speed 64.0GT/s */ #define PCI_EXP_LNKSTA_NLW 0x03f0 /* Negotiated Link Width */ #define PCI_EXP_LNKSTA_NLW_X1 0x0010 /* Current Link Width x1 */ #define PCI_EXP_LNKSTA_NLW_X2 0x0020 /* Current Link Width x2 */ @@ -610,7 +605,6 @@ #define PCI_EXP_SLTCTL_PWR_OFF 0x0400 /* Power Off */ #define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */ #define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */ -#define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000 /* In-band PD disable */ #define PCI_EXP_SLTSTA 26 /* Slot Status */ #define PCI_EXP_SLTSTA_ABP 0x0001 /* Attention Button Pressed */ #define PCI_EXP_SLTSTA_PFD 0x0002 /* Power Fault Detected */ @@ -672,7 +666,6 @@ #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported Speed 8GT/s */ #define PCI_EXP_LNKCAP2_SLS_16_0GB 0x00000010 /* Supported Speed 16GT/s */ #define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020 /* Supported Speed 32GT/s */ -#define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040 /* Supported Speed 64GT/s */ #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ #define PCI_EXP_LNKCTL2_TLS 0x000f @@ -681,14 +674,11 @@ #define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */ #define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */ #define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */ -#define PCI_EXP_LNKCTL2_TLS_64_0GT 0x0006 /* Supported Speed 64GT/s */ #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */ #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */ -#define PCI_EXP_LNKCTL2_HASD 0x0020 /* HW Autonomous Speed Disable */ #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ -#define PCI_EXP_SLTCAP2_IBPD 0x00000001 /* In-band PD Disable Supported */ #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ @@ -727,7 +717,6 @@ #define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */ #define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */ #define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */ -#define PCI_EXT_CAP_ID_DVSEC 0x23 /* Designated Vendor-Specific */ #define PCI_EXT_CAP_ID_DLF 0x25 /* Data Link Feature */ #define PCI_EXT_CAP_ID_PL_16GT 0x26 /* Physical Layer 16.0 GT/s */ #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PL_16GT @@ -836,13 +825,6 @@ #define PCI_PWR_CAP_BUDGET(x) ((x) & 1) /* Included in system budget */ #define PCI_EXT_CAP_PWR_SIZEOF 16 -/* Root Complex Event Collector Endpoint Association */ -#define PCI_RCEC_RCIEP_BITMAP 4 /* Associated Bitmap for RCiEPs */ -#define PCI_RCEC_BUSN 8 /* RCEC Associated Bus Numbers */ -#define PCI_RCEC_BUSN_REG_VER 0x02 /* Least version with BUSN present */ -#define PCI_RCEC_BUSN_NEXT(x) (((x) >> 8) & 0xff) -#define PCI_RCEC_BUSN_LAST(x) (((x) >> 16) & 0xff) - /* Vendor-Specific (VSEC, PCI_EXT_CAP_ID_VNDR) */ #define PCI_VNDR_HEADER 4 /* Vendor-Specific Header */ #define PCI_VNDR_HEADER_ID(x) ((x) & 0xffff) @@ -1071,17 +1053,12 @@ #define PCI_L1SS_CTL1_PCIPM_L1_1 0x00000002 /* PCI-PM L1.1 Enable */ #define PCI_L1SS_CTL1_ASPM_L1_2 0x00000004 /* ASPM L1.2 Enable */ #define PCI_L1SS_CTL1_ASPM_L1_1 0x00000008 /* ASPM L1.1 Enable */ -#define PCI_L1SS_CTL1_L1_2_MASK 0x00000005 #define PCI_L1SS_CTL1_L1SS_MASK 0x0000000f #define PCI_L1SS_CTL1_CM_RESTORE_TIME 0x0000ff00 /* Common_Mode_Restore_Time */ #define PCI_L1SS_CTL1_LTR_L12_TH_VALUE 0x03ff0000 /* LTR_L1.2_THRESHOLD_Value */ #define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000 /* LTR_L1.2_THRESHOLD_Scale */ #define PCI_L1SS_CTL2 0x0c /* Control 2 Register */ -/* Designated Vendor-Specific (DVSEC, PCI_EXT_CAP_ID_DVSEC) */ -#define PCI_DVSEC_HEADER1 0x4 /* Designated Vendor-Specific Header1 */ -#define PCI_DVSEC_HEADER2 0x8 /* Designated Vendor-Specific Header2 */ - /* Data Link Feature */ #define PCI_DLF_CAP 0x04 /* Capabilities Register */ #define PCI_DLF_EXCHANGE_ENABLE 0x80000000 /* Data Link Feature Exchange Enable */ diff --git a/original/uapi/linux/pcitest.h b/original/uapi/linux/pcitest.h index c3ab4c8..cbf422e 100644 --- a/original/uapi/linux/pcitest.h +++ b/original/uapi/linux/pcitest.h @@ -19,13 +19,5 @@ #define PCITEST_MSIX _IOW('P', 0x7, int) #define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int) #define PCITEST_GET_IRQTYPE _IO('P', 0x9) -#define PCITEST_CLEAR_IRQ _IO('P', 0x10) - -#define PCITEST_FLAGS_USE_DMA 0x00000001 - -struct pci_endpoint_test_xfer_param { - unsigned long size; - unsigned char flags; -}; #endif /* __UAPI_LINUX_PCITEST_H */ diff --git a/original/uapi/linux/perf_event.h b/original/uapi/linux/perf_event.h index ad15e40..377d794 100644 --- a/original/uapi/linux/perf_event.h +++ b/original/uapi/linux/perf_event.h @@ -142,17 +142,12 @@ enum perf_event_sample_format { PERF_SAMPLE_REGS_INTR = 1U << 18, PERF_SAMPLE_PHYS_ADDR = 1U << 19, PERF_SAMPLE_AUX = 1U << 20, - PERF_SAMPLE_CGROUP = 1U << 21, - PERF_SAMPLE_DATA_PAGE_SIZE = 1U << 22, - PERF_SAMPLE_CODE_PAGE_SIZE = 1U << 23, - PERF_SAMPLE_WEIGHT_STRUCT = 1U << 24, - PERF_SAMPLE_MAX = 1U << 25, /* non-ABI */ + PERF_SAMPLE_MAX = 1U << 21, /* non-ABI */ __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */ }; -#define PERF_SAMPLE_WEIGHT_TYPE (PERF_SAMPLE_WEIGHT | PERF_SAMPLE_WEIGHT_STRUCT) /* * values to program into branch_sample_type when PERF_SAMPLE_BRANCH is set * @@ -186,8 +181,6 @@ enum perf_branch_sample_type_shift { PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, /* save branch type */ - PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, /* save low level index of raw branch records */ - PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */ }; @@ -215,8 +208,6 @@ enum perf_branch_sample_type { PERF_SAMPLE_BRANCH_TYPE_SAVE = 1U << PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT, - PERF_SAMPLE_BRANCH_HW_INDEX = 1U << PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT, - PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT, }; @@ -386,10 +377,7 @@ struct perf_event_attr { ksymbol : 1, /* include ksymbol events */ bpf_event : 1, /* include bpf events */ aux_output : 1, /* generate AUX records instead of events */ - cgroup : 1, /* include cgroup events */ - text_poke : 1, /* include text poke events */ - build_id : 1, /* use build id in mmap2 events */ - __reserved_1 : 29; + __reserved_1 : 32; union { __u32 wakeup_events; /* wakeup every n events */ @@ -538,10 +526,9 @@ struct perf_event_mmap_page { cap_bit0_is_deprecated : 1, /* Always 1, signals that bit 0 is zero */ cap_user_rdpmc : 1, /* The RDPMC instruction can be used to read counts */ - cap_user_time : 1, /* The time_{shift,mult,offset} fields are used */ + cap_user_time : 1, /* The time_* fields are used */ cap_user_time_zero : 1, /* The time_zero field is used */ - cap_user_time_short : 1, /* the time_{cycle,mask} fields are used */ - cap_____res : 58; + cap_____res : 59; }; }; @@ -600,29 +587,13 @@ struct perf_event_mmap_page { * ((rem * time_mult) >> time_shift); */ __u64 time_zero; - __u32 size; /* Header size up to __reserved[] fields. */ - __u32 __reserved_1; - - /* - * If cap_usr_time_short, the hardware clock is less than 64bit wide - * and we must compute the 'cyc' value, as used by cap_usr_time, as: - * - * cyc = time_cycles + ((cyc - time_cycles) & time_mask) - * - * NOTE: this form is explicitly chosen such that cap_usr_time_short - * is a correction on top of cap_usr_time, and code that doesn't - * know about cap_usr_time_short still works under the assumption - * the counter doesn't wrap. - */ - __u64 time_cycles; - __u64 time_mask; /* * Hole for extension of the self monitor capabilities */ - __u8 __reserved[116*8]; /* align to 1k. */ + __u8 __reserved[118*8+4]; /* align to 1k. */ /* * Control data for the mmap() data buffer. @@ -662,22 +633,6 @@ struct perf_event_mmap_page { __u64 aux_size; }; -/* - * The current state of perf_event_header::misc bits usage: - * ('|' used bit, '-' unused bit) - * - * 012 CDEF - * |||---------|||| - * - * Where: - * 0-2 CPUMODE_MASK - * - * C PROC_MAP_PARSE_TIMEOUT - * D MMAP_DATA / COMM_EXEC / FORK_EXEC / SWITCH_OUT - * E MMAP_BUILD_ID / EXACT_IP / SCHED_OUT_PREEMPT - * F (reserved) - */ - #define PERF_RECORD_MISC_CPUMODE_MASK (7 << 0) #define PERF_RECORD_MISC_CPUMODE_UNKNOWN (0 << 0) #define PERF_RECORD_MISC_KERNEL (1 << 0) @@ -709,7 +664,6 @@ struct perf_event_mmap_page { * * PERF_RECORD_MISC_EXACT_IP - PERF_RECORD_SAMPLE of precise events * PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events - * PERF_RECORD_MISC_MMAP_BUILD_ID - PERF_RECORD_MMAP2 event * * * PERF_RECORD_MISC_EXACT_IP: @@ -719,13 +673,9 @@ struct perf_event_mmap_page { * * PERF_RECORD_MISC_SWITCH_OUT_PREEMPT: * Indicates that thread was preempted in TASK_RUNNING state. - * - * PERF_RECORD_MISC_MMAP_BUILD_ID: - * Indicates that mmap2 event carries build id data. */ #define PERF_RECORD_MISC_EXACT_IP (1 << 14) #define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT (1 << 14) -#define PERF_RECORD_MISC_MMAP_BUILD_ID (1 << 14) /* * Reserve the last bit to indicate some extended misc field */ @@ -903,9 +853,7 @@ enum perf_event_type { * char data[size];}&& PERF_SAMPLE_RAW * * { u64 nr; - * { u64 hw_idx; } && PERF_SAMPLE_BRANCH_HW_INDEX - * { u64 from, to, flags } lbr[nr]; - * } && PERF_SAMPLE_BRANCH_STACK + * { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK * * { u64 abi; # enum perf_sample_regs_abi * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER @@ -914,24 +862,7 @@ enum perf_event_type { * char data[size]; * u64 dyn_size; } && PERF_SAMPLE_STACK_USER * - * { union perf_sample_weight - * { - * u64 full; && PERF_SAMPLE_WEIGHT - * #if defined(__LITTLE_ENDIAN_BITFIELD) - * struct { - * u32 var1_dw; - * u16 var2_w; - * u16 var3_w; - * } && PERF_SAMPLE_WEIGHT_STRUCT - * #elif defined(__BIG_ENDIAN_BITFIELD) - * struct { - * u16 var3_w; - * u16 var2_w; - * u32 var1_dw; - * } && PERF_SAMPLE_WEIGHT_STRUCT - * #endif - * } - * } + * { u64 weight; } && PERF_SAMPLE_WEIGHT * { u64 data_src; } && PERF_SAMPLE_DATA_SRC * { u64 transaction; } && PERF_SAMPLE_TRANSACTION * { u64 abi; # enum perf_sample_regs_abi @@ -939,8 +870,6 @@ enum perf_event_type { * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR * { u64 size; * char data[size]; } && PERF_SAMPLE_AUX - * { u64 data_page_size;} && PERF_SAMPLE_DATA_PAGE_SIZE - * { u64 code_page_size;} && PERF_SAMPLE_CODE_PAGE_SIZE * }; */ PERF_RECORD_SAMPLE = 9, @@ -956,20 +885,10 @@ enum perf_event_type { * u64 addr; * u64 len; * u64 pgoff; - * union { - * struct { - * u32 maj; - * u32 min; - * u64 ino; - * u64 ino_generation; - * }; - * struct { - * u8 build_id_size; - * u8 __reserved_1; - * u16 __reserved_2; - * u8 build_id[20]; - * }; - * }; + * u32 maj; + * u32 min; + * u64 ino; + * u64 ino_generation; * u32 prot, flags; * char filename[]; * struct sample_id sample_id; @@ -1087,45 +1006,12 @@ enum perf_event_type { */ PERF_RECORD_BPF_EVENT = 18, - /* - * struct { - * struct perf_event_header header; - * u64 id; - * char path[]; - * struct sample_id sample_id; - * }; - */ - PERF_RECORD_CGROUP = 19, - - /* - * Records changes to kernel text i.e. self-modified code. 'old_len' is - * the number of old bytes, 'new_len' is the number of new bytes. Either - * 'old_len' or 'new_len' may be zero to indicate, for example, the - * addition or removal of a trampoline. 'bytes' contains the old bytes - * followed immediately by the new bytes. - * - * struct { - * struct perf_event_header header; - * u64 addr; - * u16 old_len; - * u16 new_len; - * u8 bytes[]; - * struct sample_id sample_id; - * }; - */ - PERF_RECORD_TEXT_POKE = 20, - PERF_RECORD_MAX, /* non-ABI */ }; enum perf_record_ksymbol_type { PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, PERF_RECORD_KSYMBOL_TYPE_BPF = 1, - /* - * Out of line code such as kprobe-replaced instructions or optimized - * kprobes or ftrace trampolines. - */ - PERF_RECORD_KSYMBOL_TYPE_OOL = 2, PERF_RECORD_KSYMBOL_TYPE_MAX /* non-ABI */ }; @@ -1178,16 +1064,14 @@ union perf_mem_data_src { mem_lvl_num:4, /* memory hierarchy level number */ mem_remote:1, /* remote */ mem_snoopx:2, /* snoop mode, ext */ - mem_blk:3, /* access blocked */ - mem_rsvd:21; + mem_rsvd:24; }; }; #elif defined(__BIG_ENDIAN_BITFIELD) union perf_mem_data_src { __u64 val; struct { - __u64 mem_rsvd:21, - mem_blk:3, /* access blocked */ + __u64 mem_rsvd:24, mem_snoopx:2, /* snoop mode, ext */ mem_remote:1, /* remote */ mem_lvl_num:4, /* memory hierarchy level number */ @@ -1253,7 +1137,7 @@ union perf_mem_data_src { #define PERF_MEM_SNOOPX_FWD 0x01 /* forward */ /* 1 free */ -#define PERF_MEM_SNOOPX_SHIFT 38 +#define PERF_MEM_SNOOPX_SHIFT 37 /* locked instruction */ #define PERF_MEM_LOCK_NA 0x01 /* not available */ @@ -1270,12 +1154,6 @@ union perf_mem_data_src { #define PERF_MEM_TLB_OS 0x40 /* OS fault handler */ #define PERF_MEM_TLB_SHIFT 26 -/* Access blocked */ -#define PERF_MEM_BLK_NA 0x01 /* not available */ -#define PERF_MEM_BLK_DATA 0x02 /* data could not be forwarded */ -#define PERF_MEM_BLK_ADDR 0x04 /* address conflict */ -#define PERF_MEM_BLK_SHIFT 40 - #define PERF_MEM_S(a, s) \ (((__u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT) @@ -1307,23 +1185,4 @@ struct perf_branch_entry { reserved:40; }; -union perf_sample_weight { - __u64 full; -#if defined(__LITTLE_ENDIAN_BITFIELD) - struct { - __u32 var1_dw; - __u16 var2_w; - __u16 var3_w; - }; -#elif defined(__BIG_ENDIAN_BITFIELD) - struct { - __u16 var3_w; - __u16 var2_w; - __u32 var1_dw; - }; -#else -#error "Unknown endianness" -#endif -}; - #endif /* _UAPI_LINUX_PERF_EVENT_H */ diff --git a/original/uapi/linux/pidfd.h b/original/uapi/linux/pidfd.h deleted file mode 100644 index 5406fbc..0000000 --- a/original/uapi/linux/pidfd.h +++ /dev/null @@ -1,12 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ - -#ifndef _UAPI_LINUX_PIDFD_H -#define _UAPI_LINUX_PIDFD_H - -#include <linux/types.h> -#include <linux/fcntl.h> - -/* Flags for pidfd_open(). */ -#define PIDFD_NONBLOCK O_NONBLOCK - -#endif /* _UAPI_LINUX_PIDFD_H */ diff --git a/original/uapi/linux/pkt_cls.h b/original/uapi/linux/pkt_cls.h index 7ea59cf..449a639 100644 --- a/original/uapi/linux/pkt_cls.h +++ b/original/uapi/linux/pkt_cls.h @@ -17,8 +17,6 @@ enum { TCA_ACT_PAD, TCA_ACT_COOKIE, TCA_ACT_FLAGS, - TCA_ACT_HW_STATS, - TCA_ACT_USED_HW_STATS, __TCA_ACT_MAX }; @@ -26,26 +24,6 @@ enum { * actions stats. */ -/* tca HW stats type - * When user does not pass the attribute, he does not care. - * It is the same as if he would pass the attribute with - * all supported bits set. - * In case no bits are set, user is not interested in getting any HW statistics. - */ -#define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0) /* Means that in dump, user - * gets the current HW stats - * state from the device - * queried at the dump time. - */ -#define TCA_ACT_HW_STATS_DELAYED (1 << 1) /* Means that in dump, user gets - * HW stats that might be out of date - * for some time, maybe couple of - * seconds. This is the case when - * driver polls stats updates - * periodically or when it gets async - * stats update from the device. - */ - #define TCA_ACT_MAX __TCA_ACT_MAX #define TCA_OLD_COMPAT (TCA_ACT_MAX+1) #define TCA_ACT_MAX_PRIO 32 @@ -134,7 +112,6 @@ enum tca_id { TCA_ID_CTINFO, TCA_ID_MPLS, TCA_ID_CT, - TCA_ID_GATE, /* other actions go here */ __TCA_ID_MAX = 255 }; @@ -576,11 +553,6 @@ enum { TCA_FLOWER_KEY_CT_LABELS, /* u128 */ TCA_FLOWER_KEY_CT_LABELS_MASK, /* u128 */ - TCA_FLOWER_KEY_MPLS_OPTS, - - TCA_FLOWER_KEY_HASH, /* u32 */ - TCA_FLOWER_KEY_HASH_MASK, /* u32 */ - __TCA_FLOWER_MAX, }; @@ -591,9 +563,6 @@ enum { TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1, /* Part of an existing connection. */ TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2, /* Related to an established connection. */ TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3, /* Conntrack has occurred. */ - TCA_FLOWER_KEY_CT_FLAGS_INVALID = 1 << 4, /* Conntrack is invalid. */ - TCA_FLOWER_KEY_CT_FLAGS_REPLY = 1 << 5, /* Packet is in the reply direction. */ - __TCA_FLOWER_KEY_CT_FLAGS_MAX, }; enum { @@ -649,27 +618,6 @@ enum { (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1) enum { - TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC, - TCA_FLOWER_KEY_MPLS_OPTS_LSE, - __TCA_FLOWER_KEY_MPLS_OPTS_MAX, -}; - -#define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1) - -enum { - TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC, - TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH, - TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL, - TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS, - TCA_FLOWER_KEY_MPLS_OPT_LSE_TC, - TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL, - __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX, -}; - -#define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX \ - (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1) - -enum { TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), }; diff --git a/original/uapi/linux/pkt_sched.h b/original/uapi/linux/pkt_sched.h index 79a699f..9f1a728 100644 --- a/original/uapi/linux/pkt_sched.h +++ b/original/uapi/linux/pkt_sched.h @@ -256,9 +256,6 @@ enum { TCA_RED_PARMS, TCA_RED_STAB, TCA_RED_MAX_P, - TCA_RED_FLAGS, /* bitfield32 */ - TCA_RED_EARLY_DROP_BLOCK, /* u32 */ - TCA_RED_MARK_BLOCK, /* u32 */ __TCA_RED_MAX, }; @@ -271,28 +268,12 @@ struct tc_red_qopt { unsigned char Wlog; /* log(W) */ unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */ unsigned char Scell_log; /* cell size for idle damping */ - - /* This field can be used for flags that a RED-like qdisc has - * historically supported. E.g. when configuring RED, it can be used for - * ECN, HARDDROP and ADAPTATIVE. For SFQ it can be used for ECN, - * HARDDROP. Etc. Because this field has not been validated, and is - * copied back on dump, any bits besides those to which a given qdisc - * has assigned a historical meaning need to be considered for free use - * by userspace tools. - * - * Any further flags need to be passed differently, e.g. through an - * attribute (such as TCA_RED_FLAGS above). Such attribute should allow - * passing both recent and historic flags in one value. - */ unsigned char flags; #define TC_RED_ECN 1 #define TC_RED_HARDDROP 2 #define TC_RED_ADAPTATIVE 4 -#define TC_RED_NODROP 8 }; -#define TC_RED_HISTORIC_FLAGS (TC_RED_ECN | TC_RED_HARDDROP | TC_RED_ADAPTATIVE) - struct tc_red_xstats { __u32 early; /* Early drops */ __u32 pdrop; /* Drops due to queue limits */ @@ -434,7 +415,6 @@ enum { TCA_HTB_RATE64, TCA_HTB_CEIL64, TCA_HTB_PAD, - TCA_HTB_OFFLOAD, __TCA_HTB_MAX, }; @@ -914,12 +894,6 @@ enum { TCA_FQ_CE_THRESHOLD, /* DCTCP-like CE-marking threshold */ - TCA_FQ_TIMER_SLACK, /* timer slack */ - - TCA_FQ_HORIZON, /* time horizon in us */ - - TCA_FQ_HORIZON_DROP, /* drop packets beyond horizon, or cap their EDT */ - __TCA_FQ_MAX }; @@ -939,8 +913,6 @@ struct tc_fq_qd_stats { __u32 throttled_flows; __u32 unthrottle_latency_ns; __u64 ce_mark; /* packets above ce_threshold */ - __u64 horizon_drops; - __u64 horizon_caps; }; /* Heavy-Hitter Filter */ @@ -999,37 +971,6 @@ struct tc_pie_xstats { __u32 ecn_mark; /* packets marked with ecn*/ }; -/* FQ PIE */ -enum { - TCA_FQ_PIE_UNSPEC, - TCA_FQ_PIE_LIMIT, - TCA_FQ_PIE_FLOWS, - TCA_FQ_PIE_TARGET, - TCA_FQ_PIE_TUPDATE, - TCA_FQ_PIE_ALPHA, - TCA_FQ_PIE_BETA, - TCA_FQ_PIE_QUANTUM, - TCA_FQ_PIE_MEMORY_LIMIT, - TCA_FQ_PIE_ECN_PROB, - TCA_FQ_PIE_ECN, - TCA_FQ_PIE_BYTEMODE, - TCA_FQ_PIE_DQ_RATE_ESTIMATOR, - __TCA_FQ_PIE_MAX -}; -#define TCA_FQ_PIE_MAX (__TCA_FQ_PIE_MAX - 1) - -struct tc_fq_pie_xstats { - __u32 packets_in; /* total number of packets enqueued */ - __u32 dropped; /* packets dropped due to fq_pie_action */ - __u32 overlimit; /* dropped due to lack of space in queue */ - __u32 overmemory; /* dropped due to lack of memory in queue */ - __u32 ecn_mark; /* packets marked with ecn */ - __u32 new_flow_count; /* count of new flows created by packets */ - __u32 new_flows_len; /* count of flows in new list */ - __u32 old_flows_len; /* count of flows in old list */ - __u32 memory_usage; /* total memory across all queues */ -}; - /* CBS */ struct tc_cbs_qopt { __u8 offload; @@ -1225,8 +1166,8 @@ enum { * [TCA_TAPRIO_ATTR_SCHED_ENTRY_INTERVAL] */ -#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0) -#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1) +#define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST BIT(0) +#define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD BIT(1) enum { TCA_TAPRIO_ATTR_UNSPEC, @@ -1246,21 +1187,4 @@ enum { #define TCA_TAPRIO_ATTR_MAX (__TCA_TAPRIO_ATTR_MAX - 1) -/* ETS */ - -#define TCQ_ETS_MAX_BANDS 16 - -enum { - TCA_ETS_UNSPEC, - TCA_ETS_NBANDS, /* u8 */ - TCA_ETS_NSTRICT, /* u8 */ - TCA_ETS_QUANTA, /* nested TCA_ETS_QUANTA_BAND */ - TCA_ETS_QUANTA_BAND, /* u32 */ - TCA_ETS_PRIOMAP, /* nested TCA_ETS_PRIOMAP_BAND */ - TCA_ETS_PRIOMAP_BAND, /* u8 */ - __TCA_ETS_MAX, -}; - -#define TCA_ETS_MAX (__TCA_ETS_MAX - 1) - #endif diff --git a/original/uapi/linux/ppp-ioctl.h b/original/uapi/linux/ppp-ioctl.h index 1cc5ce0..7bd2a5a 100644 --- a/original/uapi/linux/ppp-ioctl.h +++ b/original/uapi/linux/ppp-ioctl.h @@ -115,8 +115,6 @@ struct pppol2tp_ioc_stats { #define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */ #define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */ #define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats) -#define PPPIOCBRIDGECHAN _IOW('t', 53, int) /* bridge one channel to another */ -#define PPPIOCUNBRIDGECHAN _IO('t', 52) /* unbridge channel */ #define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) #define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ diff --git a/original/uapi/linux/prctl.h b/original/uapi/linux/prctl.h index 5d836c9..bc4a5d9 100644 --- a/original/uapi/linux/prctl.h +++ b/original/uapi/linux/prctl.h @@ -233,27 +233,6 @@ struct prctl_mm_map { #define PR_SET_TAGGED_ADDR_CTRL 55 #define PR_GET_TAGGED_ADDR_CTRL 56 # define PR_TAGGED_ADDR_ENABLE (1UL << 0) -/* MTE tag check fault modes */ -# define PR_MTE_TCF_SHIFT 1 -# define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT) -# define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT) -# define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT) -# define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT) -/* MTE tag inclusion mask */ -# define PR_MTE_TAG_SHIFT 3 -# define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT) - -/* Control reclaim behavior when allocating memory */ -#define PR_SET_IO_FLUSHER 57 -#define PR_GET_IO_FLUSHER 58 - -/* Dispatch syscalls to a userspace handler */ -#define PR_SET_SYSCALL_USER_DISPATCH 59 -# define PR_SYS_DISPATCH_OFF 0 -# define PR_SYS_DISPATCH_ON 1 -/* The control values for the user space selector when dispatch is enabled */ -# define SYSCALL_DISPATCH_FILTER_ALLOW 0 -# define SYSCALL_DISPATCH_FILTER_BLOCK 1 #define PR_SET_VMA 0x53564d41 # define PR_SET_VMA_ANON_NAME 0 diff --git a/original/uapi/linux/psample.h b/original/uapi/linux/psample.h index bff5032..ce1116c 100644 --- a/original/uapi/linux/psample.h +++ b/original/uapi/linux/psample.h @@ -3,6 +3,7 @@ #define __UAPI_PSAMPLE_H enum { + /* sampled packet metadata */ PSAMPLE_ATTR_IIFINDEX, PSAMPLE_ATTR_OIFINDEX, PSAMPLE_ATTR_ORIGSIZE, @@ -10,8 +11,9 @@ enum { PSAMPLE_ATTR_GROUP_SEQ, PSAMPLE_ATTR_SAMPLE_RATE, PSAMPLE_ATTR_DATA, + + /* commands attributes */ PSAMPLE_ATTR_GROUP_REFCOUNT, - PSAMPLE_ATTR_TUNNEL, __PSAMPLE_ATTR_MAX }; @@ -23,27 +25,6 @@ enum psample_command { PSAMPLE_CMD_DEL_GROUP, }; -enum psample_tunnel_key_attr { - PSAMPLE_TUNNEL_KEY_ATTR_ID, /* be64 Tunnel ID */ - PSAMPLE_TUNNEL_KEY_ATTR_IPV4_SRC, /* be32 src IP address. */ - PSAMPLE_TUNNEL_KEY_ATTR_IPV4_DST, /* be32 dst IP address. */ - PSAMPLE_TUNNEL_KEY_ATTR_TOS, /* u8 Tunnel IP ToS. */ - PSAMPLE_TUNNEL_KEY_ATTR_TTL, /* u8 Tunnel IP TTL. */ - PSAMPLE_TUNNEL_KEY_ATTR_DONT_FRAGMENT, /* No argument, set DF. */ - PSAMPLE_TUNNEL_KEY_ATTR_CSUM, /* No argument. CSUM packet. */ - PSAMPLE_TUNNEL_KEY_ATTR_OAM, /* No argument. OAM frame. */ - PSAMPLE_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */ - PSAMPLE_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */ - PSAMPLE_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */ - PSAMPLE_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested VXLAN opts* */ - PSAMPLE_TUNNEL_KEY_ATTR_IPV6_SRC, /* struct in6_addr src IPv6 address. */ - PSAMPLE_TUNNEL_KEY_ATTR_IPV6_DST, /* struct in6_addr dst IPv6 address. */ - PSAMPLE_TUNNEL_KEY_ATTR_PAD, - PSAMPLE_TUNNEL_KEY_ATTR_ERSPAN_OPTS, /* struct erspan_metadata */ - PSAMPLE_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE, /* No argument. IPV4_INFO_BRIDGE mode.*/ - __PSAMPLE_TUNNEL_KEY_ATTR_MAX -}; - /* Can be overridden at runtime by module option */ #define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1) diff --git a/original/uapi/linux/psp-sev.h b/original/uapi/linux/psp-sev.h index 91b4c63..0549a5c 100644 --- a/original/uapi/linux/psp-sev.h +++ b/original/uapi/linux/psp-sev.h @@ -83,8 +83,6 @@ struct sev_user_data_status { __u32 guest_count; /* Out */ } __packed; -#define SEV_STATUS_FLAGS_CONFIG_ES 0x0100 - /** * struct sev_user_data_pek_csr - PEK_CSR command parameters * diff --git a/original/uapi/linux/ptp_clock.h b/original/uapi/linux/ptp_clock.h index 1d108d5..9dc9d00 100644 --- a/original/uapi/linux/ptp_clock.h +++ b/original/uapi/linux/ptp_clock.h @@ -53,16 +53,12 @@ /* * Bits of the ptp_perout_request.flags field: */ -#define PTP_PEROUT_ONE_SHOT (1<<0) -#define PTP_PEROUT_DUTY_CYCLE (1<<1) -#define PTP_PEROUT_PHASE (1<<2) +#define PTP_PEROUT_ONE_SHOT (1<<0) /* * flag fields valid for the new PTP_PEROUT_REQUEST2 ioctl. */ -#define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT | \ - PTP_PEROUT_DUTY_CYCLE | \ - PTP_PEROUT_PHASE) +#define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT) /* * No flags are valid for the original PTP_PEROUT_REQUEST ioctl @@ -93,9 +89,7 @@ struct ptp_clock_caps { int n_pins; /* Number of input/output pins. */ /* Whether the clock supports precise system-device cross timestamps */ int cross_timestamping; - /* Whether the clock supports adjust phase */ - int adjust_phase; - int rsv[12]; /* Reserved for future use. */ + int rsv[13]; /* Reserved for future use. */ }; struct ptp_extts_request { @@ -105,33 +99,11 @@ struct ptp_extts_request { }; struct ptp_perout_request { - union { - /* - * Absolute start time. - * Valid only if (flags & PTP_PEROUT_PHASE) is unset. - */ - struct ptp_clock_time start; - /* - * Phase offset. The signal should start toggling at an - * unspecified integer multiple of the period, plus this value. - * The start time should be "as soon as possible". - * Valid only if (flags & PTP_PEROUT_PHASE) is set. - */ - struct ptp_clock_time phase; - }; + struct ptp_clock_time start; /* Absolute start time. */ struct ptp_clock_time period; /* Desired period, zero means disable. */ unsigned int index; /* Which channel to configure. */ unsigned int flags; - union { - /* - * The "on" time of the signal. - * Must be lower than the period. - * Valid only if (flags & PTP_PEROUT_DUTY_CYCLE) is set. - */ - struct ptp_clock_time on; - /* Reserved for future use. */ - unsigned int rsv[4]; - }; + unsigned int rsv[4]; /* Reserved for future use. */ }; #define PTP_MAX_SAMPLES 25 /* Maximum allowed offset measurement samples. */ diff --git a/original/uapi/linux/ptrace.h b/original/uapi/linux/ptrace.h index 83ee45f..a71b6e3 100644 --- a/original/uapi/linux/ptrace.h +++ b/original/uapi/linux/ptrace.h @@ -81,8 +81,7 @@ struct seccomp_metadata { struct ptrace_syscall_info { __u8 op; /* PTRACE_SYSCALL_INFO_* */ - __u8 pad[3]; - __u32 arch; + __u32 arch __attribute__((__aligned__(sizeof(__u32)))); __u64 instruction_pointer; __u64 stack_pointer; union { diff --git a/original/uapi/linux/raid/md_p.h b/original/uapi/linux/raid/md_p.h index e5a98a1..1f2d8c8 100644 --- a/original/uapi/linux/raid/md_p.h +++ b/original/uapi/linux/raid/md_p.h @@ -123,7 +123,7 @@ typedef struct mdp_device_descriptor_s { /* * Notes: - * - if an array is being reshaped (restriped) in order to change + * - if an array is being reshaped (restriped) in order to change the * the number of active devices in the array, 'raid_disks' will be * the larger of the old and new numbers. 'delta_disks' will * be the "new - old". So if +ve, raid_disks is the new value, and diff --git a/original/uapi/linux/random.h b/original/uapi/linux/random.h index dcc1b3e..26ee913 100644 --- a/original/uapi/linux/random.h +++ b/original/uapi/linux/random.h @@ -48,11 +48,9 @@ struct rand_pool_info { * Flags for getrandom(2) * * GRND_NONBLOCK Don't block and return EAGAIN instead - * GRND_RANDOM No effect - * GRND_INSECURE Return non-cryptographic random bytes + * GRND_RANDOM Use the /dev/random pool instead of /dev/urandom */ #define GRND_NONBLOCK 0x0001 #define GRND_RANDOM 0x0002 -#define GRND_INSECURE 0x0004 #endif /* _UAPI_LINUX_RANDOM_H */ diff --git a/original/uapi/linux/raw.h b/original/uapi/linux/raw.h index 4787491..dc96dda 100644 --- a/original/uapi/linux/raw.h +++ b/original/uapi/linux/raw.h @@ -14,4 +14,6 @@ struct raw_config_request __u64 block_minor; }; +#define MAX_RAW_MINORS CONFIG_MAX_RAW_DEVS + #endif /* __LINUX_RAW_H */ diff --git a/original/uapi/linux/rds.h b/original/uapi/linux/rds.h index c21edb9..cba368e 100644 --- a/original/uapi/linux/rds.h +++ b/original/uapi/linux/rds.h @@ -64,12 +64,10 @@ /* supported values for SO_RDS_TRANSPORT */ #define RDS_TRANS_IB 0 -#define RDS_TRANS_GAP 1 +#define RDS_TRANS_IWARP 1 #define RDS_TRANS_TCP 2 #define RDS_TRANS_COUNT 3 #define RDS_TRANS_NONE (~0) -/* don't use RDS_TRANS_IWARP - it is deprecated */ -#define RDS_TRANS_IWARP RDS_TRANS_GAP /* IOCTLS commands for SOL_RDS */ #define SIOCRDSSETTOS (SIOCPROTOPRIVATE) diff --git a/original/uapi/linux/remoteproc_cdev.h b/original/uapi/linux/remoteproc_cdev.h deleted file mode 100644 index c43768e..0000000 --- a/original/uapi/linux/remoteproc_cdev.h +++ /dev/null @@ -1,37 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ -/* - * IOCTLs for Remoteproc's character device interface. - * - * Copyright (c) 2020, The Linux Foundation. All rights reserved. - */ - -#ifndef _UAPI_REMOTEPROC_CDEV_H_ -#define _UAPI_REMOTEPROC_CDEV_H_ - -#include <linux/ioctl.h> -#include <linux/types.h> - -#define RPROC_MAGIC 0xB7 - -/* - * The RPROC_SET_SHUTDOWN_ON_RELEASE ioctl allows to enable/disable the shutdown of a remote - * processor automatically when the controlling userpsace closes the char device interface. - * - * input parameter: integer - * 0 : disable automatic shutdown - * other : enable automatic shutdown - */ -#define RPROC_SET_SHUTDOWN_ON_RELEASE _IOW(RPROC_MAGIC, 1, __s32) - -/* - * The RPROC_GET_SHUTDOWN_ON_RELEASE ioctl gets information about whether the automatic shutdown of - * a remote processor is enabled or disabled when the controlling userspace closes the char device - * interface. - * - * output parameter: integer - * 0 : automatic shutdown disable - * other : automatic shutdown enable - */ -#define RPROC_GET_SHUTDOWN_ON_RELEASE _IOR(RPROC_MAGIC, 2, __s32) - -#endif diff --git a/original/uapi/linux/rfkill.h b/original/uapi/linux/rfkill.h index 9b77cfc..2e00dce 100644 --- a/original/uapi/linux/rfkill.h +++ b/original/uapi/linux/rfkill.h @@ -70,16 +70,6 @@ enum rfkill_operation { }; /** - * enum rfkill_hard_block_reasons - hard block reasons - * @RFKILL_HARD_BLOCK_SIGNAL: the hardware rfkill signal is active - * @RFKILL_HARD_BLOCK_NOT_OWNER: the NIC is not owned by the host - */ -enum rfkill_hard_block_reasons { - RFKILL_HARD_BLOCK_SIGNAL = 1 << 0, - RFKILL_HARD_BLOCK_NOT_OWNER = 1 << 1, -}; - -/** * struct rfkill_event - events for userspace on /dev/rfkill * @idx: index of dev rfkill * @type: type of the rfkill struct @@ -94,82 +84,22 @@ struct rfkill_event { __u32 idx; __u8 type; __u8 op; - __u8 soft; - __u8 hard; + __u8 soft, hard; } __attribute__((packed)); -/** - * struct rfkill_event_ext - events for userspace on /dev/rfkill - * @idx: index of dev rfkill - * @type: type of the rfkill struct - * @op: operation code - * @hard: hard state (0/1) - * @soft: soft state (0/1) - * @hard_block_reasons: valid if hard is set. One or several reasons from - * &enum rfkill_hard_block_reasons. - * - * Structure used for userspace communication on /dev/rfkill, - * used for events from the kernel and control to the kernel. - * - * See the extensibility docs below. - */ -struct rfkill_event_ext { - __u32 idx; - __u8 type; - __u8 op; - __u8 soft; - __u8 hard; - - /* - * older kernels will accept/send only up to this point, - * and if extended further up to any chunk marked below - */ - - __u8 hard_block_reasons; -} __attribute__((packed)); - -/** - * DOC: Extensibility - * - * Originally, we had planned to allow backward and forward compatible - * changes by just adding fields at the end of the structure that are - * then not reported on older kernels on read(), and not written to by - * older kernels on write(), with the kernel reporting the size it did - * accept as the result. - * - * This would have allowed userspace to detect on read() and write() - * which kernel structure version it was dealing with, and if was just - * recompiled it would have gotten the new fields, but obviously not - * accessed them, but things should've continued to work. - * - * Unfortunately, while actually exercising this mechanism to add the - * hard block reasons field, we found that userspace (notably systemd) - * did all kinds of fun things not in line with this scheme: - * - * 1. treat the (expected) short writes as an error; - * 2. ask to read sizeof(struct rfkill_event) but then compare the - * actual return value to RFKILL_EVENT_SIZE_V1 and treat any - * mismatch as an error. - * - * As a consequence, just recompiling with a new struct version caused - * things to no longer work correctly on old and new kernels. - * - * Hence, we've rolled back &struct rfkill_event to the original version - * and added &struct rfkill_event_ext. This effectively reverts to the - * old behaviour for all userspace, unless it explicitly opts in to the - * rules outlined here by using the new &struct rfkill_event_ext. - * - * Userspace using &struct rfkill_event_ext must adhere to the following - * rules +/* + * We are planning to be backward and forward compatible with changes + * to the event struct, by adding new, optional, members at the end. + * When reading an event (whether the kernel from userspace or vice + * versa) we need to accept anything that's at least as large as the + * version 1 event size, but might be able to accept other sizes in + * the future. * - * 1. accept short writes, optionally using them to detect that it's - * running on an older kernel; - * 2. accept short reads, knowing that this means it's running on an - * older kernel; - * 3. treat reads that are as long as requested as acceptable, not - * checking against RFKILL_EVENT_SIZE_V1 or such. + * One exception is the kernel -- we already have two event sizes in + * that we've made the 'hard' member optional since our only option + * is to ignore it anyway. */ -#define RFKILL_EVENT_SIZE_V1 sizeof(struct rfkill_event) +#define RFKILL_EVENT_SIZE_V1 8 /* ioctl for turning off rfkill-input (if present) */ #define RFKILL_IOC_MAGIC 'R' diff --git a/original/uapi/linux/rkisp1-config.h b/original/uapi/linux/rkisp1-config.h deleted file mode 100644 index 36e3efb..0000000 --- a/original/uapi/linux/rkisp1-config.h +++ /dev/null @@ -1,950 +0,0 @@ -/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR MIT) */ -/* - * Rockchip ISP1 userspace API - * Copyright (C) 2017 Rockchip Electronics Co., Ltd. - */ - -#ifndef _UAPI_RKISP1_CONFIG_H -#define _UAPI_RKISP1_CONFIG_H - -#include <linux/types.h> - -/* Defect Pixel Cluster Detection */ -#define RKISP1_CIF_ISP_MODULE_DPCC (1U << 0) -/* Black Level Subtraction */ -#define RKISP1_CIF_ISP_MODULE_BLS (1U << 1) -/* Sensor De-gamma */ -#define RKISP1_CIF_ISP_MODULE_SDG (1U << 2) -/* Histogram */ -#define RKISP1_CIF_ISP_MODULE_HST (1U << 3) -/* Lens Shade Control */ -#define RKISP1_CIF_ISP_MODULE_LSC (1U << 4) -/* Auto White Balance Gain */ -#define RKISP1_CIF_ISP_MODULE_AWB_GAIN (1U << 5) -/* Filter */ -#define RKISP1_CIF_ISP_MODULE_FLT (1U << 6) -/* Bayer Demosaic */ -#define RKISP1_CIF_ISP_MODULE_BDM (1U << 7) -/* Cross Talk */ -#define RKISP1_CIF_ISP_MODULE_CTK (1U << 8) -/* Gamma Out Curve */ -#define RKISP1_CIF_ISP_MODULE_GOC (1U << 9) -/* Color Processing */ -#define RKISP1_CIF_ISP_MODULE_CPROC (1U << 10) -/* Auto Focus Control */ -#define RKISP1_CIF_ISP_MODULE_AFC (1U << 11) -/* Auto White Balancing */ -#define RKISP1_CIF_ISP_MODULE_AWB (1U << 12) -/* Image Effect */ -#define RKISP1_CIF_ISP_MODULE_IE (1U << 13) -/* Auto Exposure Control */ -#define RKISP1_CIF_ISP_MODULE_AEC (1U << 14) -/* Wide Dynamic Range */ -#define RKISP1_CIF_ISP_MODULE_WDR (1U << 15) -/* Denoise Pre-Filter */ -#define RKISP1_CIF_ISP_MODULE_DPF (1U << 16) -/* Denoise Pre-Filter Strength */ -#define RKISP1_CIF_ISP_MODULE_DPF_STRENGTH (1U << 17) - -#define RKISP1_CIF_ISP_CTK_COEFF_MAX 0x100 -#define RKISP1_CIF_ISP_CTK_OFFSET_MAX 0x800 - -#define RKISP1_CIF_ISP_AE_MEAN_MAX_V10 25 -#define RKISP1_CIF_ISP_AE_MEAN_MAX_V12 81 -#define RKISP1_CIF_ISP_AE_MEAN_MAX RKISP1_CIF_ISP_AE_MEAN_MAX_V12 - -#define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 16 -#define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 32 -#define RKISP1_CIF_ISP_HIST_BIN_N_MAX RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 - -#define RKISP1_CIF_ISP_AFM_MAX_WINDOWS 3 -#define RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE 17 - -#define RKISP1_CIF_ISP_BDM_MAX_TH 0xff - -/* - * Black level compensation - */ -/* maximum value for horizontal start address */ -#define RKISP1_CIF_ISP_BLS_START_H_MAX 0x00000fff -/* maximum value for horizontal stop address */ -#define RKISP1_CIF_ISP_BLS_STOP_H_MAX 0x00000fff -/* maximum value for vertical start address */ -#define RKISP1_CIF_ISP_BLS_START_V_MAX 0x00000fff -/* maximum value for vertical stop address */ -#define RKISP1_CIF_ISP_BLS_STOP_V_MAX 0x00000fff -/* maximum is 2^18 = 262144*/ -#define RKISP1_CIF_ISP_BLS_SAMPLES_MAX 0x00000012 -/* maximum value for fixed black level */ -#define RKISP1_CIF_ISP_BLS_FIX_SUB_MAX 0x00000fff -/* minimum value for fixed black level */ -#define RKISP1_CIF_ISP_BLS_FIX_SUB_MIN 0xfffff000 -/* 13 bit range (signed)*/ -#define RKISP1_CIF_ISP_BLS_FIX_MASK 0x00001fff - -/* - * Automatic white balance measurements - */ -#define RKISP1_CIF_ISP_AWB_MAX_GRID 1 -#define RKISP1_CIF_ISP_AWB_MAX_FRAMES 7 - -/* - * Gamma out - */ -/* Maximum number of color samples supported */ -#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 17 -#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 34 -#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 - -/* - * Lens shade correction - */ -#define RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE 8 - -/* - * The following matches the tuning process, - * not the max capabilities of the chip. - */ -#define RKISP1_CIF_ISP_LSC_SAMPLES_MAX 17 - -/* - * Histogram calculation - */ -#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 25 -#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 81 -#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 - -/* - * Defect Pixel Cluster Correction - */ -#define RKISP1_CIF_ISP_DPCC_METHODS_MAX 3 - -/* - * Denoising pre filter - */ -#define RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS 17 -#define RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS 6 - -/* - * Measurement types - */ -#define RKISP1_CIF_ISP_STAT_AWB (1U << 0) -#define RKISP1_CIF_ISP_STAT_AUTOEXP (1U << 1) -#define RKISP1_CIF_ISP_STAT_AFM (1U << 2) -#define RKISP1_CIF_ISP_STAT_HIST (1U << 3) - -/** - * enum rkisp1_cif_isp_version - ISP variants - * - * @RKISP1_V10: used at least in rk3288 and rk3399 - * @RKISP1_V11: declared in the original vendor code, but not used - * @RKISP1_V12: used at least in rk3326 and px30 - * @RKISP1_V13: used at least in rk1808 - */ -enum rkisp1_cif_isp_version { - RKISP1_V10 = 10, - RKISP1_V11, - RKISP1_V12, - RKISP1_V13, -}; - -enum rkisp1_cif_isp_histogram_mode { - RKISP1_CIF_ISP_HISTOGRAM_MODE_DISABLE, - RKISP1_CIF_ISP_HISTOGRAM_MODE_RGB_COMBINED, - RKISP1_CIF_ISP_HISTOGRAM_MODE_R_HISTOGRAM, - RKISP1_CIF_ISP_HISTOGRAM_MODE_G_HISTOGRAM, - RKISP1_CIF_ISP_HISTOGRAM_MODE_B_HISTOGRAM, - RKISP1_CIF_ISP_HISTOGRAM_MODE_Y_HISTOGRAM -}; - -enum rkisp1_cif_isp_awb_mode_type { - RKISP1_CIF_ISP_AWB_MODE_MANUAL, - RKISP1_CIF_ISP_AWB_MODE_RGB, - RKISP1_CIF_ISP_AWB_MODE_YCBCR -}; - -enum rkisp1_cif_isp_flt_mode { - RKISP1_CIF_ISP_FLT_STATIC_MODE, - RKISP1_CIF_ISP_FLT_DYNAMIC_MODE -}; - -/** - * enum rkisp1_cif_isp_exp_ctrl_autostop - stop modes - * @RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_0: continuous measurement - * @RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_1: stop measuring after a complete frame - */ -enum rkisp1_cif_isp_exp_ctrl_autostop { - RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_0 = 0, - RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_1 = 1, -}; - -/** - * enum rkisp1_cif_isp_exp_meas_mode - Exposure measure mode - * @RKISP1_CIF_ISP_EXP_MEASURING_MODE_0: Y = 16 + 0.25R + 0.5G + 0.1094B - * @RKISP1_CIF_ISP_EXP_MEASURING_MODE_1: Y = (R + G + B) x (85/256) - */ -enum rkisp1_cif_isp_exp_meas_mode { - RKISP1_CIF_ISP_EXP_MEASURING_MODE_0, - RKISP1_CIF_ISP_EXP_MEASURING_MODE_1, -}; - -/*---------- PART1: Input Parameters ------------*/ - -/** - * struct rkisp1_cif_isp_window - measurement window. - * - * Measurements are calculated per window inside the frame. - * This struct represents a window for a measurement. - * - * @h_offs: the horizontal offset of the window from the left of the frame in pixels. - * @v_offs: the vertical offset of the window from the top of the frame in pixels. - * @h_size: the horizontal size of the window in pixels - * @v_size: the vertical size of the window in pixels. - */ -struct rkisp1_cif_isp_window { - __u16 h_offs; - __u16 v_offs; - __u16 h_size; - __u16 v_size; -}; - -/** - * struct rkisp1_cif_isp_bls_fixed_val - BLS fixed subtraction values - * - * The values will be subtracted from the sensor - * values. Therefore a negative value means addition instead of subtraction! - * - * @r: Fixed (signed!) subtraction value for Bayer pattern R - * @gr: Fixed (signed!) subtraction value for Bayer pattern Gr - * @gb: Fixed (signed!) subtraction value for Bayer pattern Gb - * @b: Fixed (signed!) subtraction value for Bayer pattern B - */ -struct rkisp1_cif_isp_bls_fixed_val { - __s16 r; - __s16 gr; - __s16 gb; - __s16 b; -}; - -/** - * struct rkisp1_cif_isp_bls_config - Configuration used by black level subtraction - * - * @enable_auto: Automatic mode activated means that the measured values - * are subtracted. Otherwise the fixed subtraction - * values will be subtracted. - * @en_windows: enabled window - * @bls_window1: Measurement window 1 size - * @bls_window2: Measurement window 2 size - * @bls_samples: Set amount of measured pixels for each Bayer position - * (A, B,C and D) to 2^bls_samples. - * @fixed_val: Fixed subtraction values - */ -struct rkisp1_cif_isp_bls_config { - __u8 enable_auto; - __u8 en_windows; - struct rkisp1_cif_isp_window bls_window1; - struct rkisp1_cif_isp_window bls_window2; - __u8 bls_samples; - struct rkisp1_cif_isp_bls_fixed_val fixed_val; -}; - -/** - * struct rkisp1_cif_isp_dpcc_methods_config - Methods Configuration used by DPCC - * - * Methods Configuration used by Defect Pixel Cluster Correction - * - * @method: Method enable bits - * @line_thresh: Line threshold - * @line_mad_fac: Line MAD factor - * @pg_fac: Peak gradient factor - * @rnd_thresh: Rank Neighbor Difference threshold - * @rg_fac: Rank gradient factor - */ -struct rkisp1_cif_isp_dpcc_methods_config { - __u32 method; - __u32 line_thresh; - __u32 line_mad_fac; - __u32 pg_fac; - __u32 rnd_thresh; - __u32 rg_fac; -}; - -/** - * struct rkisp1_cif_isp_dpcc_config - Configuration used by DPCC - * - * Configuration used by Defect Pixel Cluster Correction - * - * @mode: dpcc output mode - * @output_mode: whether use hard coded methods - * @set_use: stage1 methods set - * @methods: methods config - * @ro_limits: rank order limits - * @rnd_offs: differential rank offsets for rank neighbor difference - */ -struct rkisp1_cif_isp_dpcc_config { - __u32 mode; - __u32 output_mode; - __u32 set_use; - struct rkisp1_cif_isp_dpcc_methods_config methods[RKISP1_CIF_ISP_DPCC_METHODS_MAX]; - __u32 ro_limits; - __u32 rnd_offs; -}; - -/** - * struct rkisp1_cif_isp_gamma_corr_curve - gamma curve point definition y-axis (output). - * - * The reset values define a linear curve which has the same effect as bypass. Reset values are: - * gamma_y[0] = 0x0000, gamma_y[1] = 0x0100, ... gamma_y[15] = 0x0f00, gamma_y[16] = 0xfff - * - * @gamma_y: the values for the y-axis of gamma curve points. Each value is 12 bit. - */ -struct rkisp1_cif_isp_gamma_corr_curve { - __u16 gamma_y[RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE]; -}; - -/** - * struct rkisp1_cif_isp_gamma_curve_x_axis_pnts - De-Gamma Curve definition x increments - * (sampling points). gamma_dx0 is for the lower samples (1-8), gamma_dx1 is for the - * higher samples (9-16). The reset values for both fields is 0x44444444. This means - * that each sample is 4 units away from the previous one on the x-axis. - * - * @gamma_dx0: gamma curve sample points definitions. Bits 0:2 for sample 1. Bit 3 unused. - * Bits 4:6 for sample 2. bit 7 unused ... Bits 28:30 for sample 8. Bit 31 unused - * @gamma_dx1: gamma curve sample points definitions. Bits 0:2 for sample 9. Bit 3 unused. - * Bits 4:6 for sample 10. bit 7 unused ... Bits 28:30 for sample 16. Bit 31 unused - */ -struct rkisp1_cif_isp_gamma_curve_x_axis_pnts { - __u32 gamma_dx0; - __u32 gamma_dx1; -}; - -/** - * struct rkisp1_cif_isp_sdg_config - Configuration used by sensor degamma - * - * @curve_r: gamma curve point definition axis for red - * @curve_g: gamma curve point definition axis for green - * @curve_b: gamma curve point definition axis for blue - * @xa_pnts: x axis increments - */ -struct rkisp1_cif_isp_sdg_config { - struct rkisp1_cif_isp_gamma_corr_curve curve_r; - struct rkisp1_cif_isp_gamma_corr_curve curve_g; - struct rkisp1_cif_isp_gamma_corr_curve curve_b; - struct rkisp1_cif_isp_gamma_curve_x_axis_pnts xa_pnts; -}; - -/** - * struct rkisp1_cif_isp_lsc_config - Configuration used by Lens shading correction - * - * @r_data_tbl: sample table red - * @gr_data_tbl: sample table green (red) - * @gb_data_tbl: sample table green (blue) - * @b_data_tbl: sample table blue - * @x_grad_tbl: gradient table x - * @y_grad_tbl: gradient table y - * @x_size_tbl: size table x - * @y_size_tbl: size table y - * @config_width: not used at the moment - * @config_height: not used at the moment - */ -struct rkisp1_cif_isp_lsc_config { - __u16 r_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; - __u16 gr_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; - __u16 gb_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; - __u16 b_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; - - __u16 x_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; - __u16 y_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; - - __u16 x_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; - __u16 y_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; - __u16 config_width; - __u16 config_height; -}; - -/** - * struct rkisp1_cif_isp_ie_config - Configuration used by image effects - * - * @effect: values from 'enum v4l2_colorfx'. Possible values are: V4L2_COLORFX_SEPIA, - * V4L2_COLORFX_SET_CBCR, V4L2_COLORFX_AQUA, V4L2_COLORFX_EMBOSS, - * V4L2_COLORFX_SKETCH, V4L2_COLORFX_BW, V4L2_COLORFX_NEGATIVE - * @color_sel: bits 0:2 - colors bitmask (001 - blue, 010 - green, 100 - red). - * bits 8:15 - Threshold value of the RGB colors for the color selection effect. - * @eff_mat_1: 3x3 Matrix Coefficients for Emboss Effect 1 - * @eff_mat_2: 3x3 Matrix Coefficients for Emboss Effect 2 - * @eff_mat_3: 3x3 Matrix Coefficients for Emboss 3/Sketch 1 - * @eff_mat_4: 3x3 Matrix Coefficients for Sketch Effect 2 - * @eff_mat_5: 3x3 Matrix Coefficients for Sketch Effect 3 - * @eff_tint: Chrominance increment values of tint (used for sepia effect) - */ -struct rkisp1_cif_isp_ie_config { - __u16 effect; - __u16 color_sel; - __u16 eff_mat_1; - __u16 eff_mat_2; - __u16 eff_mat_3; - __u16 eff_mat_4; - __u16 eff_mat_5; - __u16 eff_tint; -}; - -/** - * struct rkisp1_cif_isp_cproc_config - Configuration used by Color Processing - * - * @c_out_range: Chrominance pixel clipping range at output. - * (0 for limit, 1 for full) - * @y_in_range: Luminance pixel clipping range at output. - * @y_out_range: Luminance pixel clipping range at output. - * @contrast: 00~ff, 0.0~1.992 - * @brightness: 80~7F, -128~+127 - * @sat: saturation, 00~FF, 0.0~1.992 - * @hue: 80~7F, -90~+87.188 - */ -struct rkisp1_cif_isp_cproc_config { - __u8 c_out_range; - __u8 y_in_range; - __u8 y_out_range; - __u8 contrast; - __u8 brightness; - __u8 sat; - __u8 hue; -}; - -/** - * struct rkisp1_cif_isp_awb_meas_config - Configuration used by auto white balance - * - * @awb_mode: the awb meas mode. From enum rkisp1_cif_isp_awb_mode_type. - * @awb_wnd: white balance measurement window (in pixels) - * @max_y: only pixels values < max_y contribute to awb measurement, set to 0 - * to disable this feature - * @min_y: only pixels values > min_y contribute to awb measurement - * @max_csum: Chrominance sum maximum value, only consider pixels with Cb+Cr, - * smaller than threshold for awb measurements - * @min_c: Chrominance minimum value, only consider pixels with Cb/Cr - * each greater than threshold value for awb measurements - * @frames: number of frames - 1 used for mean value calculation - * (ucFrames=0 means 1 Frame) - * @awb_ref_cr: reference Cr value for AWB regulation, target for AWB - * @awb_ref_cb: reference Cb value for AWB regulation, target for AWB - * @enable_ymax_cmp: enable Y_MAX compare (Not valid in RGB measurement mode.) - */ -struct rkisp1_cif_isp_awb_meas_config { - /* - * Note: currently the h and v offsets are mapped to grid offsets - */ - struct rkisp1_cif_isp_window awb_wnd; - __u32 awb_mode; - __u8 max_y; - __u8 min_y; - __u8 max_csum; - __u8 min_c; - __u8 frames; - __u8 awb_ref_cr; - __u8 awb_ref_cb; - __u8 enable_ymax_cmp; -}; - -/** - * struct rkisp1_cif_isp_awb_gain_config - Configuration used by auto white balance gain - * - * All fields in this struct are 10 bit, where: - * 0x100h = 1, unsigned integer value, range 0 to 4 with 8 bit fractional part. - * - * out_data_x = ( AWB_GAIN_X * in_data + 128) >> 8 - * - * @gain_red: gain value for red component. - * @gain_green_r: gain value for green component in red line. - * @gain_blue: gain value for blue component. - * @gain_green_b: gain value for green component in blue line. - */ -struct rkisp1_cif_isp_awb_gain_config { - __u16 gain_red; - __u16 gain_green_r; - __u16 gain_blue; - __u16 gain_green_b; -}; - -/** - * struct rkisp1_cif_isp_flt_config - Configuration used by ISP filtering - * - * All 4 threshold fields (thresh_*) are 10 bits. - * All 6 factor fields (fac_*) are 6 bits. - * - * @mode: ISP_FILT_MODE register fields (from enum rkisp1_cif_isp_flt_mode) - * @grn_stage1: Green filter stage 1 select (range 0x0...0x8) - * @chr_h_mode: Chroma filter horizontal mode - * @chr_v_mode: Chroma filter vertical mode - * @thresh_bl0: If thresh_bl1 < sum_grad < thresh_bl0 then fac_bl0 is selected (blurring th) - * @thresh_bl1: If sum_grad < thresh_bl1 then fac_bl1 is selected (blurring th) - * @thresh_sh0: If thresh_sh0 < sum_grad < thresh_sh1 then thresh_sh0 is selected (sharpening th) - * @thresh_sh1: If thresh_sh1 < sum_grad then thresh_sh1 is selected (sharpening th) - * @lum_weight: Parameters for luminance weight function. - * @fac_sh1: filter factor for sharp1 level - * @fac_sh0: filter factor for sharp0 level - * @fac_mid: filter factor for mid level and for static filter mode - * @fac_bl0: filter factor for blur 0 level - * @fac_bl1: filter factor for blur 1 level (max blur) - */ -struct rkisp1_cif_isp_flt_config { - __u32 mode; - __u8 grn_stage1; - __u8 chr_h_mode; - __u8 chr_v_mode; - __u32 thresh_bl0; - __u32 thresh_bl1; - __u32 thresh_sh0; - __u32 thresh_sh1; - __u32 lum_weight; - __u32 fac_sh1; - __u32 fac_sh0; - __u32 fac_mid; - __u32 fac_bl0; - __u32 fac_bl1; -}; - -/** - * struct rkisp1_cif_isp_bdm_config - Configuration used by Bayer DeMosaic - * - * @demosaic_th: threshold for bayer demosaicing texture detection - */ -struct rkisp1_cif_isp_bdm_config { - __u8 demosaic_th; -}; - -/** - * struct rkisp1_cif_isp_ctk_config - Configuration used by Cross Talk correction - * - * @coeff: color correction matrix. Values are 11-bit signed fixed-point numbers with 4 bit integer - * and 7 bit fractional part, ranging from -8 (0x400) to +7.992 (0x3FF). 0 is - * represented by 0x000 and a coefficient value of 1 as 0x080. - * @ct_offset: Red, Green, Blue offsets for the crosstalk correction matrix - */ -struct rkisp1_cif_isp_ctk_config { - __u16 coeff[3][3]; - __u16 ct_offset[3]; -}; - -enum rkisp1_cif_isp_goc_mode { - RKISP1_CIF_ISP_GOC_MODE_LOGARITHMIC, - RKISP1_CIF_ISP_GOC_MODE_EQUIDISTANT -}; - -/** - * struct rkisp1_cif_isp_goc_config - Configuration used by Gamma Out correction - * - * @mode: goc mode (from enum rkisp1_cif_isp_goc_mode) - * @gamma_y: gamma out curve y-axis for all color components - * - * The number of entries of @gamma_y depends on the hardware revision - * as is reported by the hw_revision field of the struct media_device_info - * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. - * - * Versions <= V11 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 - * entries, versions >= V12 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 - * entries. RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES is equal to the maximum - * of the two. - */ -struct rkisp1_cif_isp_goc_config { - __u32 mode; - __u16 gamma_y[RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES]; -}; - -/** - * struct rkisp1_cif_isp_hst_config - Configuration used by Histogram - * - * @mode: histogram mode (from enum rkisp1_cif_isp_histogram_mode) - * @histogram_predivider: process every stepsize pixel, all other pixels are - * skipped - * @meas_window: coordinates of the measure window - * @hist_weight: weighting factor for sub-windows - * - * The number of entries of @hist_weight depends on the hardware revision - * as is reported by the hw_revision field of the struct media_device_info - * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. - * - * Versions <= V11 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 - * entries, versions >= V12 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 - * entries. RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE is equal to the maximum - * of the two. - */ -struct rkisp1_cif_isp_hst_config { - __u32 mode; - __u8 histogram_predivider; - struct rkisp1_cif_isp_window meas_window; - __u8 hist_weight[RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE]; -}; - -/** - * struct rkisp1_cif_isp_aec_config - Configuration used by Auto Exposure Control - * - * @mode: Exposure measure mode (from enum rkisp1_cif_isp_exp_meas_mode) - * @autostop: stop mode (from enum rkisp1_cif_isp_exp_ctrl_autostop) - * @meas_window: coordinates of the measure window - */ -struct rkisp1_cif_isp_aec_config { - __u32 mode; - __u32 autostop; - struct rkisp1_cif_isp_window meas_window; -}; - -/** - * struct rkisp1_cif_isp_afc_config - Configuration used by Auto Focus Control - * - * @num_afm_win: max RKISP1_CIF_ISP_AFM_MAX_WINDOWS - * @afm_win: coordinates of the meas window - * @thres: threshold used for minimizing the influence of noise - * @var_shift: the number of bits for the shift operation at the end of the - * calculation chain. - */ -struct rkisp1_cif_isp_afc_config { - __u8 num_afm_win; - struct rkisp1_cif_isp_window afm_win[RKISP1_CIF_ISP_AFM_MAX_WINDOWS]; - __u32 thres; - __u32 var_shift; -}; - -/** - * enum rkisp1_cif_isp_dpf_gain_usage - dpf gain usage - * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_DISABLED: don't use any gains in preprocessing stage - * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_GAINS: use only the noise function gains from - * registers DPF_NF_GAIN_R, ... - * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_LSC_GAINS: use only the gains from LSC module - * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_LSC_GAINS: use the noise function gains and the - * gains from LSC module - * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_GAINS: use only the gains from AWB module - * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_LSC_GAINS: use the gains from AWB and LSC module - * @RKISP1_CIF_ISP_DPF_GAIN_USAGE_MAX: upper border (only for an internal evaluation) - */ -enum rkisp1_cif_isp_dpf_gain_usage { - RKISP1_CIF_ISP_DPF_GAIN_USAGE_DISABLED, - RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_GAINS, - RKISP1_CIF_ISP_DPF_GAIN_USAGE_LSC_GAINS, - RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_LSC_GAINS, - RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_GAINS, - RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_LSC_GAINS, - RKISP1_CIF_ISP_DPF_GAIN_USAGE_MAX -}; - -/** - * enum rkisp1_cif_isp_dpf_rb_filtersize - Red and blue filter sizes - * @RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9: red and blue filter kernel size 13x9 - * (means 7x5 active pixel) - * @RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_9x9: red and blue filter kernel size 9x9 - * (means 5x5 active pixel) - */ -enum rkisp1_cif_isp_dpf_rb_filtersize { - RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9, - RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_9x9, -}; - -/** - * enum rkisp1_cif_isp_dpf_nll_scale_mode - dpf noise level scale mode - * @RKISP1_CIF_ISP_NLL_SCALE_LINEAR: use a linear scaling - * @RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC: use a logarithmic scaling - */ -enum rkisp1_cif_isp_dpf_nll_scale_mode { - RKISP1_CIF_ISP_NLL_SCALE_LINEAR, - RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC, -}; - -/** - * struct rkisp1_cif_isp_dpf_nll - Noise level lookup - * - * @coeff: Noise level Lookup coefficient - * @scale_mode: dpf noise level scale mode (from enum rkisp1_cif_isp_dpf_nll_scale_mode) - */ -struct rkisp1_cif_isp_dpf_nll { - __u16 coeff[RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS]; - __u32 scale_mode; -}; - -/** - * struct rkisp1_cif_isp_dpf_rb_flt - Red blue filter config - * - * @fltsize: The filter size for the red and blue pixels - * (from enum rkisp1_cif_isp_dpf_rb_filtersize) - * @spatial_coeff: Spatial weights - * @r_enable: enable filter processing for red pixels - * @b_enable: enable filter processing for blue pixels - */ -struct rkisp1_cif_isp_dpf_rb_flt { - __u32 fltsize; - __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS]; - __u8 r_enable; - __u8 b_enable; -}; - -/** - * struct rkisp1_cif_isp_dpf_g_flt - Green filter Configuration - * - * @spatial_coeff: Spatial weights - * @gr_enable: enable filter processing for green pixels in green/red lines - * @gb_enable: enable filter processing for green pixels in green/blue lines - */ -struct rkisp1_cif_isp_dpf_g_flt { - __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS]; - __u8 gr_enable; - __u8 gb_enable; -}; - -/** - * struct rkisp1_cif_isp_dpf_gain - Noise function Configuration - * - * @mode: dpf gain usage (from enum rkisp1_cif_isp_dpf_gain_usage) - * @nf_r_gain: Noise function Gain that replaces the AWB gain for red pixels - * @nf_b_gain: Noise function Gain that replaces the AWB gain for blue pixels - * @nf_gr_gain: Noise function Gain that replaces the AWB gain - * for green pixels in a red line - * @nf_gb_gain: Noise function Gain that replaces the AWB gain - * for green pixels in a blue line - */ -struct rkisp1_cif_isp_dpf_gain { - __u32 mode; - __u16 nf_r_gain; - __u16 nf_b_gain; - __u16 nf_gr_gain; - __u16 nf_gb_gain; -}; - -/** - * struct rkisp1_cif_isp_dpf_config - Configuration used by De-noising pre-filter - * - * @gain: noise function gain - * @g_flt: green filter config - * @rb_flt: red blue filter config - * @nll: noise level lookup - */ -struct rkisp1_cif_isp_dpf_config { - struct rkisp1_cif_isp_dpf_gain gain; - struct rkisp1_cif_isp_dpf_g_flt g_flt; - struct rkisp1_cif_isp_dpf_rb_flt rb_flt; - struct rkisp1_cif_isp_dpf_nll nll; -}; - -/** - * struct rkisp1_cif_isp_dpf_strength_config - strength of the filter - * - * @r: filter strength of the RED filter - * @g: filter strength of the GREEN filter - * @b: filter strength of the BLUE filter - */ -struct rkisp1_cif_isp_dpf_strength_config { - __u8 r; - __u8 g; - __u8 b; -}; - -/** - * struct rkisp1_cif_isp_isp_other_cfg - Parameters for some blocks in rockchip isp1 - * - * @dpcc_config: Defect Pixel Cluster Correction config - * @bls_config: Black Level Subtraction config - * @sdg_config: sensor degamma config - * @lsc_config: Lens Shade config - * @awb_gain_config: Auto White balance gain config - * @flt_config: filter config - * @bdm_config: demosaic config - * @ctk_config: cross talk config - * @goc_config: gamma out config - * @bls_config: black level subtraction config - * @dpf_config: De-noising pre-filter config - * @dpf_strength_config: dpf strength config - * @cproc_config: color process config - * @ie_config: image effects config - */ -struct rkisp1_cif_isp_isp_other_cfg { - struct rkisp1_cif_isp_dpcc_config dpcc_config; - struct rkisp1_cif_isp_bls_config bls_config; - struct rkisp1_cif_isp_sdg_config sdg_config; - struct rkisp1_cif_isp_lsc_config lsc_config; - struct rkisp1_cif_isp_awb_gain_config awb_gain_config; - struct rkisp1_cif_isp_flt_config flt_config; - struct rkisp1_cif_isp_bdm_config bdm_config; - struct rkisp1_cif_isp_ctk_config ctk_config; - struct rkisp1_cif_isp_goc_config goc_config; - struct rkisp1_cif_isp_dpf_config dpf_config; - struct rkisp1_cif_isp_dpf_strength_config dpf_strength_config; - struct rkisp1_cif_isp_cproc_config cproc_config; - struct rkisp1_cif_isp_ie_config ie_config; -}; - -/** - * struct rkisp1_cif_isp_isp_meas_cfg - Rockchip ISP1 Measure Parameters - * - * @awb_meas_config: auto white balance config - * @hst_config: histogram config - * @aec_config: auto exposure config - * @afc_config: auto focus config - */ -struct rkisp1_cif_isp_isp_meas_cfg { - struct rkisp1_cif_isp_awb_meas_config awb_meas_config; - struct rkisp1_cif_isp_hst_config hst_config; - struct rkisp1_cif_isp_aec_config aec_config; - struct rkisp1_cif_isp_afc_config afc_config; -}; - -/** - * struct rkisp1_params_cfg - Rockchip ISP1 Input Parameters Meta Data - * - * @module_en_update: mask the enable bits of which module should be updated - * @module_ens: mask the enable value of each module, only update the module - * which correspond bit was set in module_en_update - * @module_cfg_update: mask the config bits of which module should be updated - * @meas: measurement config - * @others: other config - */ -struct rkisp1_params_cfg { - __u32 module_en_update; - __u32 module_ens; - __u32 module_cfg_update; - - struct rkisp1_cif_isp_isp_meas_cfg meas; - struct rkisp1_cif_isp_isp_other_cfg others; -}; - -/*---------- PART2: Measurement Statistics ------------*/ - -/** - * struct rkisp1_cif_isp_awb_meas - AWB measured values - * - * @cnt: White pixel count, number of "white pixels" found during last - * measurement - * @mean_y_or_g: Mean value of Y within window and frames, - * Green if RGB is selected. - * @mean_cb_or_b: Mean value of Cb within window and frames, - * Blue if RGB is selected. - * @mean_cr_or_r: Mean value of Cr within window and frames, - * Red if RGB is selected. - */ -struct rkisp1_cif_isp_awb_meas { - __u32 cnt; - __u8 mean_y_or_g; - __u8 mean_cb_or_b; - __u8 mean_cr_or_r; -}; - -/** - * struct rkisp1_cif_isp_awb_stat - statistics automatic white balance data - * - * @awb_mean: Mean measured data - */ -struct rkisp1_cif_isp_awb_stat { - struct rkisp1_cif_isp_awb_meas awb_mean[RKISP1_CIF_ISP_AWB_MAX_GRID]; -}; - -/** - * struct rkisp1_cif_isp_bls_meas_val - BLS measured values - * - * @meas_r: Mean measured value for Bayer pattern R - * @meas_gr: Mean measured value for Bayer pattern Gr - * @meas_gb: Mean measured value for Bayer pattern Gb - * @meas_b: Mean measured value for Bayer pattern B - */ -struct rkisp1_cif_isp_bls_meas_val { - __u16 meas_r; - __u16 meas_gr; - __u16 meas_gb; - __u16 meas_b; -}; - -/** - * struct rkisp1_cif_isp_ae_stat - statistics auto exposure data - * - * @exp_mean: Mean luminance value of block xx - * @bls_val: BLS measured values - * - * The number of entries of @exp_mean depends on the hardware revision - * as is reported by the hw_revision field of the struct media_device_info - * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. - * - * Versions <= V11 have RKISP1_CIF_ISP_AE_MEAN_MAX_V10 entries, - * versions >= V12 have RKISP1_CIF_ISP_AE_MEAN_MAX_V12 entries. - * RKISP1_CIF_ISP_AE_MEAN_MAX is equal to the maximum of the two. - * - * Image is divided into 5x5 blocks on V10 and 9x9 blocks on V12. - */ -struct rkisp1_cif_isp_ae_stat { - __u8 exp_mean[RKISP1_CIF_ISP_AE_MEAN_MAX]; - struct rkisp1_cif_isp_bls_meas_val bls_val; -}; - -/** - * struct rkisp1_cif_isp_af_meas_val - AF measured values - * - * @sum: sharpness value - * @lum: luminance value - */ -struct rkisp1_cif_isp_af_meas_val { - __u32 sum; - __u32 lum; -}; - -/** - * struct rkisp1_cif_isp_af_stat - statistics auto focus data - * - * @window: AF measured value of window x - * - * The module measures the sharpness in 3 windows of selectable size via - * register settings(ISP_AFM_*_A/B/C) - */ -struct rkisp1_cif_isp_af_stat { - struct rkisp1_cif_isp_af_meas_val window[RKISP1_CIF_ISP_AFM_MAX_WINDOWS]; -}; - -/** - * struct rkisp1_cif_isp_hist_stat - statistics histogram data - * - * @hist_bins: measured bin counters. Each bin is a 20 bits unsigned fixed point - * type. Bits 0-4 are the fractional part and bits 5-19 are the - * integer part. - * - * The window of the measurements area is divided to 5x5 sub-windows for - * V10/V11 and to 9x9 sub-windows for V12. The histogram is then computed for - * each sub-window independently and the final result is a weighted average of - * the histogram measurements on all sub-windows. The window of the - * measurements area and the weight of each sub-window are configurable using - * struct @rkisp1_cif_isp_hst_config. - * - * The histogram contains 16 bins in V10/V11 and 32 bins in V12/V13. - * - * The number of entries of @hist_bins depends on the hardware revision - * as is reported by the hw_revision field of the struct media_device_info - * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. - * - * Versions <= V11 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 entries, - * versions >= V12 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 entries. - * RKISP1_CIF_ISP_HIST_BIN_N_MAX is equal to the maximum of the two. - */ -struct rkisp1_cif_isp_hist_stat { - __u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX]; -}; - -/** - * struct rkisp1_cif_isp_stat - Rockchip ISP1 Statistics Data - * - * @awb: statistics data for automatic white balance - * @ae: statistics data for auto exposure - * @af: statistics data for auto focus - * @hist: statistics histogram data - */ -struct rkisp1_cif_isp_stat { - struct rkisp1_cif_isp_awb_stat awb; - struct rkisp1_cif_isp_ae_stat ae; - struct rkisp1_cif_isp_af_stat af; - struct rkisp1_cif_isp_hist_stat hist; -}; - -/** - * struct rkisp1_stat_buffer - Rockchip ISP1 Statistics Meta Data - * - * @meas_type: measurement types (RKISP1_CIF_ISP_STAT_* definitions) - * @frame_id: frame ID for sync - * @params: statistics data - */ -struct rkisp1_stat_buffer { - __u32 meas_type; - __u32 frame_id; - struct rkisp1_cif_isp_stat params; -}; - -#endif /* _UAPI_RKISP1_CONFIG_H */ diff --git a/original/uapi/linux/rpl.h b/original/uapi/linux/rpl.h deleted file mode 100644 index 708addd..0000000 --- a/original/uapi/linux/rpl.h +++ /dev/null @@ -1,48 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * IPv6 RPL-SR implementation - * - * Author: - * (C) 2020 Alexander Aring <alex.aring@gmail.com> - */ - -#ifndef _UAPI_LINUX_RPL_H -#define _UAPI_LINUX_RPL_H - -#include <asm/byteorder.h> -#include <linux/types.h> -#include <linux/in6.h> - -/* - * RPL SR Header - */ -struct ipv6_rpl_sr_hdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 type; - __u8 segments_left; -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u32 cmpre:4, - cmpri:4, - reserved:4, - pad:4, - reserved1:16; -#elif defined(__BIG_ENDIAN_BITFIELD) - __u32 cmpri:4, - cmpre:4, - pad:4, - reserved:20; -#else -#error "Please fix <asm/byteorder.h>" -#endif - - union { - struct in6_addr addr[0]; - __u8 data[0]; - } segments; -} __attribute__((packed)); - -#define rpl_segaddr segments.addr -#define rpl_segdata segments.data - -#endif diff --git a/original/uapi/linux/rpl_iptunnel.h b/original/uapi/linux/rpl_iptunnel.h deleted file mode 100644 index f4eed1f..0000000 --- a/original/uapi/linux/rpl_iptunnel.h +++ /dev/null @@ -1,21 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * IPv6 RPL-SR implementation - * - * Author: - * (C) 2020 Alexander Aring <alex.aring@gmail.com> - */ - -#ifndef _UAPI_LINUX_RPL_IPTUNNEL_H -#define _UAPI_LINUX_RPL_IPTUNNEL_H - -enum { - RPL_IPTUNNEL_UNSPEC, - RPL_IPTUNNEL_SRH, - __RPL_IPTUNNEL_MAX, -}; -#define RPL_IPTUNNEL_MAX (__RPL_IPTUNNEL_MAX - 1) - -#define RPL_IPTUNNEL_SRH_SIZE(srh) (((srh)->hdrlen + 1) << 3) - -#endif diff --git a/original/uapi/linux/rpmsg_types.h b/original/uapi/linux/rpmsg_types.h deleted file mode 100644 index 36e3b94..0000000 --- a/original/uapi/linux/rpmsg_types.h +++ /dev/null @@ -1,11 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_LINUX_RPMSG_TYPES_H -#define _UAPI_LINUX_RPMSG_TYPES_H - -#include <linux/types.h> - -typedef __u16 __bitwise __rpmsg16; -typedef __u32 __bitwise __rpmsg32; -typedef __u64 __bitwise __rpmsg64; - -#endif /* _UAPI_LINUX_RPMSG_TYPES_H */ diff --git a/original/uapi/linux/rtc.h b/original/uapi/linux/rtc.h index f950bff..2ad1788 100644 --- a/original/uapi/linux/rtc.h +++ b/original/uapi/linux/rtc.h @@ -12,9 +12,6 @@ #ifndef _UAPI_LINUX_RTC_H_ #define _UAPI_LINUX_RTC_H_ -#include <linux/const.h> -#include <linux/ioctl.h> - /* * The struct used to pass data via the following ioctl. Similar to the * struct tm in <time.h>, but it needs to be here so that the kernel @@ -95,13 +92,7 @@ struct rtc_pll_info { #define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info) /* Get PLL correction */ #define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info) /* Set PLL correction */ -#define RTC_VL_DATA_INVALID _BITUL(0) /* Voltage too low, RTC data is invalid */ -#define RTC_VL_BACKUP_LOW _BITUL(1) /* Backup voltage is low */ -#define RTC_VL_BACKUP_EMPTY _BITUL(2) /* Backup empty or not present */ -#define RTC_VL_ACCURACY_LOW _BITUL(3) /* Voltage is low, RTC accuracy is reduced */ -#define RTC_VL_BACKUP_SWITCH _BITUL(4) /* Backup switchover happened */ - -#define RTC_VL_READ _IOR('p', 0x13, unsigned int) /* Voltage low detection */ +#define RTC_VL_READ _IOR('p', 0x13, int) /* Voltage low detector */ #define RTC_VL_CLR _IO('p', 0x14) /* Clear voltage low information */ /* interrupt flags */ @@ -110,11 +101,6 @@ struct rtc_pll_info { #define RTC_AF 0x20 /* Alarm interrupt */ #define RTC_UF 0x10 /* Update interrupt for 1Hz RTC */ -/* feature list */ -#define RTC_FEATURE_ALARM 0 -#define RTC_FEATURE_ALARM_RES_MINUTE 1 -#define RTC_FEATURE_NEED_WEEK_DAY 2 -#define RTC_FEATURE_CNT 3 #define RTC_MAX_FREQ 8192 diff --git a/original/uapi/linux/rtnetlink.h b/original/uapi/linux/rtnetlink.h index 91e4ca0..1418a83 100644 --- a/original/uapi/linux/rtnetlink.h +++ b/original/uapi/linux/rtnetlink.h @@ -171,13 +171,6 @@ enum { RTM_GETLINKPROP, #define RTM_GETLINKPROP RTM_GETLINKPROP - RTM_NEWVLAN = 112, -#define RTM_NEWNVLAN RTM_NEWVLAN - RTM_DELVLAN, -#define RTM_DELVLAN RTM_DELVLAN - RTM_GETVLAN, -#define RTM_GETVLAN RTM_GETVLAN - __RTM_MAX, #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) }; @@ -257,12 +250,12 @@ enum { /* rtm_protocol */ -#define RTPROT_UNSPEC 0 -#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects; - not used by current IPv4 */ -#define RTPROT_KERNEL 2 /* Route installed by kernel */ -#define RTPROT_BOOT 3 /* Route installed during boot */ -#define RTPROT_STATIC 4 /* Route installed by administrator */ +#define RTPROT_UNSPEC 0 +#define RTPROT_REDIRECT 1 /* Route installed by ICMP redirects; + not used by current IPv4 */ +#define RTPROT_KERNEL 2 /* Route installed by kernel */ +#define RTPROT_BOOT 3 /* Route installed during boot */ +#define RTPROT_STATIC 4 /* Route installed by administrator */ /* Values of protocol >= RTPROT_STATIC are not interpreted by kernel; they are just passed from user and back as is. @@ -271,23 +264,22 @@ enum { avoid conflicts. */ -#define RTPROT_GATED 8 /* Apparently, GateD */ -#define RTPROT_RA 9 /* RDISC/ND router advertisements */ -#define RTPROT_MRT 10 /* Merit MRT */ -#define RTPROT_ZEBRA 11 /* Zebra */ -#define RTPROT_BIRD 12 /* BIRD */ -#define RTPROT_DNROUTED 13 /* DECnet routing daemon */ -#define RTPROT_XORP 14 /* XORP */ -#define RTPROT_NTK 15 /* Netsukuku */ -#define RTPROT_DHCP 16 /* DHCP client */ -#define RTPROT_MROUTED 17 /* Multicast daemon */ -#define RTPROT_KEEPALIVED 18 /* Keepalived daemon */ -#define RTPROT_BABEL 42 /* Babel daemon */ -#define RTPROT_BGP 186 /* BGP Routes */ -#define RTPROT_ISIS 187 /* ISIS Routes */ -#define RTPROT_OSPF 188 /* OSPF Routes */ -#define RTPROT_RIP 189 /* RIP Routes */ -#define RTPROT_EIGRP 192 /* EIGRP Routes */ +#define RTPROT_GATED 8 /* Apparently, GateD */ +#define RTPROT_RA 9 /* RDISC/ND router advertisements */ +#define RTPROT_MRT 10 /* Merit MRT */ +#define RTPROT_ZEBRA 11 /* Zebra */ +#define RTPROT_BIRD 12 /* BIRD */ +#define RTPROT_DNROUTED 13 /* DECnet routing daemon */ +#define RTPROT_XORP 14 /* XORP */ +#define RTPROT_NTK 15 /* Netsukuku */ +#define RTPROT_DHCP 16 /* DHCP client */ +#define RTPROT_MROUTED 17 /* Multicast daemon */ +#define RTPROT_BABEL 42 /* Babel daemon */ +#define RTPROT_BGP 186 /* BGP Routes */ +#define RTPROT_ISIS 187 /* ISIS Routes */ +#define RTPROT_OSPF 188 /* OSPF Routes */ +#define RTPROT_RIP 189 /* RIP Routes */ +#define RTPROT_EIGRP 192 /* EIGRP Routes */ /* rtm_scope @@ -317,13 +309,6 @@ enum rt_scope_t { #define RTM_F_PREFIX 0x800 /* Prefix addresses */ #define RTM_F_LOOKUP_TABLE 0x1000 /* set rtm_table to FIB lookup result */ #define RTM_F_FIB_MATCH 0x2000 /* return full fib lookup match */ -#define RTM_F_OFFLOAD 0x4000 /* route is offloaded */ -#define RTM_F_TRAP 0x8000 /* route is trapping packets */ -#define RTM_F_OFFLOAD_FAILED 0x20000000 /* route offload failed, this value - * is chosen to avoid conflicts with - * other flags defined in - * include/uapi/linux/ipv6_route.h - */ /* Reserved table identifiers */ @@ -401,13 +386,11 @@ struct rtnexthop { #define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */ #define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */ #define RTNH_F_ONLINK 4 /* Gateway is forced on link */ -#define RTNH_F_OFFLOAD 8 /* Nexthop is offloaded */ +#define RTNH_F_OFFLOAD 8 /* offloaded route */ #define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */ #define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */ -#define RTNH_F_TRAP 64 /* Nexthop is trapping packets */ -#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | \ - RTNH_F_OFFLOAD | RTNH_F_TRAP) +#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD) /* Macros to handle hexthops */ @@ -617,17 +600,11 @@ enum { TCA_HW_OFFLOAD, TCA_INGRESS_BLOCK, TCA_EGRESS_BLOCK, - TCA_DUMP_FLAGS, __TCA_MAX }; #define TCA_MAX (__TCA_MAX - 1) -#define TCA_DUMP_FLAGS_TERSE (1 << 0) /* Means that in dump user gets only basic - * data necessary to identify the objects - * (handle, cookie, etc.) and stats. - */ - #define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) #define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg)) @@ -744,8 +721,6 @@ enum rtnetlink_groups { #define RTNLGRP_IPV6_MROUTE_R RTNLGRP_IPV6_MROUTE_R RTNLGRP_NEXTHOP, #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP - RTNLGRP_BRVLAN, -#define RTNLGRP_BRVLAN RTNLGRP_BRVLAN __RTNLGRP_MAX }; #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) @@ -773,27 +748,18 @@ enum { #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg)) /* tcamsg flags stored in attribute TCA_ROOT_FLAGS * - * TCA_ACT_FLAG_LARGE_DUMP_ON user->kernel to request for larger than - * TCA_ACT_MAX_PRIO actions in a dump. All dump responses will contain the - * number of actions being dumped stored in for user app's consumption in - * TCA_ROOT_COUNT - * - * TCA_ACT_FLAG_TERSE_DUMP user->kernel to request terse (brief) dump that only - * includes essential action info (kind, index, etc.) + * TCA_FLAG_LARGE_DUMP_ON user->kernel to request for larger than TCA_ACT_MAX_PRIO + * actions in a dump. All dump responses will contain the number of actions + * being dumped stored in for user app's consumption in TCA_ROOT_COUNT * */ #define TCA_FLAG_LARGE_DUMP_ON (1 << 0) -#define TCA_ACT_FLAG_LARGE_DUMP_ON TCA_FLAG_LARGE_DUMP_ON -#define TCA_ACT_FLAG_TERSE_DUMP (1 << 1) /* New extended info filters for IFLA_EXT_MASK */ #define RTEXT_FILTER_VF (1 << 0) #define RTEXT_FILTER_BRVLAN (1 << 1) #define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2) #define RTEXT_FILTER_SKIP_STATS (1 << 3) -#define RTEXT_FILTER_MRP (1 << 4) -#define RTEXT_FILTER_CFM_CONFIG (1 << 5) -#define RTEXT_FILTER_CFM_STATUS (1 << 6) /* End of information exported to user level */ diff --git a/original/uapi/linux/rxrpc.h b/original/uapi/linux/rxrpc.h index 8f8dc7a..4accfa7 100644 --- a/original/uapi/linux/rxrpc.h +++ b/original/uapi/linux/rxrpc.h @@ -51,11 +51,11 @@ enum rxrpc_cmsg_type { RXRPC_BUSY = 6, /* -r: server busy received [terminal] */ RXRPC_LOCAL_ERROR = 7, /* -r: local error generated [terminal] */ RXRPC_NEW_CALL = 8, /* -r: [Service] new incoming call notification */ + RXRPC_ACCEPT = 9, /* s-: [Service] accept request */ RXRPC_EXCLUSIVE_CALL = 10, /* s-: Call should be on exclusive connection */ RXRPC_UPGRADE_SERVICE = 11, /* s-: Request service upgrade for client call */ RXRPC_TX_LENGTH = 12, /* s-: Total length of Tx data */ RXRPC_SET_CALL_TIMEOUT = 13, /* s-: Set one or more call timeouts */ - RXRPC_CHARGE_ACCEPT = 14, /* s-: Charge the accept pool with a user call ID */ RXRPC__SUPPORTED }; diff --git a/original/uapi/linux/sched.h b/original/uapi/linux/sched.h index 3bac0a8..4a02178 100644 --- a/original/uapi/linux/sched.h +++ b/original/uapi/linux/sched.h @@ -35,13 +35,6 @@ /* Flags for the clone3() syscall. */ #define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */ -#define CLONE_INTO_CGROUP 0x200000000ULL /* Clone into a specific cgroup given the right permissions. */ - -/* - * cloning flags intersect with CSIGNAL so can be used with unshare and clone3 - * syscalls only: - */ -#define CLONE_NEWTIME 0x00000080 /* New time namespace */ #ifndef __ASSEMBLY__ /** @@ -82,8 +75,6 @@ * @set_tid_size: This defines the size of the array referenced * in @set_tid. This cannot be larger than the * kernel's limit of nested PID namespaces. - * @cgroup: If CLONE_INTO_CGROUP is specified set this to - * a file descriptor for the cgroup. * * The structure is versioned by size and thus extensible. * New struct members must go at the end of the struct and @@ -100,13 +91,11 @@ struct clone_args { __aligned_u64 tls; __aligned_u64 set_tid; __aligned_u64 set_tid_size; - __aligned_u64 cgroup; }; #endif #define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */ #define CLONE_ARGS_SIZE_VER1 80 /* sizeof second published struct */ -#define CLONE_ARGS_SIZE_VER2 88 /* sizeof third published struct */ /* * Scheduling policies diff --git a/original/uapi/linux/sched/types.h b/original/uapi/linux/sched/types.h index f2c4589..c852153 100644 --- a/original/uapi/linux/sched/types.h +++ b/original/uapi/linux/sched/types.h @@ -96,8 +96,6 @@ struct sched_param { * on a CPU with a capacity big enough to fit the specified value. * A task with a max utilization value smaller than 1024 is more likely * scheduled on a CPU with no more capacity than the specified value. - * - * A task utilization boundary can be reset by setting the attribute to -1. */ struct sched_attr { __u32 size; diff --git a/original/uapi/linux/sctp.h b/original/uapi/linux/sctp.h index cb78e7a..28ad40d 100644 --- a/original/uapi/linux/sctp.h +++ b/original/uapi/linux/sctp.h @@ -140,7 +140,6 @@ typedef __s32 sctp_assoc_t; #define SCTP_ECN_SUPPORTED 130 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE -#define SCTP_REMOTE_UDP_ENCAPS_PORT 132 /* PR-SCTP policies */ #define SCTP_PR_SCTP_NONE 0x0000 @@ -1198,12 +1197,6 @@ struct sctp_event { uint8_t se_on; }; -struct sctp_udpencaps { - sctp_assoc_t sue_assoc_id; - struct sockaddr_storage sue_address; - uint16_t sue_port; -}; - /* SCTP Stream schedulers */ enum sctp_sched_type { SCTP_SS_FCFS, diff --git a/original/uapi/linux/sdla.h b/original/uapi/linux/sdla.h new file mode 100644 index 0000000..1e3735b --- /dev/null +++ b/original/uapi/linux/sdla.h @@ -0,0 +1,117 @@ +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ +/* + * INET An implementation of the TCP/IP protocol suite for the LINUX + * operating system. INET is implemented using the BSD Socket + * interface as the means of communication with the user level. + * + * Global definitions for the Frame relay interface. + * + * Version: @(#)if_ifrad.h 0.20 13 Apr 96 + * + * Author: Mike McLagan <mike.mclagan@linux.org> + * + * Changes: + * 0.15 Mike McLagan Structure packing + * + * 0.20 Mike McLagan New flags for S508 buffer handling + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _UAPISDLA_H +#define _UAPISDLA_H + +/* adapter type */ +#define SDLA_TYPES +#define SDLA_S502A 5020 +#define SDLA_S502E 5021 +#define SDLA_S503 5030 +#define SDLA_S507 5070 +#define SDLA_S508 5080 +#define SDLA_S509 5090 +#define SDLA_UNKNOWN -1 + +/* port selection flags for the S508 */ +#define SDLA_S508_PORT_V35 0x00 +#define SDLA_S508_PORT_RS232 0x02 + +/* Z80 CPU speeds */ +#define SDLA_CPU_3M 0x00 +#define SDLA_CPU_5M 0x01 +#define SDLA_CPU_7M 0x02 +#define SDLA_CPU_8M 0x03 +#define SDLA_CPU_10M 0x04 +#define SDLA_CPU_16M 0x05 +#define SDLA_CPU_12M 0x06 + +/* some private IOCTLs */ +#define SDLA_IDENTIFY (FRAD_LAST_IOCTL + 1) +#define SDLA_CPUSPEED (FRAD_LAST_IOCTL + 2) +#define SDLA_PROTOCOL (FRAD_LAST_IOCTL + 3) + +#define SDLA_CLEARMEM (FRAD_LAST_IOCTL + 4) +#define SDLA_WRITEMEM (FRAD_LAST_IOCTL + 5) +#define SDLA_READMEM (FRAD_LAST_IOCTL + 6) + +struct sdla_mem { + int addr; + int len; + void __user *data; +}; + +#define SDLA_START (FRAD_LAST_IOCTL + 7) +#define SDLA_STOP (FRAD_LAST_IOCTL + 8) + +/* some offsets in the Z80's memory space */ +#define SDLA_NMIADDR 0x0000 +#define SDLA_CONF_ADDR 0x0010 +#define SDLA_S502A_NMIADDR 0x0066 +#define SDLA_CODE_BASEADDR 0x0100 +#define SDLA_WINDOW_SIZE 0x2000 +#define SDLA_ADDR_MASK 0x1FFF + +/* largest handleable block of data */ +#define SDLA_MAX_DATA 4080 +#define SDLA_MAX_MTU 4072 /* MAX_DATA - sizeof(fradhdr) */ +#define SDLA_MAX_DLCI 24 + +/* this should be the same as frad_conf */ +struct sdla_conf { + short station; + short config; + short kbaud; + short clocking; + short max_frm; + short T391; + short T392; + short N391; + short N392; + short N393; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; +}; + +/* this should be the same as dlci_conf */ +struct sdla_dlci_conf { + short config; + short CIR_fwd; + short Bc_fwd; + short Be_fwd; + short CIR_bwd; + short Bc_bwd; + short Be_bwd; + short Tc_fwd; + short Tc_bwd; + short Tf_max; + short Tb_max; +}; + + +#endif /* _UAPISDLA_H */ diff --git a/original/uapi/linux/seccomp.h b/original/uapi/linux/seccomp.h index 6ba18b8..be84d87 100644 --- a/original/uapi/linux/seccomp.h +++ b/original/uapi/linux/seccomp.h @@ -22,7 +22,6 @@ #define SECCOMP_FILTER_FLAG_LOG (1UL << 1) #define SECCOMP_FILTER_FLAG_SPEC_ALLOW (1UL << 2) #define SECCOMP_FILTER_FLAG_NEW_LISTENER (1UL << 3) -#define SECCOMP_FILTER_FLAG_TSYNC_ESRCH (1UL << 4) /* * All BPF programs must return a 32-bit value. @@ -113,25 +112,6 @@ struct seccomp_notif_resp { __u32 flags; }; -/* valid flags for seccomp_notif_addfd */ -#define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0) /* Specify remote fd */ - -/** - * struct seccomp_notif_addfd - * @id: The ID of the seccomp notification - * @flags: SECCOMP_ADDFD_FLAG_* - * @srcfd: The local fd number - * @newfd: Optional remote FD number if SETFD option is set, otherwise 0. - * @newfd_flags: The O_* flags the remote FD should have applied - */ -struct seccomp_notif_addfd { - __u64 id; - __u32 flags; - __u32 srcfd; - __u32 newfd; - __u32 newfd_flags; -}; - #define SECCOMP_IOC_MAGIC '!' #define SECCOMP_IO(nr) _IO(SECCOMP_IOC_MAGIC, nr) #define SECCOMP_IOR(nr, type) _IOR(SECCOMP_IOC_MAGIC, nr, type) @@ -142,9 +122,5 @@ struct seccomp_notif_addfd { #define SECCOMP_IOCTL_NOTIF_RECV SECCOMP_IOWR(0, struct seccomp_notif) #define SECCOMP_IOCTL_NOTIF_SEND SECCOMP_IOWR(1, \ struct seccomp_notif_resp) -#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOW(2, __u64) -/* On success, the return value is the remote process's added fd number */ -#define SECCOMP_IOCTL_NOTIF_ADDFD SECCOMP_IOW(3, \ - struct seccomp_notif_addfd) - +#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOR(2, __u64) #endif /* _UAPI_LINUX_SECCOMP_H */ diff --git a/original/uapi/linux/seg6_iptunnel.h b/original/uapi/linux/seg6_iptunnel.h index eb815e0..09fb608 100644 --- a/original/uapi/linux/seg6_iptunnel.h +++ b/original/uapi/linux/seg6_iptunnel.h @@ -37,4 +37,25 @@ enum { SEG6_IPTUN_MODE_L2ENCAP, }; +#ifdef __KERNEL__ + +static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) +{ + int head = 0; + + switch (tuninfo->mode) { + case SEG6_IPTUN_MODE_INLINE: + break; + case SEG6_IPTUN_MODE_ENCAP: + head = sizeof(struct ipv6hdr); + break; + case SEG6_IPTUN_MODE_L2ENCAP: + return 0; + } + + return ((tuninfo->srh->hdrlen + 1) << 3) + head; +} + +#endif + #endif diff --git a/original/uapi/linux/seg6_local.h b/original/uapi/linux/seg6_local.h index 3b39ef1..edc138b 100644 --- a/original/uapi/linux/seg6_local.h +++ b/original/uapi/linux/seg6_local.h @@ -26,7 +26,6 @@ enum { SEG6_LOCAL_IIF, SEG6_LOCAL_OIF, SEG6_LOCAL_BPF, - SEG6_LOCAL_VRFTABLE, __SEG6_LOCAL_MAX, }; #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) diff --git a/original/uapi/linux/serial_core.h b/original/uapi/linux/serial_core.h index c4042dc..8ec3dd7 100644 --- a/original/uapi/linux/serial_core.h +++ b/original/uapi/linux/serial_core.h @@ -26,6 +26,20 @@ /* * The type definitions. These are from Ted Ts'o's serial.h */ +#define PORT_UNKNOWN 0 +#define PORT_8250 1 +#define PORT_16450 2 +#define PORT_16550 3 +#define PORT_16550A 4 +#define PORT_CIRRUS 5 +#define PORT_16650 6 +#define PORT_16650V2 7 +#define PORT_16750 8 +#define PORT_STARTECH 9 +#define PORT_16C950 10 +#define PORT_16654 11 +#define PORT_16850 12 +#define PORT_RSA 13 #define PORT_NS16550A 14 #define PORT_XSCALE 15 #define PORT_RM9000 16 /* PMC-Sierra RM9xxx internal UART */ @@ -134,6 +148,8 @@ /*Digi jsm */ #define PORT_JSM 69 +#define PORT_PNX8XXX 70 + /* SUN4V Hypervisor Console */ #define PORT_SUNHV 72 @@ -208,6 +224,9 @@ /* Atheros AR933X SoC */ #define PORT_AR933X 99 +/* Energy Micro efm32 SoC */ +#define PORT_EFMUART 100 + /* ARC (Synopsys) on-chip UART */ #define PORT_ARC 101 diff --git a/original/uapi/linux/serio.h b/original/uapi/linux/serio.h index ed2a96f..50e9919 100644 --- a/original/uapi/linux/serio.h +++ b/original/uapi/linux/serio.h @@ -9,7 +9,7 @@ #ifndef _UAPI_SERIO_H #define _UAPI_SERIO_H -#include <linux/const.h> + #include <linux/ioctl.h> #define SPIOCSTYPE _IOW('q', 0x01, unsigned long) @@ -18,10 +18,10 @@ /* * bit masks for use in "interrupt" flags (3rd argument) */ -#define SERIO_TIMEOUT _BITUL(0) -#define SERIO_PARITY _BITUL(1) -#define SERIO_FRAME _BITUL(2) -#define SERIO_OOB_DATA _BITUL(3) +#define SERIO_TIMEOUT BIT(0) +#define SERIO_PARITY BIT(1) +#define SERIO_FRAME BIT(2) +#define SERIO_OOB_DATA BIT(3) /* * Serio types diff --git a/original/uapi/linux/smc.h b/original/uapi/linux/smc.h index 3e68da0..0e11ca4 100644 --- a/original/uapi/linux/smc.h +++ b/original/uapi/linux/smc.h @@ -33,130 +33,4 @@ enum { /* SMC PNET Table commands */ #define SMCR_GENL_FAMILY_NAME "SMC_PNETID" #define SMCR_GENL_FAMILY_VERSION 1 -/* gennetlink interface to access non-socket information from SMC module */ -#define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK" -#define SMC_GENL_FAMILY_VERSION 1 - -#define SMC_PCI_ID_STR_LEN 16 /* Max length of pci id string */ - -/* SMC_GENL_FAMILY commands */ -enum { - SMC_NETLINK_GET_SYS_INFO = 1, - SMC_NETLINK_GET_LGR_SMCR, - SMC_NETLINK_GET_LINK_SMCR, - SMC_NETLINK_GET_LGR_SMCD, - SMC_NETLINK_GET_DEV_SMCD, - SMC_NETLINK_GET_DEV_SMCR, -}; - -/* SMC_GENL_FAMILY top level attributes */ -enum { - SMC_GEN_UNSPEC, - SMC_GEN_SYS_INFO, /* nest */ - SMC_GEN_LGR_SMCR, /* nest */ - SMC_GEN_LINK_SMCR, /* nest */ - SMC_GEN_LGR_SMCD, /* nest */ - SMC_GEN_DEV_SMCD, /* nest */ - SMC_GEN_DEV_SMCR, /* nest */ - __SMC_GEN_MAX, - SMC_GEN_MAX = __SMC_GEN_MAX - 1 -}; - -/* SMC_GEN_SYS_INFO attributes */ -enum { - SMC_NLA_SYS_UNSPEC, - SMC_NLA_SYS_VER, /* u8 */ - SMC_NLA_SYS_REL, /* u8 */ - SMC_NLA_SYS_IS_ISM_V2, /* u8 */ - SMC_NLA_SYS_LOCAL_HOST, /* string */ - SMC_NLA_SYS_SEID, /* string */ - __SMC_NLA_SYS_MAX, - SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1 -}; - -/* SMC_NLA_LGR_V2 nested attributes */ -enum { - SMC_NLA_LGR_V2_VER, /* u8 */ - SMC_NLA_LGR_V2_REL, /* u8 */ - SMC_NLA_LGR_V2_OS, /* u8 */ - SMC_NLA_LGR_V2_NEG_EID, /* string */ - SMC_NLA_LGR_V2_PEER_HOST, /* string */ -}; - -/* SMC_GEN_LGR_SMCR attributes */ -enum { - SMC_NLA_LGR_R_UNSPEC, - SMC_NLA_LGR_R_ID, /* u32 */ - SMC_NLA_LGR_R_ROLE, /* u8 */ - SMC_NLA_LGR_R_TYPE, /* u8 */ - SMC_NLA_LGR_R_PNETID, /* string */ - SMC_NLA_LGR_R_VLAN_ID, /* u8 */ - SMC_NLA_LGR_R_CONNS_NUM, /* u32 */ - __SMC_NLA_LGR_R_MAX, - SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1 -}; - -/* SMC_GEN_LINK_SMCR attributes */ -enum { - SMC_NLA_LINK_UNSPEC, - SMC_NLA_LINK_ID, /* u8 */ - SMC_NLA_LINK_IB_DEV, /* string */ - SMC_NLA_LINK_IB_PORT, /* u8 */ - SMC_NLA_LINK_GID, /* string */ - SMC_NLA_LINK_PEER_GID, /* string */ - SMC_NLA_LINK_CONN_CNT, /* u32 */ - SMC_NLA_LINK_NET_DEV, /* u32 */ - SMC_NLA_LINK_UID, /* u32 */ - SMC_NLA_LINK_PEER_UID, /* u32 */ - SMC_NLA_LINK_STATE, /* u32 */ - __SMC_NLA_LINK_MAX, - SMC_NLA_LINK_MAX = __SMC_NLA_LINK_MAX - 1 -}; - -/* SMC_GEN_LGR_SMCD attributes */ -enum { - SMC_NLA_LGR_D_UNSPEC, - SMC_NLA_LGR_D_ID, /* u32 */ - SMC_NLA_LGR_D_GID, /* u64 */ - SMC_NLA_LGR_D_PEER_GID, /* u64 */ - SMC_NLA_LGR_D_VLAN_ID, /* u8 */ - SMC_NLA_LGR_D_CONNS_NUM, /* u32 */ - SMC_NLA_LGR_D_PNETID, /* string */ - SMC_NLA_LGR_D_CHID, /* u16 */ - SMC_NLA_LGR_D_PAD, /* flag */ - SMC_NLA_LGR_V2, /* nest */ - __SMC_NLA_LGR_D_MAX, - SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1 -}; - -/* SMC_NLA_DEV_PORT nested attributes */ -enum { - SMC_NLA_DEV_PORT_UNSPEC, - SMC_NLA_DEV_PORT_PNET_USR, /* u8 */ - SMC_NLA_DEV_PORT_PNETID, /* string */ - SMC_NLA_DEV_PORT_NETDEV, /* u32 */ - SMC_NLA_DEV_PORT_STATE, /* u8 */ - SMC_NLA_DEV_PORT_VALID, /* u8 */ - SMC_NLA_DEV_PORT_LNK_CNT, /* u32 */ - __SMC_NLA_DEV_PORT_MAX, - SMC_NLA_DEV_PORT_MAX = __SMC_NLA_DEV_PORT_MAX - 1 -}; - -/* SMC_GEN_DEV_SMCD and SMC_GEN_DEV_SMCR attributes */ -enum { - SMC_NLA_DEV_UNSPEC, - SMC_NLA_DEV_USE_CNT, /* u32 */ - SMC_NLA_DEV_IS_CRIT, /* u8 */ - SMC_NLA_DEV_PCI_FID, /* u32 */ - SMC_NLA_DEV_PCI_CHID, /* u16 */ - SMC_NLA_DEV_PCI_VENDOR, /* u16 */ - SMC_NLA_DEV_PCI_DEVICE, /* u16 */ - SMC_NLA_DEV_PCI_ID, /* string */ - SMC_NLA_DEV_PORT, /* nest */ - SMC_NLA_DEV_PORT2, /* nest */ - SMC_NLA_DEV_IB_NAME, /* string */ - __SMC_NLA_DEV_MAX, - SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1 -}; - #endif /* _UAPI_LINUX_SMC_H */ diff --git a/original/uapi/linux/snmp.h b/original/uapi/linux/snmp.h index 26fc60c..7eee233 100644 --- a/original/uapi/linux/snmp.h +++ b/original/uapi/linux/snmp.h @@ -159,7 +159,6 @@ enum UDP_MIB_SNDBUFERRORS, /* SndbufErrors */ UDP_MIB_CSUMERRORS, /* InCsumErrors */ UDP_MIB_IGNOREDMULTI, /* IgnoredMulti */ - UDP_MIB_MEMERRORS, /* MemErrors */ __UDP_MIB_MAX }; @@ -286,10 +285,6 @@ enum LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */ LINUX_MIB_TCPWQUEUETOOBIG, /* TCPWqueueTooBig */ LINUX_MIB_TCPFASTOPENPASSIVEALTKEY, /* TCPFastOpenPassiveAltKey */ - LINUX_MIB_TCPTIMEOUTREHASH, /* TCPTimeoutRehash */ - LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */ - LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */ - LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */ __LINUX_MIB_MAX }; diff --git a/original/uapi/linux/sock_diag.h b/original/uapi/linux/sock_diag.h index 5f74a5f..e592500 100644 --- a/original/uapi/linux/sock_diag.h +++ b/original/uapi/linux/sock_diag.h @@ -36,30 +36,4 @@ enum sknetlink_groups { }; #define SKNLGRP_MAX (__SKNLGRP_MAX - 1) -enum { - SK_DIAG_BPF_STORAGE_REQ_NONE, - SK_DIAG_BPF_STORAGE_REQ_MAP_FD, - __SK_DIAG_BPF_STORAGE_REQ_MAX, -}; - -#define SK_DIAG_BPF_STORAGE_REQ_MAX (__SK_DIAG_BPF_STORAGE_REQ_MAX - 1) - -enum { - SK_DIAG_BPF_STORAGE_REP_NONE, - SK_DIAG_BPF_STORAGE, - __SK_DIAG_BPF_STORAGE_REP_MAX, -}; - -#define SK_DIAB_BPF_STORAGE_REP_MAX (__SK_DIAG_BPF_STORAGE_REP_MAX - 1) - -enum { - SK_DIAG_BPF_STORAGE_NONE, - SK_DIAG_BPF_STORAGE_PAD, - SK_DIAG_BPF_STORAGE_MAP_ID, - SK_DIAG_BPF_STORAGE_MAP_VALUE, - __SK_DIAG_BPF_STORAGE_MAX, -}; - -#define SK_DIAG_BPF_STORAGE_MAX (__SK_DIAG_BPF_STORAGE_MAX - 1) - #endif /* _UAPI__SOCK_DIAG_H__ */ diff --git a/original/uapi/linux/spi/spi.h b/original/uapi/linux/spi/spi.h deleted file mode 100644 index 236a85f..0000000 --- a/original/uapi/linux/spi/spi.h +++ /dev/null @@ -1,41 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -#ifndef _UAPI_SPI_H -#define _UAPI_SPI_H - -#include <linux/const.h> - -#define SPI_CPHA _BITUL(0) /* clock phase */ -#define SPI_CPOL _BITUL(1) /* clock polarity */ - -#define SPI_MODE_0 (0|0) /* (original MicroWire) */ -#define SPI_MODE_1 (0|SPI_CPHA) -#define SPI_MODE_2 (SPI_CPOL|0) -#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA) -#define SPI_MODE_X_MASK (SPI_CPOL|SPI_CPHA) - -#define SPI_CS_HIGH _BITUL(2) /* chipselect active high? */ -#define SPI_LSB_FIRST _BITUL(3) /* per-word bits-on-wire */ -#define SPI_3WIRE _BITUL(4) /* SI/SO signals shared */ -#define SPI_LOOP _BITUL(5) /* loopback mode */ -#define SPI_NO_CS _BITUL(6) /* 1 dev/bus, no chipselect */ -#define SPI_READY _BITUL(7) /* slave pulls low to pause */ -#define SPI_TX_DUAL _BITUL(8) /* transmit with 2 wires */ -#define SPI_TX_QUAD _BITUL(9) /* transmit with 4 wires */ -#define SPI_RX_DUAL _BITUL(10) /* receive with 2 wires */ -#define SPI_RX_QUAD _BITUL(11) /* receive with 4 wires */ -#define SPI_CS_WORD _BITUL(12) /* toggle cs after each word */ -#define SPI_TX_OCTAL _BITUL(13) /* transmit with 8 wires */ -#define SPI_RX_OCTAL _BITUL(14) /* receive with 8 wires */ -#define SPI_3WIRE_HIZ _BITUL(15) /* high impedance turnaround */ - -/* - * All the bits defined above should be covered by SPI_MODE_USER_MASK. - * The SPI_MODE_USER_MASK has the SPI_MODE_KERNEL_MASK counterpart in - * 'include/linux/spi/spi.h'. The bits defined here are from bit 0 upwards - * while in SPI_MODE_KERNEL_MASK they are from the other end downwards. - * These bits must not overlap. A static assert check should make sure of that. - * If adding extra bits, make sure to increase the bit index below as well. - */ -#define SPI_MODE_USER_MASK (_BITUL(16) - 1) - -#endif /* _UAPI_SPI_H */ diff --git a/original/uapi/linux/spi/spidev.h b/original/uapi/linux/spi/spidev.h index 0c3da08..ee0f246 100644 --- a/original/uapi/linux/spi/spidev.h +++ b/original/uapi/linux/spi/spidev.h @@ -25,7 +25,31 @@ #include <linux/types.h> #include <linux/ioctl.h> -#include <linux/spi/spi.h> + +/* User space versions of kernel symbols for SPI clocking modes, + * matching <linux/spi/spi.h> + */ + +#define SPI_CPHA 0x01 +#define SPI_CPOL 0x02 + +#define SPI_MODE_0 (0|0) +#define SPI_MODE_1 (0|SPI_CPHA) +#define SPI_MODE_2 (SPI_CPOL|0) +#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA) + +#define SPI_CS_HIGH 0x04 +#define SPI_LSB_FIRST 0x08 +#define SPI_3WIRE 0x10 +#define SPI_LOOP 0x20 +#define SPI_NO_CS 0x40 +#define SPI_READY 0x80 +#define SPI_TX_DUAL 0x100 +#define SPI_TX_QUAD 0x200 +#define SPI_RX_DUAL 0x400 +#define SPI_RX_QUAD 0x800 + +/*---------------------------------------------------------------------------*/ /* IOCTL commands */ diff --git a/original/uapi/linux/stat.h b/original/uapi/linux/stat.h index 1500a0f..ad80a5c 100644 --- a/original/uapi/linux/stat.h +++ b/original/uapi/linux/stat.h @@ -123,10 +123,7 @@ struct statx { __u32 stx_dev_major; /* ID of device containing file [uncond] */ __u32 stx_dev_minor; /* 0x90 */ - __u64 stx_mnt_id; - __u64 __spare2; - /* 0xa0 */ - __u64 __spare3[12]; /* Spare space for future expansion */ + __u64 __spare2[14]; /* Spare space for future expansion */ /* 0x100 */ }; @@ -151,19 +148,9 @@ struct statx { #define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */ #define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */ #define STATX_BTIME 0x00000800U /* Want/got stx_btime */ -#define STATX_MNT_ID 0x00001000U /* Got stx_mnt_id */ - +#define STATX_ALL 0x00000fffU /* All currently supported flags */ #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */ -#ifndef __KERNEL__ -/* - * This is deprecated, and shall remain the same value in the future. To avoid - * confusion please use the equivalent (STATX_BASIC_STATS | STATX_BTIME) - * instead. - */ -#define STATX_ALL 0x00000fffU -#endif - /* * Attributes to be found in stx_attributes and masked in stx_attributes_mask. * @@ -171,12 +158,9 @@ struct statx { * be of use to ordinary userspace programs such as GUIs or ls rather than * specialised tools. * - * Note that the flags marked [I] correspond to the FS_IOC_SETFLAGS flags + * Note that the flags marked [I] correspond to generic FS_IOC_FLAGS * semantically. Where possible, the numerical value is picked to correspond - * also. Note that the DAX attribute indicates that the file is in the CPU - * direct access state. It does not correspond to the per-inode flag that - * some filesystems support. - * + * also. */ #define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */ #define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */ @@ -184,9 +168,7 @@ struct statx { #define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */ #define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */ #define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ -#define STATX_ATTR_MOUNT_ROOT 0x00002000 /* Root of a mount */ #define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */ -#define STATX_ATTR_DAX 0x00200000 /* File is currently in DAX state */ #endif /* _UAPI_LINUX_STAT_H */ diff --git a/original/uapi/linux/surface_aggregator/cdev.h b/original/uapi/linux/surface_aggregator/cdev.h deleted file mode 100644 index fbcce04..0000000 --- a/original/uapi/linux/surface_aggregator/cdev.h +++ /dev/null @@ -1,78 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * Surface System Aggregator Module (SSAM) user-space EC interface. - * - * Definitions, structs, and IOCTLs for the /dev/surface/aggregator misc - * device. This device provides direct user-space access to the SSAM EC. - * Intended for debugging and development. - * - * Copyright (C) 2020 Maximilian Luz <luzmaximilian@gmail.com> - */ - -#ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H -#define _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H - -#include <linux/ioctl.h> -#include <linux/types.h> - -/** - * enum ssam_cdev_request_flags - Request flags for SSAM cdev request IOCTL. - * - * @SSAM_CDEV_REQUEST_HAS_RESPONSE: - * Specifies that the request expects a response. If not set, the request - * will be directly completed after its underlying packet has been - * transmitted. If set, the request transport system waits for a response - * of the request. - * - * @SSAM_CDEV_REQUEST_UNSEQUENCED: - * Specifies that the request should be transmitted via an unsequenced - * packet. If set, the request must not have a response, meaning that this - * flag and the %SSAM_CDEV_REQUEST_HAS_RESPONSE flag are mutually - * exclusive. - */ -enum ssam_cdev_request_flags { - SSAM_CDEV_REQUEST_HAS_RESPONSE = 0x01, - SSAM_CDEV_REQUEST_UNSEQUENCED = 0x02, -}; - -/** - * struct ssam_cdev_request - Controller request IOCTL argument. - * @target_category: Target category of the SAM request. - * @target_id: Target ID of the SAM request. - * @command_id: Command ID of the SAM request. - * @instance_id: Instance ID of the SAM request. - * @flags: Request flags (see &enum ssam_cdev_request_flags). - * @status: Request status (output). - * @payload: Request payload (input data). - * @payload.data: Pointer to request payload data. - * @payload.length: Length of request payload data (in bytes). - * @response: Request response (output data). - * @response.data: Pointer to response buffer. - * @response.length: On input: Capacity of response buffer (in bytes). - * On output: Length of request response (number of bytes - * in the buffer that are actually used). - */ -struct ssam_cdev_request { - __u8 target_category; - __u8 target_id; - __u8 command_id; - __u8 instance_id; - __u16 flags; - __s16 status; - - struct { - __u64 data; - __u16 length; - __u8 __pad[6]; - } payload; - - struct { - __u64 data; - __u16 length; - __u8 __pad[6]; - } response; -} __attribute__((__packed__)); - -#define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request) - -#endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H */ diff --git a/original/uapi/linux/swab.h b/original/uapi/linux/swab.h index 7272f85..23cd848 100644 --- a/original/uapi/linux/swab.h +++ b/original/uapi/linux/swab.h @@ -4,7 +4,6 @@ #include <linux/types.h> #include <linux/compiler.h> -#include <asm/bitsperlong.h> #include <asm/swab.h> /* @@ -133,15 +132,6 @@ static inline __attribute_const__ __u32 __fswahb32(__u32 val) __fswab64(x)) #endif -static __always_inline unsigned long __swab(const unsigned long y) -{ -#if __BITS_PER_LONG == 64 - return __swab64(y); -#else /* __BITS_PER_LONG == 32 */ - return __swab32(y); -#endif -} - /** * __swahw32 - return a word-swapped 32-bit value * @x: value to wordswap diff --git a/original/uapi/linux/switchtec_ioctl.h b/original/uapi/linux/switchtec_ioctl.h index 2c661a3..c912b5a 100644 --- a/original/uapi/linux/switchtec_ioctl.h +++ b/original/uapi/linux/switchtec_ioctl.h @@ -32,18 +32,7 @@ #define SWITCHTEC_IOCTL_PART_VENDOR5 10 #define SWITCHTEC_IOCTL_PART_VENDOR6 11 #define SWITCHTEC_IOCTL_PART_VENDOR7 12 -#define SWITCHTEC_IOCTL_PART_BL2_0 13 -#define SWITCHTEC_IOCTL_PART_BL2_1 14 -#define SWITCHTEC_IOCTL_PART_MAP_0 15 -#define SWITCHTEC_IOCTL_PART_MAP_1 16 -#define SWITCHTEC_IOCTL_PART_KEY_0 17 -#define SWITCHTEC_IOCTL_PART_KEY_1 18 - -#define SWITCHTEC_NUM_PARTITIONS_GEN3 13 -#define SWITCHTEC_NUM_PARTITIONS_GEN4 19 - -/* obsolete: for compatibility with old userspace software */ -#define SWITCHTEC_IOCTL_NUM_PARTITIONS SWITCHTEC_NUM_PARTITIONS_GEN3 +#define SWITCHTEC_IOCTL_NUM_PARTITIONS 13 struct switchtec_ioctl_flash_info { __u64 flash_length; @@ -109,9 +98,7 @@ struct switchtec_ioctl_event_summary { #define SWITCHTEC_IOCTL_EVENT_CREDIT_TIMEOUT 27 #define SWITCHTEC_IOCTL_EVENT_LINK_STATE 28 #define SWITCHTEC_IOCTL_EVENT_GFMS 29 -#define SWITCHTEC_IOCTL_EVENT_INTERCOMM_REQ_NOTIFY 30 -#define SWITCHTEC_IOCTL_EVENT_UEC 31 -#define SWITCHTEC_IOCTL_MAX_EVENTS 32 +#define SWITCHTEC_IOCTL_MAX_EVENTS 30 #define SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX -1 #define SWITCHTEC_IOCTL_EVENT_IDX_ALL -2 diff --git a/original/uapi/linux/sysctl.h b/original/uapi/linux/sysctl.h index 1e05d3c..87aa2a6 100644 --- a/original/uapi/linux/sysctl.h +++ b/original/uapi/linux/sysctl.h @@ -23,7 +23,7 @@ #ifndef _UAPI_LINUX_SYSCTL_H #define _UAPI_LINUX_SYSCTL_H -#include <linux/const.h> +#include <linux/kernel.h> #include <linux/types.h> #include <linux/compiler.h> @@ -195,7 +195,7 @@ enum VM_MIN_UNMAPPED=32, /* Set min percent of unmapped pages */ VM_PANIC_ON_OOM=33, /* panic at out-of-memory */ VM_VDSO_ENABLED=34, /* map VDSO into new processes? */ - VM_MIN_SLAB=35, /* Percent pages ignored by node reclaim */ + VM_MIN_SLAB=35, /* Percent pages ignored by zone reclaim */ }; @@ -571,7 +571,6 @@ enum { NET_IPV6_ACCEPT_SOURCE_ROUTE=25, NET_IPV6_ACCEPT_RA_FROM_LOCAL=26, NET_IPV6_ACCEPT_RA_RT_INFO_MIN_PLEN=27, - NET_IPV6_RA_DEFRTR_METRIC=28, __NET_IPV6_MAX }; diff --git a/original/uapi/linux/target_core_user.h b/original/uapi/linux/target_core_user.h index 95b1597..b7b5796 100644 --- a/original/uapi/linux/target_core_user.h +++ b/original/uapi/linux/target_core_user.h @@ -45,7 +45,6 @@ #define ALIGN_SIZE 64 /* Should be enough for most CPUs */ #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */ #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */ -#define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2) /* TMR notifications */ struct tcmu_mailbox { __u16 version; @@ -63,7 +62,6 @@ struct tcmu_mailbox { enum tcmu_opcode { TCMU_OP_PAD = 0, TCMU_OP_CMD, - TCMU_OP_TMR, }; /* @@ -130,29 +128,6 @@ struct tcmu_cmd_entry { } __packed; -struct tcmu_tmr_entry { - struct tcmu_cmd_entry_hdr hdr; - -#define TCMU_TMR_UNKNOWN 0 -#define TCMU_TMR_ABORT_TASK 1 -#define TCMU_TMR_ABORT_TASK_SET 2 -#define TCMU_TMR_CLEAR_ACA 3 -#define TCMU_TMR_CLEAR_TASK_SET 4 -#define TCMU_TMR_LUN_RESET 5 -#define TCMU_TMR_TARGET_WARM_RESET 6 -#define TCMU_TMR_TARGET_COLD_RESET 7 -/* Pseudo reset due to received PR OUT */ -#define TCMU_TMR_LUN_RESET_PRO 128 - __u8 tmr_type; - - __u8 __pad1; - __u16 __pad2; - __u32 cmd_cnt; - __u64 __pad3; - __u64 __pad4; - __u16 cmd_ids[0]; -} __packed; - #define TCMU_OP_ALIGN_SIZE sizeof(__u64) enum tcmu_genl_cmd { diff --git a/original/uapi/linux/taskstats.h b/original/uapi/linux/taskstats.h index ccbd087..5e8ca16 100644 --- a/original/uapi/linux/taskstats.h +++ b/original/uapi/linux/taskstats.h @@ -34,7 +34,7 @@ */ -#define TASKSTATS_VERSION 10 +#define TASKSTATS_VERSION 9 #define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN * in linux/sched.h */ @@ -112,7 +112,6 @@ struct taskstats { __u32 ac_gid; /* Group ID */ __u32 ac_pid; /* Process ID */ __u32 ac_ppid; /* Parent process ID */ - /* __u32 range means times from 1970 to 2106 */ __u32 ac_btime; /* Begin time [sec since 1970] */ __u64 ac_etime __attribute__((aligned(8))); /* Elapsed time [usec] */ @@ -169,9 +168,6 @@ struct taskstats { /* Delay waiting for thrashing page */ __u64 thrashing_count; __u64 thrashing_delay_total; - - /* v10: 64-bit btime to avoid overflow */ - __u64 ac_btime64; /* 64-bit begin time */ }; diff --git a/original/uapi/linux/tc_act/tc_gate.h b/original/uapi/linux/tc_act/tc_gate.h deleted file mode 100644 index f214b3a..0000000 --- a/original/uapi/linux/tc_act/tc_gate.h +++ /dev/null @@ -1,47 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* Copyright 2020 NXP */ - -#ifndef __LINUX_TC_GATE_H -#define __LINUX_TC_GATE_H - -#include <linux/pkt_cls.h> - -struct tc_gate { - tc_gen; -}; - -enum { - TCA_GATE_ENTRY_UNSPEC, - TCA_GATE_ENTRY_INDEX, - TCA_GATE_ENTRY_GATE, - TCA_GATE_ENTRY_INTERVAL, - TCA_GATE_ENTRY_IPV, - TCA_GATE_ENTRY_MAX_OCTETS, - __TCA_GATE_ENTRY_MAX, -}; -#define TCA_GATE_ENTRY_MAX (__TCA_GATE_ENTRY_MAX - 1) - -enum { - TCA_GATE_ONE_ENTRY_UNSPEC, - TCA_GATE_ONE_ENTRY, - __TCA_GATE_ONE_ENTRY_MAX, -}; -#define TCA_GATE_ONE_ENTRY_MAX (__TCA_GATE_ONE_ENTRY_MAX - 1) - -enum { - TCA_GATE_UNSPEC, - TCA_GATE_TM, - TCA_GATE_PARMS, - TCA_GATE_PAD, - TCA_GATE_PRIORITY, - TCA_GATE_ENTRY_LIST, - TCA_GATE_BASE_TIME, - TCA_GATE_CYCLE_TIME, - TCA_GATE_CYCLE_TIME_EXT, - TCA_GATE_FLAGS, - TCA_GATE_CLOCKID, - __TCA_GATE_MAX, -}; -#define TCA_GATE_MAX (__TCA_GATE_MAX - 1) - -#endif diff --git a/original/uapi/linux/tc_act/tc_mpls.h b/original/uapi/linux/tc_act/tc_mpls.h index 9e4e8f5..9360e95 100644 --- a/original/uapi/linux/tc_act/tc_mpls.h +++ b/original/uapi/linux/tc_act/tc_mpls.h @@ -10,7 +10,6 @@ #define TCA_MPLS_ACT_PUSH 2 #define TCA_MPLS_ACT_MODIFY 3 #define TCA_MPLS_ACT_DEC_TTL 4 -#define TCA_MPLS_ACT_MAC_PUSH 5 struct tc_mpls { tc_gen; /* generic TC action fields. */ diff --git a/original/uapi/linux/tc_act/tc_vlan.h b/original/uapi/linux/tc_act/tc_vlan.h index 5b306fe..168995b 100644 --- a/original/uapi/linux/tc_act/tc_vlan.h +++ b/original/uapi/linux/tc_act/tc_vlan.h @@ -16,8 +16,6 @@ #define TCA_VLAN_ACT_POP 1 #define TCA_VLAN_ACT_PUSH 2 #define TCA_VLAN_ACT_MODIFY 3 -#define TCA_VLAN_ACT_POP_ETH 4 -#define TCA_VLAN_ACT_PUSH_ETH 5 struct tc_vlan { tc_gen; @@ -32,8 +30,6 @@ enum { TCA_VLAN_PUSH_VLAN_PROTOCOL, TCA_VLAN_PAD, TCA_VLAN_PUSH_VLAN_PRIORITY, - TCA_VLAN_PUSH_ETH_DST, - TCA_VLAN_PUSH_ETH_SRC, __TCA_VLAN_MAX, }; #define TCA_VLAN_MAX (__TCA_VLAN_MAX - 1) diff --git a/original/uapi/linux/tcp.h b/original/uapi/linux/tcp.h index 8fc09e8..74af1f7 100644 --- a/original/uapi/linux/tcp.h +++ b/original/uapi/linux/tcp.h @@ -51,7 +51,7 @@ struct tcphdr { fin:1; #else #error "Adjust your <asm/byteorder.h> defines" -#endif +#endif __be16 window; __sum16 check; __be16 urg_ptr; @@ -62,14 +62,14 @@ struct tcphdr { * (union is compatible to any of its members) * This means this part of the code is -fstrict-aliasing safe now. */ -union tcp_word_hdr { +union tcp_word_hdr { struct tcphdr hdr; - __be32 words[5]; -}; + __be32 words[5]; +}; -#define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3]) +#define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) -enum { +enum { TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), @@ -80,7 +80,7 @@ enum { TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000), TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000), TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) -}; +}; /* * TCP general constants @@ -103,8 +103,8 @@ enum { #define TCP_QUICKACK 12 /* Block/reenable quick acks */ #define TCP_CONGESTION 13 /* Congestion control algorithm */ #define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ -#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ -#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */ +#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ +#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */ #define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */ #define TCP_REPAIR 19 /* TCP sock is under repair right now */ #define TCP_REPAIR_QUEUE 20 @@ -311,25 +311,20 @@ enum { TCP_NLA_DSACK_DUPS, /* DSACK blocks received */ TCP_NLA_REORD_SEEN, /* reordering events seen */ TCP_NLA_SRTT, /* smoothed RTT in usecs */ - TCP_NLA_TIMEOUT_REHASH, /* Timeout-triggered rehash attempts */ - TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */ - TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */ - TCP_NLA_TTL, /* TTL or hop limit of a packet received */ }; /* for TCP_MD5SIG socket option */ #define TCP_MD5SIG_MAXKEYLEN 80 /* tcp_md5sig extension flags for TCP_MD5SIG_EXT */ -#define TCP_MD5SIG_FLAG_PREFIX 0x1 /* address prefix length */ -#define TCP_MD5SIG_FLAG_IFINDEX 0x2 /* ifindex set */ +#define TCP_MD5SIG_FLAG_PREFIX 1 /* address prefix length */ struct tcp_md5sig { struct __kernel_sockaddr_storage tcpm_addr; /* address associated */ __u8 tcpm_flags; /* extension flags */ __u8 tcpm_prefixlen; /* address prefix */ __u16 tcpm_keylen; /* key length */ - int tcpm_ifindex; /* device index for scope */ + __u32 __tcpm_pad; /* zero */ __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */ }; @@ -344,19 +339,9 @@ struct tcp_diag_md5sig { /* setsockopt(fd, IPPROTO_TCP, TCP_ZEROCOPY_RECEIVE, ...) */ -#define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1 struct tcp_zerocopy_receive { __u64 address; /* in: address of mapping */ __u32 length; /* in/out: number of bytes to map/mapped */ __u32 recv_skip_hint; /* out: amount of bytes to skip */ - __u32 inq; /* out: amount of bytes in read queue */ - __s32 err; /* out: socket error */ - __u64 copybuf_address; /* in: copybuf address (small reads) */ - __s32 copybuf_len; /* in/out: copybuf bytes avail/used or error */ - __u32 flags; /* in: flags */ - __u64 msg_control; /* ancillary data */ - __u64 msg_controllen; - __u32 msg_flags; - __u32 reserved; /* set to 0 for now */ }; #endif /* _UAPI_LINUX_TCP_H */ diff --git a/original/uapi/linux/tee.h b/original/uapi/linux/tee.h index 25a6c53..4b9eb06 100644 --- a/original/uapi/linux/tee.h +++ b/original/uapi/linux/tee.h @@ -51,15 +51,11 @@ #define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */ #define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */ #define TEE_GEN_CAP_REG_MEM (1 << 2)/* Supports registering shared memory */ -#define TEE_GEN_CAP_MEMREF_NULL (1 << 3)/* NULL MemRef support */ - -#define TEE_MEMREF_NULL (__u64)(-1) /* NULL MemRef Buffer */ /* * TEE Implementation ID */ #define TEE_IMPL_ID_OPTEE 1 -#define TEE_IMPL_ID_AMDTEE 2 /* * OP-TEE specific capabilities @@ -176,15 +172,6 @@ struct tee_ioctl_buf_data { #define TEE_IOCTL_LOGIN_APPLICATION 4 #define TEE_IOCTL_LOGIN_USER_APPLICATION 5 #define TEE_IOCTL_LOGIN_GROUP_APPLICATION 6 -/* - * Disallow user-space to use GP implementation specific login - * method range (0x80000000 - 0xBFFFFFFF). This range is rather - * being reserved for REE kernel clients or TEE implementation. - */ -#define TEE_IOCTL_LOGIN_REE_KERNEL_MIN 0x80000000 -#define TEE_IOCTL_LOGIN_REE_KERNEL_MAX 0xBFFFFFFF -/* Private login method for REE kernel clients */ -#define TEE_IOCTL_LOGIN_REE_KERNEL 0x80000000 /** * struct tee_ioctl_param - parameter @@ -203,16 +190,6 @@ struct tee_ioctl_buf_data { * a part of a shared memory by specifying an offset (@a) and size (@b) of * the object. To supply the entire shared memory object set the offset * (@a) to 0 and size (@b) to the previously returned size of the object. - * - * A client may need to present a NULL pointer in the argument - * passed to a trusted application in the TEE. - * This is also a requirement in GlobalPlatform Client API v1.0c - * (section 3.2.5 memory references), which can be found at - * http://www.globalplatform.org/specificationsdevice.asp - * - * If a NULL pointer is passed to a TA in the TEE, the (@c) - * IOCTL parameters value must be set to TEE_MEMREF_NULL indicating a NULL - * memory reference. */ struct tee_ioctl_param { __u64 attr; @@ -355,7 +332,7 @@ struct tee_iocl_supp_send_arg { }; /** - * TEE_IOC_SUPPL_SEND - Send a response to a received request + * TEE_IOC_SUPPL_SEND - Receive a request for a supplicant function * * Takes a struct tee_ioctl_buf_data which contains a struct * tee_iocl_supp_send_arg followed by any array of struct tee_param diff --git a/original/uapi/linux/termios.h b/original/uapi/linux/termios.h index e6da9d4..33961d4 100644 --- a/original/uapi/linux/termios.h +++ b/original/uapi/linux/termios.h @@ -5,4 +5,19 @@ #include <linux/types.h> #include <asm/termios.h> +#define NFF 5 + +struct termiox +{ + __u16 x_hflag; + __u16 x_cflag; + __u16 x_rflag[NFF]; + __u16 x_sflag; +}; + +#define RTSXOFF 0x0001 /* RTS flow control on input */ +#define CTSXON 0x0002 /* CTS flow control on output */ +#define DTRXOFF 0x0004 /* DTR flow control on input */ +#define DSRXON 0x0008 /* DCD flow control on output */ + #endif diff --git a/original/uapi/linux/thermal.h b/original/uapi/linux/thermal.h index c105054..9621837 100644 --- a/original/uapi/linux/thermal.h +++ b/original/uapi/linux/thermal.h @@ -4,86 +4,31 @@ #define THERMAL_NAME_LENGTH 20 -enum thermal_device_mode { - THERMAL_DEVICE_DISABLED = 0, - THERMAL_DEVICE_ENABLED, -}; - -enum thermal_trip_type { - THERMAL_TRIP_ACTIVE = 0, - THERMAL_TRIP_PASSIVE, - THERMAL_TRIP_HOT, - THERMAL_TRIP_CRITICAL, -}; - /* Adding event notification support elements */ -#define THERMAL_GENL_FAMILY_NAME "thermal" -#define THERMAL_GENL_VERSION 0x01 -#define THERMAL_GENL_SAMPLING_GROUP_NAME "sampling" -#define THERMAL_GENL_EVENT_GROUP_NAME "event" +#define THERMAL_GENL_FAMILY_NAME "thermal_event" +#define THERMAL_GENL_VERSION 0x01 +#define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_grp" + +/* Events supported by Thermal Netlink */ +enum events { + THERMAL_AUX0, + THERMAL_AUX1, + THERMAL_CRITICAL, + THERMAL_DEV_FAULT, +}; -/* Attributes of thermal_genl_family */ -enum thermal_genl_attr { +/* attributes of thermal_genl_family */ +enum { THERMAL_GENL_ATTR_UNSPEC, - THERMAL_GENL_ATTR_TZ, - THERMAL_GENL_ATTR_TZ_ID, - THERMAL_GENL_ATTR_TZ_TEMP, - THERMAL_GENL_ATTR_TZ_TRIP, - THERMAL_GENL_ATTR_TZ_TRIP_ID, - THERMAL_GENL_ATTR_TZ_TRIP_TYPE, - THERMAL_GENL_ATTR_TZ_TRIP_TEMP, - THERMAL_GENL_ATTR_TZ_TRIP_HYST, - THERMAL_GENL_ATTR_TZ_MODE, - THERMAL_GENL_ATTR_TZ_NAME, - THERMAL_GENL_ATTR_TZ_CDEV_WEIGHT, - THERMAL_GENL_ATTR_TZ_GOV, - THERMAL_GENL_ATTR_TZ_GOV_NAME, - THERMAL_GENL_ATTR_CDEV, - THERMAL_GENL_ATTR_CDEV_ID, - THERMAL_GENL_ATTR_CDEV_CUR_STATE, - THERMAL_GENL_ATTR_CDEV_MAX_STATE, - THERMAL_GENL_ATTR_CDEV_NAME, - THERMAL_GENL_ATTR_GOV_NAME, - + THERMAL_GENL_ATTR_EVENT, __THERMAL_GENL_ATTR_MAX, }; #define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1) -enum thermal_genl_sampling { - THERMAL_GENL_SAMPLING_TEMP, - __THERMAL_GENL_SAMPLING_MAX, -}; -#define THERMAL_GENL_SAMPLING_MAX (__THERMAL_GENL_SAMPLING_MAX - 1) - -/* Events of thermal_genl_family */ -enum thermal_genl_event { - THERMAL_GENL_EVENT_UNSPEC, - THERMAL_GENL_EVENT_TZ_CREATE, /* Thermal zone creation */ - THERMAL_GENL_EVENT_TZ_DELETE, /* Thermal zone deletion */ - THERMAL_GENL_EVENT_TZ_DISABLE, /* Thermal zone disabed */ - THERMAL_GENL_EVENT_TZ_ENABLE, /* Thermal zone enabled */ - THERMAL_GENL_EVENT_TZ_TRIP_UP, /* Trip point crossed the way up */ - THERMAL_GENL_EVENT_TZ_TRIP_DOWN, /* Trip point crossed the way down */ - THERMAL_GENL_EVENT_TZ_TRIP_CHANGE, /* Trip point changed */ - THERMAL_GENL_EVENT_TZ_TRIP_ADD, /* Trip point added */ - THERMAL_GENL_EVENT_TZ_TRIP_DELETE, /* Trip point deleted */ - THERMAL_GENL_EVENT_CDEV_ADD, /* Cdev bound to the thermal zone */ - THERMAL_GENL_EVENT_CDEV_DELETE, /* Cdev unbound */ - THERMAL_GENL_EVENT_CDEV_STATE_UPDATE, /* Cdev state updated */ - THERMAL_GENL_EVENT_TZ_GOV_CHANGE, /* Governor policy changed */ - __THERMAL_GENL_EVENT_MAX, -}; -#define THERMAL_GENL_EVENT_MAX (__THERMAL_GENL_EVENT_MAX - 1) - -/* Commands supported by the thermal_genl_family */ -enum thermal_genl_cmd { +/* commands supported by the thermal_genl_family */ +enum { THERMAL_GENL_CMD_UNSPEC, - THERMAL_GENL_CMD_TZ_GET_ID, /* List of thermal zones id */ - THERMAL_GENL_CMD_TZ_GET_TRIP, /* List of thermal trips */ - THERMAL_GENL_CMD_TZ_GET_TEMP, /* Get the thermal zone temperature */ - THERMAL_GENL_CMD_TZ_GET_GOV, /* Get the thermal zone governor */ - THERMAL_GENL_CMD_TZ_GET_MODE, /* Get the thermal zone mode */ - THERMAL_GENL_CMD_CDEV_GET, /* List of cdev id */ + THERMAL_GENL_CMD_EVENT, __THERMAL_GENL_CMD_MAX, }; #define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1) diff --git a/original/uapi/linux/time.h b/original/uapi/linux/time.h index 4f4b6e4..a655aa2 100644 --- a/original/uapi/linux/time.h +++ b/original/uapi/linux/time.h @@ -5,7 +5,6 @@ #include <linux/types.h> #include <linux/time_types.h> -#ifndef __KERNEL__ #ifndef _STRUCT_TIMESPEC #define _STRUCT_TIMESPEC struct timespec { @@ -19,17 +18,6 @@ struct timeval { __kernel_suseconds_t tv_usec; /* microseconds */ }; -struct itimerspec { - struct timespec it_interval;/* timer period */ - struct timespec it_value; /* timer expiration */ -}; - -struct itimerval { - struct timeval it_interval;/* timer interval */ - struct timeval it_value; /* current value */ -}; -#endif - struct timezone { int tz_minuteswest; /* minutes west of Greenwich */ int tz_dsttime; /* type of dst correction */ @@ -43,6 +31,16 @@ struct timezone { #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 +struct itimerspec { + struct timespec it_interval; /* timer period */ + struct timespec it_value; /* timer expiration */ +}; + +struct itimerval { + struct timeval it_interval; /* timer interval */ + struct timeval it_value; /* current value */ +}; + /* * The IDs of the various system clocks (for POSIX.1b interval timers): */ diff --git a/original/uapi/linux/time_types.h b/original/uapi/linux/time_types.h index bcc0002..074e391 100644 --- a/original/uapi/linux/time_types.h +++ b/original/uapi/linux/time_types.h @@ -33,11 +33,6 @@ struct __kernel_old_timespec { long tv_nsec; /* nanoseconds */ }; -struct __kernel_old_itimerval { - struct __kernel_old_timeval it_interval;/* timer interval */ - struct __kernel_old_timeval it_value; /* current value */ -}; - struct __kernel_sock_timeval { __s64 tv_sec; __s64 tv_usec; diff --git a/original/uapi/linux/timex.h b/original/uapi/linux/timex.h index bd627c3..9f517f9 100644 --- a/original/uapi/linux/timex.h +++ b/original/uapi/linux/timex.h @@ -57,7 +57,6 @@ #define NTP_API 4 /* NTP API version */ -#ifndef __KERNEL__ /* * syscall interface - used (mainly by NTP daemon) * to discipline kernel clock oscillator @@ -92,7 +91,6 @@ struct timex { int :32; int :32; int :32; int :32; int :32; int :32; int :32; }; -#endif struct __kernel_timex_timeval { __kernel_time64_t tv_sec; diff --git a/original/uapi/linux/tipc.h b/original/uapi/linux/tipc.h index 80ea15e..add01db 100644 --- a/original/uapi/linux/tipc.h +++ b/original/uapi/linux/tipc.h @@ -254,8 +254,6 @@ static inline int tipc_aead_key_size(struct tipc_aead_key *key) return sizeof(*key) + key->keylen; } -#define TIPC_REKEYING_NOW (~0U) - /* The macros and functions below are deprecated: */ diff --git a/original/uapi/linux/tipc_netlink.h b/original/uapi/linux/tipc_netlink.h index d847dd6..6c2194a 100644 --- a/original/uapi/linux/tipc_netlink.h +++ b/original/uapi/linux/tipc_netlink.h @@ -65,7 +65,6 @@ enum { TIPC_NL_UDP_GET_REMOTEIP, TIPC_NL_KEY_SET, TIPC_NL_KEY_FLUSH, - TIPC_NL_ADDR_LEGACY_GET, __TIPC_NL_CMD_MAX, TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1 @@ -165,8 +164,6 @@ enum { TIPC_NLA_NODE_UP, /* flag */ TIPC_NLA_NODE_ID, /* data */ TIPC_NLA_NODE_KEY, /* data */ - TIPC_NLA_NODE_KEY_MASTER, /* flag */ - TIPC_NLA_NODE_REKEYING, /* u32 */ __TIPC_NLA_NODE_MAX, TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1 @@ -179,7 +176,6 @@ enum { TIPC_NLA_NET_ADDR, /* u32 */ TIPC_NLA_NET_NODEID, /* u64 */ TIPC_NLA_NET_NODEID_W1, /* u64 */ - TIPC_NLA_NET_ADDR_LEGACY, /* flag */ __TIPC_NLA_NET_MAX, TIPC_NLA_NET_MAX = __TIPC_NLA_NET_MAX - 1 diff --git a/original/uapi/linux/tls.h b/original/uapi/linux/tls.h index 0d54bae..bcd2869 100644 --- a/original/uapi/linux/tls.h +++ b/original/uapi/linux/tls.h @@ -77,13 +77,6 @@ #define TLS_CIPHER_AES_CCM_128_TAG_SIZE 16 #define TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE 8 -#define TLS_CIPHER_CHACHA20_POLY1305 54 -#define TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE 12 -#define TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE 32 -#define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0 -#define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16 -#define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8 - #define TLS_SET_RECORD_TYPE 1 #define TLS_GET_RECORD_TYPE 2 @@ -116,14 +109,6 @@ struct tls12_crypto_info_aes_ccm_128 { unsigned char rec_seq[TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE]; }; -struct tls12_crypto_info_chacha20_poly1305 { - struct tls_crypto_info info; - unsigned char iv[TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE]; - unsigned char key[TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE]; - unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE]; - unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE]; -}; - enum { TLS_INFO_UNSPEC, TLS_INFO_VERSION, diff --git a/original/uapi/linux/types.h b/original/uapi/linux/types.h index f6d2f83..2fce8b6 100644 --- a/original/uapi/linux/types.h +++ b/original/uapi/linux/types.h @@ -7,7 +7,7 @@ #ifndef __ASSEMBLY__ #ifndef __KERNEL__ #ifndef __EXPORTED_HEADERS__ -#warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders" +#warning "Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders" #endif /* __EXPORTED_HEADERS__ */ #endif diff --git a/original/uapi/linux/udp.h b/original/uapi/linux/udp.h index 4828794..30baccb 100644 --- a/original/uapi/linux/udp.h +++ b/original/uapi/linux/udp.h @@ -42,6 +42,5 @@ struct udphdr { #define UDP_ENCAP_GTP0 4 /* GSM TS 09.60 */ #define UDP_ENCAP_GTP1U 5 /* 3GPP TS 29.060 */ #define UDP_ENCAP_RXRPC 6 -#define TCP_ENCAP_ESPINTCP 7 /* Yikes, this is really xfrm encap types. */ #endif /* _UAPI_LINUX_UDP_H */ diff --git a/original/uapi/linux/um_timetravel.h b/original/uapi/linux/um_timetravel.h deleted file mode 100644 index ca32382..0000000 --- a/original/uapi/linux/um_timetravel.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * Copyright (C) 2019 Intel Corporation - */ -#ifndef _UAPI_LINUX_UM_TIMETRAVEL_H -#define _UAPI_LINUX_UM_TIMETRAVEL_H -#include <linux/types.h> - -/** - * struct um_timetravel_msg - UM time travel message - * - * This is the basic message type, going in both directions. - * - * This is the message passed between the host (user-mode Linux instance) - * and the calendar (the application on the other side of the socket) in - * order to implement common scheduling. - * - * Whenever UML has an event it will request runtime for it from the - * calendar, and then wait for its turn until it can run, etc. Note - * that it will only ever request the single next runtime, i.e. multiple - * REQUEST messages override each other. - */ -struct um_timetravel_msg { - /** - * @op: operation value from &enum um_timetravel_ops - */ - __u32 op; - - /** - * @seq: sequence number for the message - shall be reflected in - * the ACK response, and should be checked while processing - * the response to see if it matches - */ - __u32 seq; - - /** - * @time: time in nanoseconds - */ - __u64 time; -}; - -/** - * enum um_timetravel_ops - Operation codes - */ -enum um_timetravel_ops { - /** - * @UM_TIMETRAVEL_ACK: response (ACK) to any previous message, - * this usually doesn't carry any data in the 'time' field - * unless otherwise specified below - */ - UM_TIMETRAVEL_ACK = 0, - - /** - * @UM_TIMETRAVEL_START: initialize the connection, the time - * field contains an (arbitrary) ID to possibly be able - * to distinguish the connections. - */ - UM_TIMETRAVEL_START = 1, - - /** - * @UM_TIMETRAVEL_REQUEST: request to run at the given time - * (host -> calendar) - */ - UM_TIMETRAVEL_REQUEST = 2, - - /** - * @UM_TIMETRAVEL_WAIT: Indicate waiting for the previously requested - * runtime, new requests may be made while waiting (e.g. due to - * interrupts); the time field is ignored. The calendar must process - * this message and later send a %UM_TIMETRAVEL_RUN message when - * the host can run again. - * (host -> calendar) - */ - UM_TIMETRAVEL_WAIT = 3, - - /** - * @UM_TIMETRAVEL_GET: return the current time from the calendar in the - * ACK message, the time in the request message is ignored - * (host -> calendar) - */ - UM_TIMETRAVEL_GET = 4, - - /** - * @UM_TIMETRAVEL_UPDATE: time update to the calendar, must be sent e.g. - * before kicking an interrupt to another calendar - * (host -> calendar) - */ - UM_TIMETRAVEL_UPDATE = 5, - - /** - * @UM_TIMETRAVEL_RUN: run time request granted, current time is in - * the time field - * (calendar -> host) - */ - UM_TIMETRAVEL_RUN = 6, - - /** - * @UM_TIMETRAVEL_FREE_UNTIL: Enable free-running until the given time, - * this is a message from the calendar telling the host that it can - * freely do its own scheduling for anything before the indicated - * time. - * Note that if a calendar sends this message once, the host may - * assume that it will also do so in the future, if it implements - * wraparound semantics for the time field. - * (calendar -> host) - */ - UM_TIMETRAVEL_FREE_UNTIL = 7, - - /** - * @UM_TIMETRAVEL_GET_TOD: Return time of day, typically used once at - * boot by the virtual machines to get a synchronized time from - * the simulation. - */ - UM_TIMETRAVEL_GET_TOD = 8, -}; - -#endif /* _UAPI_LINUX_UM_TIMETRAVEL_H */ diff --git a/original/uapi/linux/usb/ch9.h b/original/uapi/linux/usb/ch9.h index 17ce561..2b623f3 100644 --- a/original/uapi/linux/usb/ch9.h +++ b/original/uapi/linux/usb/ch9.h @@ -138,11 +138,11 @@ * Test Mode Selectors * See USB 2.0 spec Table 9-7 */ -#define USB_TEST_J 1 -#define USB_TEST_K 2 -#define USB_TEST_SE0_NAK 3 -#define USB_TEST_PACKET 4 -#define USB_TEST_FORCE_ENABLE 5 +#define TEST_J 1 +#define TEST_K 2 +#define TEST_SE0_NAK 3 +#define TEST_PACKET 4 +#define TEST_FORCE_EN 5 /* Status Type */ #define USB_STATUS_TYPE_STANDARD 0 @@ -326,10 +326,6 @@ struct usb_device_descriptor { #define USB_CLASS_CONTENT_SEC 0x0d /* content security */ #define USB_CLASS_VIDEO 0x0e #define USB_CLASS_WIRELESS_CONTROLLER 0xe0 -#define USB_CLASS_PERSONAL_HEALTHCARE 0x0f -#define USB_CLASS_AUDIO_VIDEO 0x10 -#define USB_CLASS_BILLBOARD 0x11 -#define USB_CLASS_USB_TYPE_C_BRIDGE 0x12 #define USB_CLASS_MISC 0xef #define USB_CLASS_APP_SPEC 0xfe #define USB_CLASS_VENDOR_SPEC 0xff @@ -368,9 +364,6 @@ struct usb_config_descriptor { /*-------------------------------------------------------------------------*/ -/* USB String descriptors can contain at most 126 characters. */ -#define USB_MAX_STRING_LEN 126 - /* USB_DT_STRING: String descriptor */ struct usb_string_descriptor { __u8 bLength; @@ -968,22 +961,9 @@ struct usb_ssp_cap_descriptor { __le32 bmSublinkSpeedAttr[1]; /* list of sublink speed attrib entries */ #define USB_SSP_SUBLINK_SPEED_SSID (0xf) /* sublink speed ID */ #define USB_SSP_SUBLINK_SPEED_LSE (0x3 << 4) /* Lanespeed exponent */ -#define USB_SSP_SUBLINK_SPEED_LSE_BPS 0 -#define USB_SSP_SUBLINK_SPEED_LSE_KBPS 1 -#define USB_SSP_SUBLINK_SPEED_LSE_MBPS 2 -#define USB_SSP_SUBLINK_SPEED_LSE_GBPS 3 - #define USB_SSP_SUBLINK_SPEED_ST (0x3 << 6) /* Sublink type */ -#define USB_SSP_SUBLINK_SPEED_ST_SYM_RX 0 -#define USB_SSP_SUBLINK_SPEED_ST_ASYM_RX 1 -#define USB_SSP_SUBLINK_SPEED_ST_SYM_TX 2 -#define USB_SSP_SUBLINK_SPEED_ST_ASYM_TX 3 - #define USB_SSP_SUBLINK_SPEED_RSVD (0x3f << 8) /* Reserved */ #define USB_SSP_SUBLINK_SPEED_LP (0x3 << 14) /* Link protocol */ -#define USB_SSP_SUBLINK_SPEED_LP_SS 0 -#define USB_SSP_SUBLINK_SPEED_LP_SSP 1 - #define USB_SSP_SUBLINK_SPEED_LSM (0xff << 16) /* Lanespeed mantissa */ } __attribute__((packed)); @@ -1242,7 +1222,7 @@ struct usb_set_sel_req { * As per USB compliance update, a device that is actively drawing * more than 100mA from USB must report itself as bus-powered in * the GetStatus(DEVICE) call. - * https://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34 + * http://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34 */ #define USB_SELF_POWER_VBUS_MAX_DRAW 100 diff --git a/original/uapi/linux/usb/charger.h b/original/uapi/linux/usb/charger.h index ad22079..5f72af3 100644 --- a/original/uapi/linux/usb/charger.h +++ b/original/uapi/linux/usb/charger.h @@ -14,18 +14,18 @@ * ACA (Accessory Charger Adapters) */ enum usb_charger_type { - UNKNOWN_TYPE = 0, - SDP_TYPE = 1, - DCP_TYPE = 2, - CDP_TYPE = 3, - ACA_TYPE = 4, + UNKNOWN_TYPE, + SDP_TYPE, + DCP_TYPE, + CDP_TYPE, + ACA_TYPE, }; /* USB charger state */ enum usb_charger_state { - USB_CHARGER_DEFAULT = 0, - USB_CHARGER_PRESENT = 1, - USB_CHARGER_ABSENT = 2, + USB_CHARGER_DEFAULT, + USB_CHARGER_PRESENT, + USB_CHARGER_ABSENT, }; #endif /* _UAPI__LINUX_USB_CHARGER_H */ diff --git a/original/uapi/linux/usb/raw_gadget.h b/original/uapi/linux/usb/raw_gadget.h deleted file mode 100644 index 0be6852..0000000 --- a/original/uapi/linux/usb/raw_gadget.h +++ /dev/null @@ -1,249 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * USB Raw Gadget driver. - * - * See Documentation/usb/raw-gadget.rst for more details. - */ - -#ifndef _UAPI__LINUX_USB_RAW_GADGET_H -#define _UAPI__LINUX_USB_RAW_GADGET_H - -#include <asm/ioctl.h> -#include <linux/types.h> -#include <linux/usb/ch9.h> - -/* Maximum length of driver_name/device_name in the usb_raw_init struct. */ -#define UDC_NAME_LENGTH_MAX 128 - -/* - * struct usb_raw_init - argument for USB_RAW_IOCTL_INIT ioctl. - * @speed: The speed of the emulated USB device, takes the same values as - * the usb_device_speed enum: USB_SPEED_FULL, USB_SPEED_HIGH, etc. - * @driver_name: The name of the UDC driver. - * @device_name: The name of a UDC instance. - * - * The last two fields identify a UDC the gadget driver should bind to. - * For example, Dummy UDC has "dummy_udc" as its driver_name and "dummy_udc.N" - * as its device_name, where N in the index of the Dummy UDC instance. - * At the same time the dwc2 driver that is used on Raspberry Pi Zero, has - * "20980000.usb" as both driver_name and device_name. - */ -struct usb_raw_init { - __u8 driver_name[UDC_NAME_LENGTH_MAX]; - __u8 device_name[UDC_NAME_LENGTH_MAX]; - __u8 speed; -}; - -/* The type of event fetched with the USB_RAW_IOCTL_EVENT_FETCH ioctl. */ -enum usb_raw_event_type { - USB_RAW_EVENT_INVALID = 0, - - /* This event is queued when the driver has bound to a UDC. */ - USB_RAW_EVENT_CONNECT = 1, - - /* This event is queued when a new control request arrived to ep0. */ - USB_RAW_EVENT_CONTROL = 2, - - /* The list might grow in the future. */ -}; - -/* - * struct usb_raw_event - argument for USB_RAW_IOCTL_EVENT_FETCH ioctl. - * @type: The type of the fetched event. - * @length: Length of the data buffer. Updated by the driver and set to the - * actual length of the fetched event data. - * @data: A buffer to store the fetched event data. - * - * Currently the fetched data buffer is empty for USB_RAW_EVENT_CONNECT, - * and contains struct usb_ctrlrequest for USB_RAW_EVENT_CONTROL. - */ -struct usb_raw_event { - __u32 type; - __u32 length; - __u8 data[0]; -}; - -#define USB_RAW_IO_FLAGS_ZERO 0x0001 -#define USB_RAW_IO_FLAGS_MASK 0x0001 - -static inline int usb_raw_io_flags_valid(__u16 flags) -{ - return (flags & ~USB_RAW_IO_FLAGS_MASK) == 0; -} - -static inline int usb_raw_io_flags_zero(__u16 flags) -{ - return (flags & USB_RAW_IO_FLAGS_ZERO); -} - -/* - * struct usb_raw_ep_io - argument for USB_RAW_IOCTL_EP0/EP_WRITE/READ ioctls. - * @ep: Endpoint handle as returned by USB_RAW_IOCTL_EP_ENABLE for - * USB_RAW_IOCTL_EP_WRITE/READ. Ignored for USB_RAW_IOCTL_EP0_WRITE/READ. - * @flags: When USB_RAW_IO_FLAGS_ZERO is specified, the zero flag is set on - * the submitted USB request, see include/linux/usb/gadget.h for details. - * @length: Length of data. - * @data: Data to send for USB_RAW_IOCTL_EP0/EP_WRITE. Buffer to store received - * data for USB_RAW_IOCTL_EP0/EP_READ. - */ -struct usb_raw_ep_io { - __u16 ep; - __u16 flags; - __u32 length; - __u8 data[0]; -}; - -/* Maximum number of non-control endpoints in struct usb_raw_eps_info. */ -#define USB_RAW_EPS_NUM_MAX 30 - -/* Maximum length of UDC endpoint name in struct usb_raw_ep_info. */ -#define USB_RAW_EP_NAME_MAX 16 - -/* Used as addr in struct usb_raw_ep_info if endpoint accepts any address. */ -#define USB_RAW_EP_ADDR_ANY 0xff - -/* - * struct usb_raw_ep_caps - exposes endpoint capabilities from struct usb_ep - * (technically from its member struct usb_ep_caps). - */ -struct usb_raw_ep_caps { - __u32 type_control : 1; - __u32 type_iso : 1; - __u32 type_bulk : 1; - __u32 type_int : 1; - __u32 dir_in : 1; - __u32 dir_out : 1; -}; - -/* - * struct usb_raw_ep_limits - exposes endpoint limits from struct usb_ep. - * @maxpacket_limit: Maximum packet size value supported by this endpoint. - * @max_streams: maximum number of streams supported by this endpoint - * (actual number is 2^n). - * @reserved: Empty, reserved for potential future extensions. - */ -struct usb_raw_ep_limits { - __u16 maxpacket_limit; - __u16 max_streams; - __u32 reserved; -}; - -/* - * struct usb_raw_ep_info - stores information about a gadget endpoint. - * @name: Name of the endpoint as it is defined in the UDC driver. - * @addr: Address of the endpoint that must be specified in the endpoint - * descriptor passed to USB_RAW_IOCTL_EP_ENABLE ioctl. - * @caps: Endpoint capabilities. - * @limits: Endpoint limits. - */ -struct usb_raw_ep_info { - __u8 name[USB_RAW_EP_NAME_MAX]; - __u32 addr; - struct usb_raw_ep_caps caps; - struct usb_raw_ep_limits limits; -}; - -/* - * struct usb_raw_eps_info - argument for USB_RAW_IOCTL_EPS_INFO ioctl. - * eps: Structures that store information about non-control endpoints. - */ -struct usb_raw_eps_info { - struct usb_raw_ep_info eps[USB_RAW_EPS_NUM_MAX]; -}; - -/* - * Initializes a Raw Gadget instance. - * Accepts a pointer to the usb_raw_init struct as an argument. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_INIT _IOW('U', 0, struct usb_raw_init) - -/* - * Instructs Raw Gadget to bind to a UDC and start emulating a USB device. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_RUN _IO('U', 1) - -/* - * A blocking ioctl that waits for an event and returns fetched event data to - * the user. - * Accepts a pointer to the usb_raw_event struct. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_EVENT_FETCH _IOR('U', 2, struct usb_raw_event) - -/* - * Queues an IN (OUT for READ) request as a response to the last setup request - * received on endpoint 0 (provided that was an IN (OUT for READ) request), and - * waits until the request is completed. Copies received data to user for READ. - * Accepts a pointer to the usb_raw_ep_io struct as an argument. - * Returns length of transferred data on success or negative error code on - * failure. - */ -#define USB_RAW_IOCTL_EP0_WRITE _IOW('U', 3, struct usb_raw_ep_io) -#define USB_RAW_IOCTL_EP0_READ _IOWR('U', 4, struct usb_raw_ep_io) - -/* - * Finds an endpoint that satisfies the parameters specified in the provided - * descriptors (address, transfer type, etc.) and enables it. - * Accepts a pointer to the usb_raw_ep_descs struct as an argument. - * Returns enabled endpoint handle on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_EP_ENABLE _IOW('U', 5, struct usb_endpoint_descriptor) - -/* - * Disables specified endpoint. - * Accepts endpoint handle as an argument. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_EP_DISABLE _IOW('U', 6, __u32) - -/* - * Queues an IN (OUT for READ) request as a response to the last setup request - * received on endpoint usb_raw_ep_io.ep (provided that was an IN (OUT for READ) - * request), and waits until the request is completed. Copies received data to - * user for READ. - * Accepts a pointer to the usb_raw_ep_io struct as an argument. - * Returns length of transferred data on success or negative error code on - * failure. - */ -#define USB_RAW_IOCTL_EP_WRITE _IOW('U', 7, struct usb_raw_ep_io) -#define USB_RAW_IOCTL_EP_READ _IOWR('U', 8, struct usb_raw_ep_io) - -/* - * Switches the gadget into the configured state. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_CONFIGURE _IO('U', 9) - -/* - * Constrains UDC VBUS power usage. - * Accepts current limit in 2 mA units as an argument. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_VBUS_DRAW _IOW('U', 10, __u32) - -/* - * Fills in the usb_raw_eps_info structure with information about non-control - * endpoints available for the currently connected UDC. - * Returns the number of available endpoints on success or negative error code - * on failure. - */ -#define USB_RAW_IOCTL_EPS_INFO _IOR('U', 11, struct usb_raw_eps_info) - -/* - * Stalls a pending control request on endpoint 0. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_EP0_STALL _IO('U', 12) - -/* - * Sets or clears halt or wedge status of the endpoint. - * Accepts endpoint handle as an argument. - * Returns 0 on success or negative error code on failure. - */ -#define USB_RAW_IOCTL_EP_SET_HALT _IOW('U', 13, __u32) -#define USB_RAW_IOCTL_EP_CLEAR_HALT _IOW('U', 14, __u32) -#define USB_RAW_IOCTL_EP_SET_WEDGE _IOW('U', 15, __u32) - -#endif /* _UAPI__LINUX_USB_RAW_GADGET_H */ diff --git a/original/uapi/linux/usb/tmc.h b/original/uapi/linux/usb/tmc.h index d791cc5..fdd4d88 100644 --- a/original/uapi/linux/usb/tmc.h +++ b/original/uapi/linux/usb/tmc.h @@ -102,9 +102,6 @@ struct usbtmc_message { #define USBTMC_IOCTL_MSG_IN_ATTR _IOR(USBTMC_IOC_NR, 24, __u8) #define USBTMC_IOCTL_AUTO_ABORT _IOW(USBTMC_IOC_NR, 25, __u8) -#define USBTMC_IOCTL_GET_STB _IOR(USBTMC_IOC_NR, 26, __u8) -#define USBTMC_IOCTL_GET_SRQ_STB _IOR(USBTMC_IOC_NR, 27, __u8) - /* Cancel and cleanup asynchronous calls */ #define USBTMC_IOCTL_CANCEL_IO _IO(USBTMC_IOC_NR, 35) #define USBTMC_IOCTL_CLEANUP_IO _IO(USBTMC_IOC_NR, 36) diff --git a/original/uapi/linux/userfaultfd.h b/original/uapi/linux/userfaultfd.h index 5f2d882..48f1a7c 100644 --- a/original/uapi/linux/userfaultfd.h +++ b/original/uapi/linux/userfaultfd.h @@ -19,8 +19,7 @@ * means the userland is reading). */ #define UFFD_API ((__u64)0xAA) -#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \ - UFFD_FEATURE_EVENT_FORK | \ +#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \ UFFD_FEATURE_EVENT_REMAP | \ UFFD_FEATURE_EVENT_REMOVE | \ UFFD_FEATURE_EVENT_UNMAP | \ @@ -35,8 +34,7 @@ #define UFFD_API_RANGE_IOCTLS \ ((__u64)1 << _UFFDIO_WAKE | \ (__u64)1 << _UFFDIO_COPY | \ - (__u64)1 << _UFFDIO_ZEROPAGE | \ - (__u64)1 << _UFFDIO_WRITEPROTECT) + (__u64)1 << _UFFDIO_ZEROPAGE) #define UFFD_API_RANGE_IOCTLS_BASIC \ ((__u64)1 << _UFFDIO_WAKE | \ (__u64)1 << _UFFDIO_COPY) @@ -54,7 +52,6 @@ #define _UFFDIO_WAKE (0x02) #define _UFFDIO_COPY (0x03) #define _UFFDIO_ZEROPAGE (0x04) -#define _UFFDIO_WRITEPROTECT (0x06) #define _UFFDIO_API (0x3F) /* userfaultfd ioctl ids */ @@ -71,8 +68,6 @@ struct uffdio_copy) #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, \ struct uffdio_zeropage) -#define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \ - struct uffdio_writeprotect) /* read() structure */ struct uffd_msg { @@ -208,14 +203,13 @@ struct uffdio_copy { __u64 dst; __u64 src; __u64 len; -#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0) /* - * UFFDIO_COPY_MODE_WP will map the page write protected on - * the fly. UFFDIO_COPY_MODE_WP is available only if the - * write protected ioctl is implemented for the range - * according to the uffdio_register.ioctls. + * There will be a wrprotection flag later that allows to map + * pages wrprotected on the fly. And such a flag will be + * available if the wrprotection ioctl are implemented for the + * range according to the uffdio_register.ioctls. */ -#define UFFDIO_COPY_MODE_WP ((__u64)1<<1) +#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0) __u64 mode; /* @@ -237,33 +231,4 @@ struct uffdio_zeropage { __s64 zeropage; }; -struct uffdio_writeprotect { - struct uffdio_range range; -/* - * UFFDIO_WRITEPROTECT_MODE_WP: set the flag to write protect a range, - * unset the flag to undo protection of a range which was previously - * write protected. - * - * UFFDIO_WRITEPROTECT_MODE_DONTWAKE: set the flag to avoid waking up - * any wait thread after the operation succeeds. - * - * NOTE: Write protecting a region (WP=1) is unrelated to page faults, - * therefore DONTWAKE flag is meaningless with WP=1. Removing write - * protection (WP=0) in response to a page fault wakes the faulting - * task unless DONTWAKE is set. - */ -#define UFFDIO_WRITEPROTECT_MODE_WP ((__u64)1<<0) -#define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64)1<<1) - __u64 mode; -}; - -/* - * Flags for the userfaultfd(2) system call itself. - */ - -/* - * Create a userfaultfd that can handle page faults only in user mode. - */ -#define UFFD_USER_MODE_ONLY 1 - #endif /* _LINUX_USERFAULTFD_H */ diff --git a/original/uapi/linux/v4l2-controls.h b/original/uapi/linux/v4l2-controls.h index 039c0d7..5a7bede 100644 --- a/original/uapi/linux/v4l2-controls.h +++ b/original/uapi/linux/v4l2-controls.h @@ -54,7 +54,7 @@ /* Control classes */ #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ -#define V4L2_CTRL_CLASS_CODEC 0x00990000 /* Stateful codec controls */ +#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ #define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ #define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator controls */ #define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */ @@ -65,7 +65,6 @@ #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ #define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */ -#define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000 /* Stateless codecs controls */ /* User-class control IDs */ @@ -193,32 +192,15 @@ enum v4l2_colorfx { * We reserve 16 controls for this driver. */ #define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0) -/* - * The base for the atmel isc driver controls. - * We reserve 32 controls for this driver. - */ -#define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0) - -/* - * The base for the CODA driver controls. - * We reserve 16 controls for this driver. - */ -#define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0) -/* - * The base for MIPI CCS driver controls. - * We reserve 128 controls for this driver. - */ -#define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0) - /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls * and the 'MPEG' part of the define is historical */ -#define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900) -#define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1) +#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) +#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) /* MPEG streams, specific to multiplexed streams */ -#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE+0) +#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) enum v4l2_mpeg_stream_type { V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */ V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */ @@ -227,26 +209,26 @@ enum v4l2_mpeg_stream_type { V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */ V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */ }; -#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_CODEC_BASE+1) -#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_CODEC_BASE+2) -#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_CODEC_BASE+3) -#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_CODEC_BASE+4) -#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_CODEC_BASE+5) -#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_CODEC_BASE+6) -#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_CODEC_BASE+7) +#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) +#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) +#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) +#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) +#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) +#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) +#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) enum v4l2_mpeg_stream_vbi_fmt { V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */ V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */ }; /* MPEG audio controls specific to multiplexed streams */ -#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_CODEC_BASE+100) +#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) enum v4l2_mpeg_audio_sampling_freq { V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, }; -#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_CODEC_BASE+101) +#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) enum v4l2_mpeg_audio_encoding { V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, @@ -254,7 +236,7 @@ enum v4l2_mpeg_audio_encoding { V4L2_MPEG_AUDIO_ENCODING_AAC = 3, V4L2_MPEG_AUDIO_ENCODING_AC3 = 4, }; -#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_CODEC_BASE+102) +#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) enum v4l2_mpeg_audio_l1_bitrate { V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, @@ -271,7 +253,7 @@ enum v4l2_mpeg_audio_l1_bitrate { V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, }; -#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_CODEC_BASE+103) +#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103) enum v4l2_mpeg_audio_l2_bitrate { V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, @@ -288,7 +270,7 @@ enum v4l2_mpeg_audio_l2_bitrate { V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, }; -#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_CODEC_BASE+104) +#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) enum v4l2_mpeg_audio_l3_bitrate { V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, @@ -305,34 +287,34 @@ enum v4l2_mpeg_audio_l3_bitrate { V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, }; -#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_CODEC_BASE+105) +#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) enum v4l2_mpeg_audio_mode { V4L2_MPEG_AUDIO_MODE_STEREO = 0, V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, V4L2_MPEG_AUDIO_MODE_DUAL = 2, V4L2_MPEG_AUDIO_MODE_MONO = 3, }; -#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_CODEC_BASE+106) +#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) enum v4l2_mpeg_audio_mode_extension { V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, }; -#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_CODEC_BASE+107) +#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) enum v4l2_mpeg_audio_emphasis { V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, }; -#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_CODEC_BASE+108) +#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) enum v4l2_mpeg_audio_crc { V4L2_MPEG_AUDIO_CRC_NONE = 0, V4L2_MPEG_AUDIO_CRC_CRC16 = 1, }; -#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_CODEC_BASE+109) -#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_CODEC_BASE+110) -#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_CODEC_BASE+111) +#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109) +#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110) +#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111) enum v4l2_mpeg_audio_ac3_bitrate { V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0, V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1, @@ -354,7 +336,7 @@ enum v4l2_mpeg_audio_ac3_bitrate { V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17, V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18, }; -#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_CODEC_BASE+112) +#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112) enum v4l2_mpeg_audio_dec_playback { V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0, V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1, @@ -363,52 +345,51 @@ enum v4l2_mpeg_audio_dec_playback { V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4, V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5, }; -#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_CODEC_BASE+113) +#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113) /* MPEG video controls specific to multiplexed streams */ -#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_CODEC_BASE+200) +#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) enum v4l2_mpeg_video_encoding { V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2, }; -#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_CODEC_BASE+201) +#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) enum v4l2_mpeg_video_aspect { V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, }; -#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_CODEC_BASE+202) -#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_CODEC_BASE+203) -#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_CODEC_BASE+204) -#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_CODEC_BASE+205) -#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_CODEC_BASE+206) +#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) +#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) +#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) +#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) +#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) enum v4l2_mpeg_video_bitrate_mode { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, - V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2, -}; -#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_CODEC_BASE+207) -#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_CODEC_BASE+208) -#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_CODEC_BASE+209) -#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_CODEC_BASE+210) -#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_CODEC_BASE+211) -#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_CODEC_BASE+212) -#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_CODEC_BASE+213) -#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_CODEC_BASE+214) -#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_CODEC_BASE+215) -#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_CODEC_BASE+216) +}; +#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) +#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) +#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) +#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) +#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) +#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212) +#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213) +#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214) +#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215) +#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216) enum v4l2_mpeg_video_header_mode { V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0, V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1, }; -#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_CODEC_BASE+217) -#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_CODEC_BASE+218) -#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_CODEC_BASE+219) -#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_CODEC_BASE+220) -#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_CODEC_BASE+221) +#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217) +#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221) enum v4l2_mpeg_video_multi_slice_mode { V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0, V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1, @@ -419,25 +400,24 @@ enum v4l2_mpeg_video_multi_slice_mode { V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2, #endif }; -#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_CODEC_BASE+222) -#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_CODEC_BASE+223) -#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_CODEC_BASE+224) -#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_CODEC_BASE+225) -#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_CODEC_BASE+226) -#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_CODEC_BASE+227) -#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE+228) -#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE+229) -#define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE+230) +#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) +#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) +#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) +#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) +#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) +#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) /* CIDs for the MPEG-2 Part 2 (H.262) codec */ -#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270) +#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE+270) enum v4l2_mpeg_video_mpeg2_level { V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0, V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1, V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2, V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3, }; -#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_CODEC_BASE+271) +#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_BASE+271) enum v4l2_mpeg_video_mpeg2_profile { V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0, V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1, @@ -448,28 +428,28 @@ enum v4l2_mpeg_video_mpeg2_profile { }; /* CIDs for the FWHT codec as used by the vicodec driver. */ -#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_CODEC_BASE + 290) -#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_CODEC_BASE + 291) - -#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_CODEC_BASE+300) -#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_CODEC_BASE+301) -#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_CODEC_BASE+302) -#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_CODEC_BASE+303) -#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_CODEC_BASE+304) -#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_CODEC_BASE+350) -#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_CODEC_BASE+351) -#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_CODEC_BASE+352) -#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_CODEC_BASE+353) -#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_CODEC_BASE+354) -#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_CODEC_BASE+355) -#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_CODEC_BASE+356) -#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_CODEC_BASE+357) +#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) +#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303) +#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304) +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350) +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351) +#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352) +#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353) +#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354) +#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355) +#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356) +#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357) enum v4l2_mpeg_video_h264_entropy_mode { V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0, V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1, }; -#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_CODEC_BASE+358) -#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_CODEC_BASE+359) +#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358) +#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359) enum v4l2_mpeg_video_h264_level { V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0, V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1, @@ -487,20 +467,16 @@ enum v4l2_mpeg_video_h264_level { V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13, V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14, V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15, - V4L2_MPEG_VIDEO_H264_LEVEL_5_2 = 16, - V4L2_MPEG_VIDEO_H264_LEVEL_6_0 = 17, - V4L2_MPEG_VIDEO_H264_LEVEL_6_1 = 18, - V4L2_MPEG_VIDEO_H264_LEVEL_6_2 = 19, -}; -#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_CODEC_BASE+360) -#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_CODEC_BASE+361) -#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE+362) +}; +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362) enum v4l2_mpeg_video_h264_loop_filter_mode { V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0, V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1, V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, }; -#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_CODEC_BASE+363) +#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363) enum v4l2_mpeg_video_h264_profile { V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0, V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1, @@ -519,12 +495,11 @@ enum v4l2_mpeg_video_h264_profile { V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14, V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15, V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16, - V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH = 17, }; -#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_CODEC_BASE+364) -#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_CODEC_BASE+365) -#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_CODEC_BASE+366) -#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_CODEC_BASE+367) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367) enum v4l2_mpeg_video_h264_vui_sar_idc { V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0, V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1, @@ -545,9 +520,9 @@ enum v4l2_mpeg_video_h264_vui_sar_idc { V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, }; -#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_CODEC_BASE+368) -#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_CODEC_BASE+369) -#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_CODEC_BASE+370) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370) enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0, V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1, @@ -556,8 +531,8 @@ enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4, V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5, }; -#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_CODEC_BASE+371) -#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_CODEC_BASE+372) +#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372) enum v4l2_mpeg_video_h264_fmo_map_type { V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0, V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1, @@ -567,45 +542,36 @@ enum v4l2_mpeg_video_h264_fmo_map_type { V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5, V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6, }; -#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_CODEC_BASE+373) -#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_CODEC_BASE+374) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374) enum v4l2_mpeg_video_h264_fmo_change_dir { V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0, V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1, }; -#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_CODEC_BASE+375) -#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_CODEC_BASE+376) -#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_CODEC_BASE+377) -#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_CODEC_BASE+378) -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_CODEC_BASE+379) -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_CODEC_BASE+380) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376) +#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377) +#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380) enum v4l2_mpeg_video_h264_hierarchical_coding_type { V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0, V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1, }; -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_CODEC_BASE+381) -#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_CODEC_BASE+382) -#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_CODEC_BASE+383) -#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_CODEC_BASE+384) -#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+385) -#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+386) -#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+387) -#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+388) -#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+389) -#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+390) -#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE+391) -#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE+392) -#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE+393) -#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE+394) -#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE+395) -#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE+396) -#define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE+397) -#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_CODEC_BASE+400) -#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_CODEC_BASE+401) -#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_CODEC_BASE+402) -#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_CODEC_BASE+403) -#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_CODEC_BASE+404) -#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_CODEC_BASE+405) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) +#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) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404) +#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405) enum v4l2_mpeg_video_mpeg4_level { V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0, V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1, @@ -616,7 +582,7 @@ enum v4l2_mpeg_video_mpeg4_level { V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6, V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7, }; -#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_CODEC_BASE+406) +#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406) enum v4l2_mpeg_video_mpeg4_profile { V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0, V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1, @@ -624,40 +590,40 @@ enum v4l2_mpeg_video_mpeg4_profile { V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3, V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4, }; -#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_CODEC_BASE+407) +#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407) /* Control IDs for VP8 streams * Although VP8 is not part of MPEG we add these controls to the MPEG class * as that class is already handling other video compression standards */ -#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_CODEC_BASE+500) +#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_MPEG_BASE+500) enum v4l2_vp8_num_partitions { V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION = 0, V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS = 1, V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS = 2, V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS = 3, }; -#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_CODEC_BASE+501) -#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_CODEC_BASE+502) +#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_MPEG_BASE+501) +#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_MPEG_BASE+502) enum v4l2_vp8_num_ref_frames { V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME = 0, V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME = 1, V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME = 2, }; -#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_CODEC_BASE+503) -#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_CODEC_BASE+504) -#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_CODEC_BASE+505) -#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_CODEC_BASE+506) +#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_MPEG_BASE+503) +#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_MPEG_BASE+504) +#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_MPEG_BASE+505) +#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_MPEG_BASE+506) enum v4l2_vp8_golden_frame_sel { V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0, V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1, }; -#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_CODEC_BASE+507) -#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_CODEC_BASE+508) -#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_CODEC_BASE+509) -#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_CODEC_BASE+510) +#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507) +#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) +#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) +#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) -#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_CODEC_BASE+511) +#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511) enum v4l2_mpeg_video_vp8_profile { V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0, V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1, @@ -666,59 +632,42 @@ enum v4l2_mpeg_video_vp8_profile { }; /* Deprecated alias for compatibility reasons. */ #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE -#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_CODEC_BASE+512) +#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512) enum v4l2_mpeg_video_vp9_profile { V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0, V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1, V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2, V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3, }; -#define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_CODEC_BASE+513) -enum v4l2_mpeg_video_vp9_level { - V4L2_MPEG_VIDEO_VP9_LEVEL_1_0 = 0, - V4L2_MPEG_VIDEO_VP9_LEVEL_1_1 = 1, - V4L2_MPEG_VIDEO_VP9_LEVEL_2_0 = 2, - V4L2_MPEG_VIDEO_VP9_LEVEL_2_1 = 3, - V4L2_MPEG_VIDEO_VP9_LEVEL_3_0 = 4, - V4L2_MPEG_VIDEO_VP9_LEVEL_3_1 = 5, - V4L2_MPEG_VIDEO_VP9_LEVEL_4_0 = 6, - V4L2_MPEG_VIDEO_VP9_LEVEL_4_1 = 7, - V4L2_MPEG_VIDEO_VP9_LEVEL_5_0 = 8, - V4L2_MPEG_VIDEO_VP9_LEVEL_5_1 = 9, - V4L2_MPEG_VIDEO_VP9_LEVEL_5_2 = 10, - V4L2_MPEG_VIDEO_VP9_LEVEL_6_0 = 11, - V4L2_MPEG_VIDEO_VP9_LEVEL_6_1 = 12, - V4L2_MPEG_VIDEO_VP9_LEVEL_6_2 = 13, -}; /* CIDs for HEVC encoding. */ -#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_CODEC_BASE + 600) -#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_CODEC_BASE + 601) -#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_CODEC_BASE + 602) -#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_CODEC_BASE + 603) -#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_CODEC_BASE + 604) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_CODEC_BASE + 605) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_CODEC_BASE + 606) +#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600) +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601) +#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602) +#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603) +#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606) enum v4l2_mpeg_video_hevc_hier_coding_type { V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0, V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1, }; -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_CODEC_BASE + 607) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_CODEC_BASE + 608) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_CODEC_BASE + 609) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_CODEC_BASE + 610) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_CODEC_BASE + 611) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_CODEC_BASE + 612) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_CODEC_BASE + 613) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_CODEC_BASE + 614) -#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_CODEC_BASE + 615) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614) +#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615) enum v4l2_mpeg_video_hevc_profile { V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0, V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1, V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2, }; -#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_CODEC_BASE + 616) +#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616) enum v4l2_mpeg_video_hevc_level { V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0, V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1, @@ -734,78 +683,64 @@ enum v4l2_mpeg_video_hevc_level { V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11, V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12, }; -#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_CODEC_BASE + 617) -#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_CODEC_BASE + 618) +#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617) +#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618) enum v4l2_mpeg_video_hevc_tier { V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0, V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1, }; -#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_CODEC_BASE + 619) -#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE + 620) +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619) +#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620) enum v4l2_cid_mpeg_video_hevc_loop_filter_mode { V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0, V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1, V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, }; -#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 621) -#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 622) -#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_CODEC_BASE + 623) +#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621) +#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622) +#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623) enum v4l2_cid_mpeg_video_hevc_refresh_type { V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0, V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1, V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2, }; -#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 624) -#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_CODEC_BASE + 625) -#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_CODEC_BASE + 626) -#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_CODEC_BASE + 627) -#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_CODEC_BASE + 628) -#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_CODEC_BASE + 629) -#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_CODEC_BASE + 630) -#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_CODEC_BASE + 631) -#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_CODEC_BASE + 632) -#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_CODEC_BASE + 633) -#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_CODEC_BASE + 634) -#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_CODEC_BASE + 635) +#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624) +#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625) +#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626) +#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627) +#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628) +#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629) +#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630) +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631) +#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632) +#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633) +#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634) +#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635) enum v4l2_cid_mpeg_video_hevc_size_of_length_field { V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0, V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1, V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2, V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3, }; -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE + 636) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE + 637) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE + 638) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE + 639) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE + 640) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE + 641) -#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE + 642) -#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_CODEC_BASE + 643) -#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_CODEC_BASE + 644) -#define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_CODEC_BASE + 645) -#define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_BASE + 646) -enum v4l2_mpeg_video_frame_skip_mode { - V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, - V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, - V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, -}; - -#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 647) -#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 648) -#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 649) -#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650) -#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651) -#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641) +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642) +#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643) +#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644) /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ -#define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000) -#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0) +#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, }; -#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+1) -#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+2) +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1) +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2) enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, @@ -813,18 +748,18 @@ enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, }; -#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+3) +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3) enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, }; -#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+4) +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4) enum v4l2_mpeg_cx2341x_video_temporal_filter_mode { V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1, }; -#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+5) -#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+6) +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5) +#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6) enum v4l2_mpeg_cx2341x_video_median_filter_type { V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, @@ -832,38 +767,38 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type { V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4, }; -#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+7) -#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+8) -#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+9) -#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+10) -#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_CODEC_CX2341X_BASE+11) +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7) +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8) +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9) +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) +#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11) /* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */ -#define V4L2_CID_CODEC_MFC51_BASE (V4L2_CTRL_CLASS_CODEC | 0x1100) +#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100) -#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_CODEC_MFC51_BASE+0) -#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_MFC51_BASE+1) -#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_MFC51_BASE+2) +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0) +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1) +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2) enum v4l2_mpeg_mfc51_video_frame_skip_mode { V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, }; -#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_CODEC_MFC51_BASE+3) +#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3) enum v4l2_mpeg_mfc51_video_force_frame_type { V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0, V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1, V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2, }; -#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_CODEC_MFC51_BASE+4) -#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_CODEC_MFC51_BASE+5) -#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_CODEC_MFC51_BASE+6) -#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_CODEC_MFC51_BASE+7) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_CODEC_MFC51_BASE+50) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_CODEC_MFC51_BASE+51) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_CODEC_MFC51_BASE+52) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_CODEC_MFC51_BASE+53) -#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_CODEC_MFC51_BASE+54) +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4) +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) /* Camera class control IDs */ @@ -977,13 +912,6 @@ enum v4l2_auto_focus_range { #define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32) #define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33) -#define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE+34) -#define V4L2_CAMERA_ORIENTATION_FRONT 0 -#define V4L2_CAMERA_ORIENTATION_BACK 1 -#define V4L2_CAMERA_ORIENTATION_EXTERNAL 2 - -#define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35) - /* FM Modulator class control IDs */ #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) @@ -1200,470 +1128,4 @@ enum v4l2_detect_md_mode { #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3) #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4) - -/* Stateless CODECs controls */ -#define V4L2_CID_CODEC_STATELESS_BASE (V4L2_CTRL_CLASS_CODEC_STATELESS | 0x900) -#define V4L2_CID_CODEC_STATELESS_CLASS (V4L2_CTRL_CLASS_CODEC_STATELESS | 1) - -#define V4L2_CID_STATELESS_H264_DECODE_MODE (V4L2_CID_CODEC_STATELESS_BASE + 0) -/** - * enum v4l2_stateless_h264_decode_mode - Decoding mode - * - * @V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED: indicates that decoding - * is performed one slice at a time. In this mode, - * V4L2_CID_STATELESS_H264_SLICE_PARAMS must contain the parsed slice - * parameters and the OUTPUT buffer must contain a single slice. - * V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF feature is used - * in order to support multislice frames. - * @V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED: indicates that - * decoding is performed per frame. The OUTPUT buffer must contain - * all slices and also both fields. This mode is typically supported - * by device drivers that are able to parse the slice(s) header(s) - * in hardware. When this mode is selected, - * V4L2_CID_STATELESS_H264_SLICE_PARAMS is not used. - */ -enum v4l2_stateless_h264_decode_mode { - V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED, - V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED, -}; - -#define V4L2_CID_STATELESS_H264_START_CODE (V4L2_CID_CODEC_STATELESS_BASE + 1) -/** - * enum v4l2_stateless_h264_start_code - Start code - * - * @V4L2_STATELESS_H264_START_CODE_NONE: slices are passed - * to the driver without any start code. - * @V4L2_STATELESS_H264_START_CODE_ANNEX_B: slices are passed - * to the driver with an Annex B start code prefix - * (legal start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001). - * This mode is typically supported by device drivers that parse - * the start code in hardware. - */ -enum v4l2_stateless_h264_start_code { - V4L2_STATELESS_H264_START_CODE_NONE, - V4L2_STATELESS_H264_START_CODE_ANNEX_B, -}; - -#define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01 -#define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02 -#define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04 -#define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08 -#define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10 -#define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20 - -#define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01 -#define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02 -#define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04 -#define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08 -#define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10 -#define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20 -#define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40 - -#define V4L2_H264_SPS_HAS_CHROMA_FORMAT(sps) \ - ((sps)->profile_idc == 100 || (sps)->profile_idc == 110 || \ - (sps)->profile_idc == 122 || (sps)->profile_idc == 244 || \ - (sps)->profile_idc == 44 || (sps)->profile_idc == 83 || \ - (sps)->profile_idc == 86 || (sps)->profile_idc == 118 || \ - (sps)->profile_idc == 128 || (sps)->profile_idc == 138 || \ - (sps)->profile_idc == 139 || (sps)->profile_idc == 134 || \ - (sps)->profile_idc == 135) - -#define V4L2_CID_STATELESS_H264_SPS (V4L2_CID_CODEC_STATELESS_BASE + 2) -/** - * struct v4l2_ctrl_h264_sps - H264 sequence parameter set - * - * All the members on this sequence parameter set structure match the - * sequence parameter set syntax as specified by the H264 specification. - * - * @profile_idc: see H264 specification. - * @constraint_set_flags: see H264 specification. - * @level_idc: see H264 specification. - * @seq_parameter_set_id: see H264 specification. - * @chroma_format_idc: see H264 specification. - * @bit_depth_luma_minus8: see H264 specification. - * @bit_depth_chroma_minus8: see H264 specification. - * @log2_max_frame_num_minus4: see H264 specification. - * @pic_order_cnt_type: see H264 specification. - * @log2_max_pic_order_cnt_lsb_minus4: see H264 specification. - * @max_num_ref_frames: see H264 specification. - * @num_ref_frames_in_pic_order_cnt_cycle: see H264 specification. - * @offset_for_ref_frame: see H264 specification. - * @offset_for_non_ref_pic: see H264 specification. - * @offset_for_top_to_bottom_field: see H264 specification. - * @pic_width_in_mbs_minus1: see H264 specification. - * @pic_height_in_map_units_minus1: see H264 specification. - * @flags: see V4L2_H264_SPS_FLAG_{}. - */ -struct v4l2_ctrl_h264_sps { - __u8 profile_idc; - __u8 constraint_set_flags; - __u8 level_idc; - __u8 seq_parameter_set_id; - __u8 chroma_format_idc; - __u8 bit_depth_luma_minus8; - __u8 bit_depth_chroma_minus8; - __u8 log2_max_frame_num_minus4; - __u8 pic_order_cnt_type; - __u8 log2_max_pic_order_cnt_lsb_minus4; - __u8 max_num_ref_frames; - __u8 num_ref_frames_in_pic_order_cnt_cycle; - __s32 offset_for_ref_frame[255]; - __s32 offset_for_non_ref_pic; - __s32 offset_for_top_to_bottom_field; - __u16 pic_width_in_mbs_minus1; - __u16 pic_height_in_map_units_minus1; - __u32 flags; -}; - -#define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001 -#define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002 -#define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004 -#define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008 -#define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010 -#define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020 -#define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040 -#define V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT 0x0080 - -#define V4L2_CID_STATELESS_H264_PPS (V4L2_CID_CODEC_STATELESS_BASE + 3) -/** - * struct v4l2_ctrl_h264_pps - H264 picture parameter set - * - * Except where noted, all the members on this picture parameter set - * structure match the sequence parameter set syntax as specified - * by the H264 specification. - * - * In particular, V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT flag - * has a specific meaning. This flag should be set if a non-flat - * scaling matrix applies to the picture. In this case, applications - * are expected to use V4L2_CID_STATELESS_H264_SCALING_MATRIX, - * to pass the values of the non-flat matrices. - * - * @pic_parameter_set_id: see H264 specification. - * @seq_parameter_set_id: see H264 specification. - * @num_slice_groups_minus1: see H264 specification. - * @num_ref_idx_l0_default_active_minus1: see H264 specification. - * @num_ref_idx_l1_default_active_minus1: see H264 specification. - * @weighted_bipred_idc: see H264 specification. - * @pic_init_qp_minus26: see H264 specification. - * @pic_init_qs_minus26: see H264 specification. - * @chroma_qp_index_offset: see H264 specification. - * @second_chroma_qp_index_offset: see H264 specification. - * @flags: see V4L2_H264_PPS_FLAG_{}. - */ -struct v4l2_ctrl_h264_pps { - __u8 pic_parameter_set_id; - __u8 seq_parameter_set_id; - __u8 num_slice_groups_minus1; - __u8 num_ref_idx_l0_default_active_minus1; - __u8 num_ref_idx_l1_default_active_minus1; - __u8 weighted_bipred_idc; - __s8 pic_init_qp_minus26; - __s8 pic_init_qs_minus26; - __s8 chroma_qp_index_offset; - __s8 second_chroma_qp_index_offset; - __u16 flags; -}; - -#define V4L2_CID_STATELESS_H264_SCALING_MATRIX (V4L2_CID_CODEC_STATELESS_BASE + 4) -/** - * struct v4l2_ctrl_h264_scaling_matrix - H264 scaling matrices - * - * @scaling_list_4x4: scaling matrix after applying the inverse - * scanning process. Expected list order is Intra Y, Intra Cb, - * Intra Cr, Inter Y, Inter Cb, Inter Cr. The values on each - * scaling list are expected in raster scan order. - * @scaling_list_8x8: scaling matrix after applying the inverse - * scanning process. Expected list order is Intra Y, Inter Y, - * Intra Cb, Inter Cb, Intra Cr, Inter Cr. The values on each - * scaling list are expected in raster scan order. - * - * Note that the list order is different for the 4x4 and 8x8 - * matrices as per the H264 specification, see table 7-2 "Assignment - * of mnemonic names to scaling list indices and specification of - * fall-back rule". - */ -struct v4l2_ctrl_h264_scaling_matrix { - __u8 scaling_list_4x4[6][16]; - __u8 scaling_list_8x8[6][64]; -}; - -struct v4l2_h264_weight_factors { - __s16 luma_weight[32]; - __s16 luma_offset[32]; - __s16 chroma_weight[32][2]; - __s16 chroma_offset[32][2]; -}; - -#define V4L2_H264_CTRL_PRED_WEIGHTS_REQUIRED(pps, slice) \ - ((((pps)->flags & V4L2_H264_PPS_FLAG_WEIGHTED_PRED) && \ - ((slice)->slice_type == V4L2_H264_SLICE_TYPE_P || \ - (slice)->slice_type == V4L2_H264_SLICE_TYPE_SP)) || \ - ((pps)->weighted_bipred_idc == 1 && \ - (slice)->slice_type == V4L2_H264_SLICE_TYPE_B)) - -#define V4L2_CID_STATELESS_H264_PRED_WEIGHTS (V4L2_CID_CODEC_STATELESS_BASE + 5) -/** - * struct v4l2_ctrl_h264_pred_weights - Prediction weight table - * - * Prediction weight table, which matches the syntax specified - * by the H264 specification. - * - * @luma_log2_weight_denom: see H264 specification. - * @chroma_log2_weight_denom: see H264 specification. - * @weight_factors: luma and chroma weight factors. - */ -struct v4l2_ctrl_h264_pred_weights { - __u16 luma_log2_weight_denom; - __u16 chroma_log2_weight_denom; - struct v4l2_h264_weight_factors weight_factors[2]; -}; - -#define V4L2_H264_SLICE_TYPE_P 0 -#define V4L2_H264_SLICE_TYPE_B 1 -#define V4L2_H264_SLICE_TYPE_I 2 -#define V4L2_H264_SLICE_TYPE_SP 3 -#define V4L2_H264_SLICE_TYPE_SI 4 - -#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01 -#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02 - -#define V4L2_H264_TOP_FIELD_REF 0x1 -#define V4L2_H264_BOTTOM_FIELD_REF 0x2 -#define V4L2_H264_FRAME_REF 0x3 - -/** - * struct v4l2_h264_reference - H264 picture reference - * - * @fields: indicates how the picture is referenced. - * Valid values are V4L2_H264_{}_REF. - * @index: index into v4l2_ctrl_h264_decode_params.dpb[]. - */ -struct v4l2_h264_reference { - __u8 fields; - __u8 index; -}; - -/* - * Maximum DPB size, as specified by section 'A.3.1 Level limits - * common to the Baseline, Main, and Extended profiles'. - */ -#define V4L2_H264_NUM_DPB_ENTRIES 16 -#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES) - -#define V4L2_CID_STATELESS_H264_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 6) -/** - * struct v4l2_ctrl_h264_slice_params - H264 slice parameters - * - * This structure holds the H264 syntax elements that are specified - * as non-invariant for the slices in a given frame. - * - * Slice invariant syntax elements are contained in struct - * v4l2_ctrl_h264_decode_params. This is done to reduce the API surface - * on frame-based decoders, where slice header parsing is done by the - * hardware. - * - * Slice invariant syntax elements are specified in specification section - * "7.4.3 Slice header semantics". - * - * Except where noted, the members on this struct match the slice header syntax. - * - * @header_bit_size: offset in bits to slice_data() from the beginning of this slice. - * @first_mb_in_slice: see H264 specification. - * @slice_type: see H264 specification. - * @colour_plane_id: see H264 specification. - * @redundant_pic_cnt: see H264 specification. - * @cabac_init_idc: see H264 specification. - * @slice_qp_delta: see H264 specification. - * @slice_qs_delta: see H264 specification. - * @disable_deblocking_filter_idc: see H264 specification. - * @slice_alpha_c0_offset_div2: see H264 specification. - * @slice_beta_offset_div2: see H264 specification. - * @num_ref_idx_l0_active_minus1: see H264 specification. - * @num_ref_idx_l1_active_minus1: see H264 specification. - * @reserved: padding field. Should be zeroed by applications. - * @ref_pic_list0: reference picture list 0 after applying the per-slice modifications. - * @ref_pic_list1: reference picture list 1 after applying the per-slice modifications. - * @flags: see V4L2_H264_SLICE_FLAG_{}. - */ -struct v4l2_ctrl_h264_slice_params { - __u32 header_bit_size; - __u32 first_mb_in_slice; - __u8 slice_type; - __u8 colour_plane_id; - __u8 redundant_pic_cnt; - __u8 cabac_init_idc; - __s8 slice_qp_delta; - __s8 slice_qs_delta; - __u8 disable_deblocking_filter_idc; - __s8 slice_alpha_c0_offset_div2; - __s8 slice_beta_offset_div2; - __u8 num_ref_idx_l0_active_minus1; - __u8 num_ref_idx_l1_active_minus1; - - __u8 reserved; - - struct v4l2_h264_reference ref_pic_list0[V4L2_H264_REF_LIST_LEN]; - struct v4l2_h264_reference ref_pic_list1[V4L2_H264_REF_LIST_LEN]; - - __u32 flags; -}; - -#define V4L2_H264_DPB_ENTRY_FLAG_VALID 0x01 -#define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x02 -#define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x04 -#define V4L2_H264_DPB_ENTRY_FLAG_FIELD 0x08 - -/** - * struct v4l2_h264_dpb_entry - H264 decoded picture buffer entry - * - * @reference_ts: timestamp of the V4L2 capture buffer to use as reference. - * The timestamp refers to the timestamp field in struct v4l2_buffer. - * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. - * @pic_num: matches PicNum variable assigned during the reference - * picture lists construction process. - * @frame_num: frame identifier which matches frame_num syntax element. - * @fields: indicates how the DPB entry is referenced. Valid values are - * V4L2_H264_{}_REF. - * @reserved: padding field. Should be zeroed by applications. - * @top_field_order_cnt: matches TopFieldOrderCnt picture value. - * @bottom_field_order_cnt: matches BottomFieldOrderCnt picture value. - * Note that picture field is indicated by v4l2_buffer.field. - * @flags: see V4L2_H264_DPB_ENTRY_FLAG_{}. - */ -struct v4l2_h264_dpb_entry { - __u64 reference_ts; - __u32 pic_num; - __u16 frame_num; - __u8 fields; - __u8 reserved[5]; - __s32 top_field_order_cnt; - __s32 bottom_field_order_cnt; - __u32 flags; -}; - -#define V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC 0x01 -#define V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC 0x02 -#define V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD 0x04 - -#define V4L2_CID_STATELESS_H264_DECODE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 7) -/** - * struct v4l2_ctrl_h264_decode_params - H264 decoding parameters - * - * @dpb: decoded picture buffer. - * @nal_ref_idc: slice header syntax element. - * @frame_num: slice header syntax element. - * @top_field_order_cnt: matches TopFieldOrderCnt picture value. - * @bottom_field_order_cnt: matches BottomFieldOrderCnt picture value. - * Note that picture field is indicated by v4l2_buffer.field. - * @idr_pic_id: slice header syntax element. - * @pic_order_cnt_lsb: slice header syntax element. - * @delta_pic_order_cnt_bottom: slice header syntax element. - * @delta_pic_order_cnt0: slice header syntax element. - * @delta_pic_order_cnt1: slice header syntax element. - * @dec_ref_pic_marking_bit_size: size in bits of dec_ref_pic_marking() - * syntax element. - * @pic_order_cnt_bit_size: size in bits of pic order count syntax. - * @slice_group_change_cycle: slice header syntax element. - * @reserved: padding field. Should be zeroed by applications. - * @flags: see V4L2_H264_DECODE_PARAM_FLAG_{}. - */ -struct v4l2_ctrl_h264_decode_params { - struct v4l2_h264_dpb_entry dpb[V4L2_H264_NUM_DPB_ENTRIES]; - __u16 nal_ref_idc; - __u16 frame_num; - __s32 top_field_order_cnt; - __s32 bottom_field_order_cnt; - __u16 idr_pic_id; - __u16 pic_order_cnt_lsb; - __s32 delta_pic_order_cnt_bottom; - __s32 delta_pic_order_cnt0; - __s32 delta_pic_order_cnt1; - __u32 dec_ref_pic_marking_bit_size; - __u32 pic_order_cnt_bit_size; - __u32 slice_group_change_cycle; - - __u32 reserved; - __u32 flags; -}; - - -/* Stateless FWHT control, used by the vicodec driver */ - -/* Current FWHT version */ -#define V4L2_FWHT_VERSION 3 - -/* Set if this is an interlaced format */ -#define V4L2_FWHT_FL_IS_INTERLACED BIT(0) -/* Set if this is a bottom-first (NTSC) interlaced format */ -#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1) -/* Set if each 'frame' contains just one field */ -#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2) -/* - * If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this - * 'frame' is the bottom field, else it is the top field. - */ -#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3) -/* Set if the Y' plane is uncompressed */ -#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4) -/* Set if the Cb plane is uncompressed */ -#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5) -/* Set if the Cr plane is uncompressed */ -#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6) -/* Set if the chroma plane is full height, if cleared it is half height */ -#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7) -/* Set if the chroma plane is full width, if cleared it is half width */ -#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8) -/* Set if the alpha plane is uncompressed */ -#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9) -/* Set if this is an I Frame */ -#define V4L2_FWHT_FL_I_FRAME BIT(10) - -/* A 4-values flag - the number of components - 1 */ -#define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16) -#define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16 - -/* A 4-values flag - the pixel encoding type */ -#define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19) -#define V4L2_FWHT_FL_PIXENC_OFFSET 19 -#define V4L2_FWHT_FL_PIXENC_YUV (1 << V4L2_FWHT_FL_PIXENC_OFFSET) -#define V4L2_FWHT_FL_PIXENC_RGB (2 << V4L2_FWHT_FL_PIXENC_OFFSET) -#define V4L2_FWHT_FL_PIXENC_HSV (3 << V4L2_FWHT_FL_PIXENC_OFFSET) - -#define V4L2_CID_STATELESS_FWHT_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 100) -/** - * struct v4l2_ctrl_fwht_params - FWHT parameters - * - * @backward_ref_ts: timestamp of the V4L2 capture buffer to use as reference. - * The timestamp refers to the timestamp field in struct v4l2_buffer. - * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. - * @version: must be V4L2_FWHT_VERSION. - * @width: width of frame. - * @height: height of frame. - * @flags: FWHT flags (see V4L2_FWHT_FL_*). - * @colorspace: the colorspace (enum v4l2_colorspace). - * @xfer_func: the transfer function (enum v4l2_xfer_func). - * @ycbcr_enc: the Y'CbCr encoding (enum v4l2_ycbcr_encoding). - * @quantization: the quantization (enum v4l2_quantization). - */ -struct v4l2_ctrl_fwht_params { - __u64 backward_ref_ts; - __u32 version; - __u32 width; - __u32 height; - __u32 flags; - __u32 colorspace; - __u32 xfer_func; - __u32 ycbcr_enc; - __u32 quantization; -}; - -/* MPEG-compression definitions kept for backwards compatibility */ -#ifndef __KERNEL__ -#define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC -#define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS -#define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE -#define V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_CODEC_CX2341X_BASE -#define V4L2_CID_MPEG_MFC51_BASE V4L2_CID_CODEC_MFC51_BASE -#endif - #endif diff --git a/original/uapi/linux/v4l2-mediabus.h b/original/uapi/linux/v4l2-mediabus.h index 903e67b..123a231 100644 --- a/original/uapi/linux/v4l2-mediabus.h +++ b/original/uapi/linux/v4l2-mediabus.h @@ -16,8 +16,6 @@ #include <linux/types.h> #include <linux/videodev2.h> -#define V4L2_MBUS_FRAMEFMT_SET_CSC 0x0001 - /** * struct v4l2_mbus_framefmt - frame format on the media bus * @width: image width @@ -26,11 +24,8 @@ * @field: used interlacing type (from enum v4l2_field) * @colorspace: colorspace of the data (from enum v4l2_colorspace) * @ycbcr_enc: YCbCr encoding of the data (from enum v4l2_ycbcr_encoding) - * @hsv_enc: HSV encoding of the data (from enum v4l2_hsv_encoding) * @quantization: quantization of the data (from enum v4l2_quantization) * @xfer_func: transfer function of the data (from enum v4l2_xfer_func) - * @flags: flags (V4L2_MBUS_FRAMEFMT_*) - * @reserved: reserved bytes that can be later used */ struct v4l2_mbus_framefmt { __u32 width; @@ -38,16 +33,10 @@ struct v4l2_mbus_framefmt { __u32 code; __u32 field; __u32 colorspace; - union { - /* enum v4l2_ycbcr_encoding */ - __u16 ycbcr_enc; - /* enum v4l2_hsv_encoding */ - __u16 hsv_enc; - }; + __u16 ycbcr_enc; __u16 quantization; __u16 xfer_func; - __u16 flags; - __u16 reserved[10]; + __u16 reserved[11]; }; #ifndef __KERNEL__ diff --git a/original/uapi/linux/v4l2-subdev.h b/original/uapi/linux/v4l2-subdev.h index a38454d..03970ce 100644 --- a/original/uapi/linux/v4l2-subdev.h +++ b/original/uapi/linux/v4l2-subdev.h @@ -65,27 +65,19 @@ struct v4l2_subdev_crop { __u32 reserved[8]; }; -#define V4L2_SUBDEV_MBUS_CODE_CSC_COLORSPACE 0x00000001 -#define V4L2_SUBDEV_MBUS_CODE_CSC_XFER_FUNC 0x00000002 -#define V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC 0x00000004 -#define V4L2_SUBDEV_MBUS_CODE_CSC_HSV_ENC V4L2_SUBDEV_MBUS_CODE_CSC_YCBCR_ENC -#define V4L2_SUBDEV_MBUS_CODE_CSC_QUANTIZATION 0x00000008 - /** * struct v4l2_subdev_mbus_code_enum - Media bus format enumeration * @pad: pad number, as reported by the media API * @index: format index during enumeration * @code: format code (MEDIA_BUS_FMT_ definitions) * @which: format type (from enum v4l2_subdev_format_whence) - * @flags: flags set by the driver, (V4L2_SUBDEV_MBUS_CODE_*) */ struct v4l2_subdev_mbus_code_enum { __u32 pad; __u32 index; __u32 code; __u32 which; - __u32 flags; - __u32 reserved[7]; + __u32 reserved[8]; }; /** @@ -163,25 +155,9 @@ struct v4l2_subdev_selection { __u32 reserved[8]; }; -/** - * struct v4l2_subdev_capability - subdev capabilities - * @version: the driver versioning number - * @capabilities: the subdev capabilities, see V4L2_SUBDEV_CAP_* - * @reserved: for future use, set to zero for now - */ -struct v4l2_subdev_capability { - __u32 version; - __u32 capabilities; - __u32 reserved[14]; -}; - -/* The v4l2 sub-device video device node is registered in read-only mode. */ -#define V4L2_SUBDEV_CAP_RO_SUBDEV 0x00000001 - /* Backwards compatibility define --- to be removed */ #define v4l2_subdev_edid v4l2_edid -#define VIDIOC_SUBDEV_QUERYCAP _IOR('V', 0, struct v4l2_subdev_capability) #define VIDIOC_SUBDEV_G_FMT _IOWR('V', 4, struct v4l2_subdev_format) #define VIDIOC_SUBDEV_S_FMT _IOWR('V', 5, struct v4l2_subdev_format) #define VIDIOC_SUBDEV_G_FRAME_INTERVAL _IOWR('V', 21, struct v4l2_subdev_frame_interval) diff --git a/original/uapi/linux/vbox_vmmdev_types.h b/original/uapi/linux/vbox_vmmdev_types.h index f8a8d6b..c27289f 100644 --- a/original/uapi/linux/vbox_vmmdev_types.h +++ b/original/uapi/linux/vbox_vmmdev_types.h @@ -63,7 +63,6 @@ enum vmmdev_request_type { VMMDEVREQ_SET_GUEST_CAPABILITIES = 56, VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */ VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */ - VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81, VMMDEVREQ_HGCM_CONNECT = 60, VMMDEVREQ_HGCM_DISCONNECT = 61, VMMDEVREQ_HGCM_CALL32 = 62, @@ -93,8 +92,6 @@ enum vmmdev_request_type { VMMDEVREQ_WRITE_COREDUMP = 218, VMMDEVREQ_GUEST_HEARTBEAT = 219, VMMDEVREQ_HEARTBEAT_CONFIGURE = 220, - VMMDEVREQ_NT_BUG_CHECK = 221, - VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222, /* Ensure the enum is a 32 bit data-type */ VMMDEVREQ_SIZEHACK = 0x7fffffff }; diff --git a/original/uapi/linux/vboxguest.h b/original/uapi/linux/vboxguest.h index 15125f6..9cec58a 100644 --- a/original/uapi/linux/vboxguest.h +++ b/original/uapi/linux/vboxguest.h @@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20); /* IOCTL to perform a VMM Device request larger then 1KB. */ -#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3) +#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0) /** VBG_IOCTL_HGCM_CONNECT data structure. */ @@ -198,7 +198,7 @@ struct vbg_ioctl_log { } u; }; -#define VBG_IOCTL_LOG(s) _IO('V', 9) +#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s) /** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */ @@ -257,30 +257,6 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8); _IOWR('V', 12, struct vbg_ioctl_change_filter) -/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */ -struct vbg_ioctl_acquire_guest_caps { - /** The header. */ - struct vbg_ioctl_hdr hdr; - union { - struct { - /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */ - __u32 flags; - /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */ - __u32 or_mask; - /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */ - __u32 not_mask; - } in; - } u; -}; -VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12); - -#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001 -#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001 - -#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \ - _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps) - - /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */ struct vbg_ioctl_set_guest_caps { /** The header. */ diff --git a/original/uapi/linux/vdpa.h b/original/uapi/linux/vdpa.h deleted file mode 100644 index 66a41e4..0000000 --- a/original/uapi/linux/vdpa.h +++ /dev/null @@ -1,40 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * vdpa device management interface - * Copyright (c) 2020 Mellanox Technologies Ltd. All rights reserved. - */ - -#ifndef _UAPI_LINUX_VDPA_H_ -#define _UAPI_LINUX_VDPA_H_ - -#define VDPA_GENL_NAME "vdpa" -#define VDPA_GENL_VERSION 0x1 - -enum vdpa_command { - VDPA_CMD_UNSPEC, - VDPA_CMD_MGMTDEV_NEW, - VDPA_CMD_MGMTDEV_GET, /* can dump */ - VDPA_CMD_DEV_NEW, - VDPA_CMD_DEV_DEL, - VDPA_CMD_DEV_GET, /* can dump */ -}; - -enum vdpa_attr { - VDPA_ATTR_UNSPEC, - - /* bus name (optional) + dev name together make the parent device handle */ - VDPA_ATTR_MGMTDEV_BUS_NAME, /* string */ - VDPA_ATTR_MGMTDEV_DEV_NAME, /* string */ - VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES, /* u64 */ - - VDPA_ATTR_DEV_NAME, /* string */ - VDPA_ATTR_DEV_ID, /* u32 */ - VDPA_ATTR_DEV_VENDOR_ID, /* u32 */ - VDPA_ATTR_DEV_MAX_VQS, /* u32 */ - VDPA_ATTR_DEV_MAX_VQ_SIZE, /* u16 */ - - /* new attributes must be added above here */ - VDPA_ATTR_MAX, -}; - -#endif diff --git a/original/uapi/linux/version.h b/original/uapi/linux/version.h index 535b224..9004c23 100644 --- a/original/uapi/linux/version.h +++ b/original/uapi/linux/version.h @@ -1,5 +1,2 @@ -#define LINUX_VERSION_CODE 330752 -#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) -#define LINUX_VERSION_MAJOR 5 -#define LINUX_VERSION_PATCHLEVEL 12 -#define LINUX_VERSION_SUBLEVEL 0 +#define LINUX_VERSION_CODE 328960 +#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) diff --git a/original/uapi/linux/vfio.h b/original/uapi/linux/vfio.h index 8ce36c1..9e843a1 100644 --- a/original/uapi/linux/vfio.h +++ b/original/uapi/linux/vfio.h @@ -46,12 +46,6 @@ */ #define VFIO_NOIOMMU_IOMMU 8 -/* Supports VFIO_DMA_UNMAP_FLAG_ALL */ -#define VFIO_UNMAP_ALL 9 - -/* Supports the vaddr flag for DMA map and unmap */ -#define VFIO_UPDATE_VADDR 10 - /* * The IOCTL interface is designed for extensibility by embedding the * structure length (argsz) and flags into structures passed between @@ -207,11 +201,8 @@ struct vfio_device_info { #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ #define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ #define VFIO_DEVICE_FLAGS_AP (1 << 5) /* vfio-ap device */ -#define VFIO_DEVICE_FLAGS_FSL_MC (1 << 6) /* vfio-fsl-mc device */ -#define VFIO_DEVICE_FLAGS_CAPS (1 << 7) /* Info supports caps */ __u32 num_regions; /* Max region index + 1 */ __u32 num_irqs; /* Max IRQ index + 1 */ - __u32 cap_offset; /* Offset within info struct of first cap */ }; #define VFIO_DEVICE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 7) @@ -227,15 +218,6 @@ struct vfio_device_info { #define VFIO_DEVICE_API_CCW_STRING "vfio-ccw" #define VFIO_DEVICE_API_AP_STRING "vfio-ap" -/* - * The following capabilities are unique to s390 zPCI devices. Their contents - * are further-defined in vfio_zdev.h - */ -#define VFIO_DEVICE_INFO_CAP_ZPCI_BASE 1 -#define VFIO_DEVICE_INFO_CAP_ZPCI_GROUP 2 -#define VFIO_DEVICE_INFO_CAP_ZPCI_UTIL 3 -#define VFIO_DEVICE_INFO_CAP_ZPCI_PFIP 4 - /** * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, * struct vfio_region_info) @@ -323,7 +305,6 @@ struct vfio_region_info_cap_type { #define VFIO_REGION_TYPE_PCI_VENDOR_MASK (0xffff) #define VFIO_REGION_TYPE_GFX (1) #define VFIO_REGION_TYPE_CCW (2) -#define VFIO_REGION_TYPE_MIGRATION (3) /* sub-types for VFIO_REGION_TYPE_PCI_* */ @@ -397,235 +378,6 @@ struct vfio_region_gfx_edid { /* sub-types for VFIO_REGION_TYPE_CCW */ #define VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD (1) -#define VFIO_REGION_SUBTYPE_CCW_SCHIB (2) -#define VFIO_REGION_SUBTYPE_CCW_CRW (3) - -/* sub-types for VFIO_REGION_TYPE_MIGRATION */ -#define VFIO_REGION_SUBTYPE_MIGRATION (1) - -/* - * The structure vfio_device_migration_info is placed at the 0th offset of - * the VFIO_REGION_SUBTYPE_MIGRATION region to get and set VFIO device related - * migration information. Field accesses from this structure are only supported - * at their native width and alignment. Otherwise, the result is undefined and - * vendor drivers should return an error. - * - * device_state: (read/write) - * - The user application writes to this field to inform the vendor driver - * about the device state to be transitioned to. - * - The vendor driver should take the necessary actions to change the - * device state. After successful transition to a given state, the - * vendor driver should return success on write(device_state, state) - * system call. If the device state transition fails, the vendor driver - * should return an appropriate -errno for the fault condition. - * - On the user application side, if the device state transition fails, - * that is, if write(device_state, state) returns an error, read - * device_state again to determine the current state of the device from - * the vendor driver. - * - The vendor driver should return previous state of the device unless - * the vendor driver has encountered an internal error, in which case - * the vendor driver may report the device_state VFIO_DEVICE_STATE_ERROR. - * - The user application must use the device reset ioctl to recover the - * device from VFIO_DEVICE_STATE_ERROR state. If the device is - * indicated to be in a valid device state by reading device_state, the - * user application may attempt to transition the device to any valid - * state reachable from the current state or terminate itself. - * - * device_state consists of 3 bits: - * - If bit 0 is set, it indicates the _RUNNING state. If bit 0 is clear, - * it indicates the _STOP state. When the device state is changed to - * _STOP, driver should stop the device before write() returns. - * - If bit 1 is set, it indicates the _SAVING state, which means that the - * driver should start gathering device state information that will be - * provided to the VFIO user application to save the device's state. - * - If bit 2 is set, it indicates the _RESUMING state, which means that - * the driver should prepare to resume the device. Data provided through - * the migration region should be used to resume the device. - * Bits 3 - 31 are reserved for future use. To preserve them, the user - * application should perform a read-modify-write operation on this - * field when modifying the specified bits. - * - * +------- _RESUMING - * |+------ _SAVING - * ||+----- _RUNNING - * ||| - * 000b => Device Stopped, not saving or resuming - * 001b => Device running, which is the default state - * 010b => Stop the device & save the device state, stop-and-copy state - * 011b => Device running and save the device state, pre-copy state - * 100b => Device stopped and the device state is resuming - * 101b => Invalid state - * 110b => Error state - * 111b => Invalid state - * - * State transitions: - * - * _RESUMING _RUNNING Pre-copy Stop-and-copy _STOP - * (100b) (001b) (011b) (010b) (000b) - * 0. Running or default state - * | - * - * 1. Normal Shutdown (optional) - * |------------------------------------->| - * - * 2. Save the state or suspend - * |------------------------->|---------->| - * - * 3. Save the state during live migration - * |----------->|------------>|---------->| - * - * 4. Resuming - * |<---------| - * - * 5. Resumed - * |--------->| - * - * 0. Default state of VFIO device is _RUNNING when the user application starts. - * 1. During normal shutdown of the user application, the user application may - * optionally change the VFIO device state from _RUNNING to _STOP. This - * transition is optional. The vendor driver must support this transition but - * must not require it. - * 2. When the user application saves state or suspends the application, the - * device state transitions from _RUNNING to stop-and-copy and then to _STOP. - * On state transition from _RUNNING to stop-and-copy, driver must stop the - * device, save the device state and send it to the application through the - * migration region. The sequence to be followed for such transition is given - * below. - * 3. In live migration of user application, the state transitions from _RUNNING - * to pre-copy, to stop-and-copy, and to _STOP. - * On state transition from _RUNNING to pre-copy, the driver should start - * gathering the device state while the application is still running and send - * the device state data to application through the migration region. - * On state transition from pre-copy to stop-and-copy, the driver must stop - * the device, save the device state and send it to the user application - * through the migration region. - * Vendor drivers must support the pre-copy state even for implementations - * where no data is provided to the user before the stop-and-copy state. The - * user must not be required to consume all migration data before the device - * transitions to a new state, including the stop-and-copy state. - * The sequence to be followed for above two transitions is given below. - * 4. To start the resuming phase, the device state should be transitioned from - * the _RUNNING to the _RESUMING state. - * In the _RESUMING state, the driver should use the device state data - * received through the migration region to resume the device. - * 5. After providing saved device data to the driver, the application should - * change the state from _RESUMING to _RUNNING. - * - * reserved: - * Reads on this field return zero and writes are ignored. - * - * pending_bytes: (read only) - * The number of pending bytes still to be migrated from the vendor driver. - * - * data_offset: (read only) - * The user application should read data_offset field from the migration - * region. The user application should read the device data from this - * offset within the migration region during the _SAVING state or write - * the device data during the _RESUMING state. See below for details of - * sequence to be followed. - * - * data_size: (read/write) - * The user application should read data_size to get the size in bytes of - * the data copied in the migration region during the _SAVING state and - * write the size in bytes of the data copied in the migration region - * during the _RESUMING state. - * - * The format of the migration region is as follows: - * ------------------------------------------------------------------ - * |vfio_device_migration_info| data section | - * | | /////////////////////////////// | - * ------------------------------------------------------------------ - * ^ ^ - * offset 0-trapped part data_offset - * - * The structure vfio_device_migration_info is always followed by the data - * section in the region, so data_offset will always be nonzero. The offset - * from where the data is copied is decided by the kernel driver. The data - * section can be trapped, mmapped, or partitioned, depending on how the kernel - * driver defines the data section. The data section partition can be defined - * as mapped by the sparse mmap capability. If mmapped, data_offset must be - * page aligned, whereas initial section which contains the - * vfio_device_migration_info structure, might not end at the offset, which is - * page aligned. The user is not required to access through mmap regardless - * of the capabilities of the region mmap. - * The vendor driver should determine whether and how to partition the data - * section. The vendor driver should return data_offset accordingly. - * - * The sequence to be followed while in pre-copy state and stop-and-copy state - * is as follows: - * a. Read pending_bytes, indicating the start of a new iteration to get device - * data. Repeated read on pending_bytes at this stage should have no side - * effects. - * If pending_bytes == 0, the user application should not iterate to get data - * for that device. - * If pending_bytes > 0, perform the following steps. - * b. Read data_offset, indicating that the vendor driver should make data - * available through the data section. The vendor driver should return this - * read operation only after data is available from (region + data_offset) - * to (region + data_offset + data_size). - * c. Read data_size, which is the amount of data in bytes available through - * the migration region. - * Read on data_offset and data_size should return the offset and size of - * the current buffer if the user application reads data_offset and - * data_size more than once here. - * d. Read data_size bytes of data from (region + data_offset) from the - * migration region. - * e. Process the data. - * f. Read pending_bytes, which indicates that the data from the previous - * iteration has been read. If pending_bytes > 0, go to step b. - * - * The user application can transition from the _SAVING|_RUNNING - * (pre-copy state) to the _SAVING (stop-and-copy) state regardless of the - * number of pending bytes. The user application should iterate in _SAVING - * (stop-and-copy) until pending_bytes is 0. - * - * The sequence to be followed while _RESUMING device state is as follows: - * While data for this device is available, repeat the following steps: - * a. Read data_offset from where the user application should write data. - * b. Write migration data starting at the migration region + data_offset for - * the length determined by data_size from the migration source. - * c. Write data_size, which indicates to the vendor driver that data is - * written in the migration region. Vendor driver must return this write - * operations on consuming data. Vendor driver should apply the - * user-provided migration region data to the device resume state. - * - * If an error occurs during the above sequences, the vendor driver can return - * an error code for next read() or write() operation, which will terminate the - * loop. The user application should then take the next necessary action, for - * example, failing migration or terminating the user application. - * - * For the user application, data is opaque. The user application should write - * data in the same order as the data is received and the data should be of - * same transaction size at the source. - */ - -struct vfio_device_migration_info { - __u32 device_state; /* VFIO device state */ -#define VFIO_DEVICE_STATE_STOP (0) -#define VFIO_DEVICE_STATE_RUNNING (1 << 0) -#define VFIO_DEVICE_STATE_SAVING (1 << 1) -#define VFIO_DEVICE_STATE_RESUMING (1 << 2) -#define VFIO_DEVICE_STATE_MASK (VFIO_DEVICE_STATE_RUNNING | \ - VFIO_DEVICE_STATE_SAVING | \ - VFIO_DEVICE_STATE_RESUMING) - -#define VFIO_DEVICE_STATE_VALID(state) \ - (state & VFIO_DEVICE_STATE_RESUMING ? \ - (state & VFIO_DEVICE_STATE_MASK) == VFIO_DEVICE_STATE_RESUMING : 1) - -#define VFIO_DEVICE_STATE_IS_ERROR(state) \ - ((state & VFIO_DEVICE_STATE_MASK) == (VFIO_DEVICE_STATE_SAVING | \ - VFIO_DEVICE_STATE_RESUMING)) - -#define VFIO_DEVICE_STATE_SET_ERROR(state) \ - ((state & ~VFIO_DEVICE_STATE_MASK) | VFIO_DEVICE_SATE_SAVING | \ - VFIO_DEVICE_STATE_RESUMING) - - __u32 reserved; - __u64 pending_bytes; - __u64 data_offset; - __u64 data_size; -}; /* * The MSIX mappable capability informs that MSIX data of a BAR can be mmapped @@ -825,8 +577,6 @@ enum { enum { VFIO_CCW_IO_IRQ_INDEX, - VFIO_CCW_CRW_IRQ_INDEX, - VFIO_CCW_REQ_IRQ_INDEX, VFIO_CCW_NUM_IRQS }; @@ -957,43 +707,6 @@ struct vfio_device_ioeventfd { #define VFIO_DEVICE_IOEVENTFD _IO(VFIO_TYPE, VFIO_BASE + 16) -/** - * VFIO_DEVICE_FEATURE - _IORW(VFIO_TYPE, VFIO_BASE + 17, - * struct vfio_device_feature) - * - * Get, set, or probe feature data of the device. The feature is selected - * using the FEATURE_MASK portion of the flags field. Support for a feature - * can be probed by setting both the FEATURE_MASK and PROBE bits. A probe - * may optionally include the GET and/or SET bits to determine read vs write - * access of the feature respectively. Probing a feature will return success - * if the feature is supported and all of the optionally indicated GET/SET - * methods are supported. The format of the data portion of the structure is - * specific to the given feature. The data portion is not required for - * probing. GET and SET are mutually exclusive, except for use with PROBE. - * - * Return 0 on success, -errno on failure. - */ -struct vfio_device_feature { - __u32 argsz; - __u32 flags; -#define VFIO_DEVICE_FEATURE_MASK (0xffff) /* 16-bit feature index */ -#define VFIO_DEVICE_FEATURE_GET (1 << 16) /* Get feature into data[] */ -#define VFIO_DEVICE_FEATURE_SET (1 << 17) /* Set feature from data[] */ -#define VFIO_DEVICE_FEATURE_PROBE (1 << 18) /* Probe feature support */ - __u8 data[]; -}; - -#define VFIO_DEVICE_FEATURE _IO(VFIO_TYPE, VFIO_BASE + 17) - -/* - * Provide support for setting a PCI VF Token, which is used as a shared - * secret between PF and VF drivers. This feature may only be set on a - * PCI SR-IOV PF when SR-IOV is enabled on the PF and there are no existing - * open VFs. Data provided when setting this feature is a 16-byte array - * (__u8 b[16]), representing a UUID. - */ -#define VFIO_DEVICE_FEATURE_PCI_VF_TOKEN (0) - /* -------- API for Type1 VFIO IOMMU -------- */ /** @@ -1035,44 +748,6 @@ struct vfio_iommu_type1_info_cap_iova_range { struct vfio_iova_range iova_ranges[]; }; -/* - * The migration capability allows to report supported features for migration. - * - * The structures below define version 1 of this capability. - * - * The existence of this capability indicates that IOMMU kernel driver supports - * dirty page logging. - * - * pgsize_bitmap: Kernel driver returns bitmap of supported page sizes for dirty - * page logging. - * max_dirty_bitmap_size: Kernel driver returns maximum supported dirty bitmap - * size in bytes that can be used by user applications when getting the dirty - * bitmap. - */ -#define VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION 2 - -struct vfio_iommu_type1_info_cap_migration { - struct vfio_info_cap_header header; - __u32 flags; - __u64 pgsize_bitmap; - __u64 max_dirty_bitmap_size; /* in bytes */ -}; - -/* - * The DMA available capability allows to report the current number of - * simultaneously outstanding DMA mappings that are allowed. - * - * The structure below defines version 1 of this capability. - * - * avail: specifies the current number of outstanding DMA mappings allowed. - */ -#define VFIO_IOMMU_TYPE1_INFO_DMA_AVAIL 3 - -struct vfio_iommu_type1_info_dma_avail { - struct vfio_info_cap_header header; - __u32 avail; -}; - #define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) /** @@ -1080,22 +755,12 @@ struct vfio_iommu_type1_info_dma_avail { * * Map process virtual addresses to IO virtual addresses using the * provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required. - * - * If flags & VFIO_DMA_MAP_FLAG_VADDR, update the base vaddr for iova, and - * unblock translation of host virtual addresses in the iova range. The vaddr - * must have previously been invalidated with VFIO_DMA_UNMAP_FLAG_VADDR. To - * maintain memory consistency within the user application, the updated vaddr - * must address the same memory object as originally mapped. Failure to do so - * will result in user memory corruption and/or device misbehavior. iova and - * size must match those in the original MAP_DMA call. Protection is not - * changed, and the READ & WRITE flags must be 0. */ struct vfio_iommu_type1_dma_map { __u32 argsz; __u32 flags; #define VFIO_DMA_MAP_FLAG_READ (1 << 0) /* readable from device */ #define VFIO_DMA_MAP_FLAG_WRITE (1 << 1) /* writable from device */ -#define VFIO_DMA_MAP_FLAG_VADDR (1 << 2) __u64 vaddr; /* Process virtual address */ __u64 iova; /* IO virtual address */ __u64 size; /* Size of mapping (bytes) */ @@ -1103,12 +768,6 @@ struct vfio_iommu_type1_dma_map { #define VFIO_IOMMU_MAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 13) -struct vfio_bitmap { - __u64 pgsize; /* page size for bitmap in bytes */ - __u64 size; /* in bytes */ - __u64 __user *data; /* one bit per page */ -}; - /** * VFIO_IOMMU_UNMAP_DMA - _IOWR(VFIO_TYPE, VFIO_BASE + 14, * struct vfio_dma_unmap) @@ -1118,34 +777,12 @@ struct vfio_bitmap { * field. No guarantee is made to the user that arbitrary unmaps of iova * or size different from those used in the original mapping call will * succeed. - * - * VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP should be set to get the dirty bitmap - * before unmapping IO virtual addresses. When this flag is set, the user must - * provide a struct vfio_bitmap in data[]. User must provide zero-allocated - * memory via vfio_bitmap.data and its size in the vfio_bitmap.size field. - * A bit in the bitmap represents one page, of user provided page size in - * vfio_bitmap.pgsize field, consecutively starting from iova offset. Bit set - * indicates that the page at that offset from iova is dirty. A Bitmap of the - * pages in the range of unmapped size is returned in the user-provided - * vfio_bitmap.data. - * - * If flags & VFIO_DMA_UNMAP_FLAG_ALL, unmap all addresses. iova and size - * must be 0. This cannot be combined with the get-dirty-bitmap flag. - * - * If flags & VFIO_DMA_UNMAP_FLAG_VADDR, do not unmap, but invalidate host - * virtual addresses in the iova range. Tasks that attempt to translate an - * iova's vaddr will block. DMA to already-mapped pages continues. This - * cannot be combined with the get-dirty-bitmap flag. */ struct vfio_iommu_type1_dma_unmap { __u32 argsz; __u32 flags; -#define VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP (1 << 0) -#define VFIO_DMA_UNMAP_FLAG_ALL (1 << 1) -#define VFIO_DMA_UNMAP_FLAG_VADDR (1 << 2) __u64 iova; /* IO virtual address */ __u64 size; /* Size of mapping (bytes) */ - __u8 data[]; }; #define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14) @@ -1157,57 +794,6 @@ struct vfio_iommu_type1_dma_unmap { #define VFIO_IOMMU_ENABLE _IO(VFIO_TYPE, VFIO_BASE + 15) #define VFIO_IOMMU_DISABLE _IO(VFIO_TYPE, VFIO_BASE + 16) -/** - * VFIO_IOMMU_DIRTY_PAGES - _IOWR(VFIO_TYPE, VFIO_BASE + 17, - * struct vfio_iommu_type1_dirty_bitmap) - * IOCTL is used for dirty pages logging. - * Caller should set flag depending on which operation to perform, details as - * below: - * - * Calling the IOCTL with VFIO_IOMMU_DIRTY_PAGES_FLAG_START flag set, instructs - * the IOMMU driver to log pages that are dirtied or potentially dirtied by - * the device; designed to be used when a migration is in progress. Dirty pages - * are logged until logging is disabled by user application by calling the IOCTL - * with VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP flag. - * - * Calling the IOCTL with VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP flag set, instructs - * the IOMMU driver to stop logging dirtied pages. - * - * Calling the IOCTL with VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP flag set - * returns the dirty pages bitmap for IOMMU container for a given IOVA range. - * The user must specify the IOVA range and the pgsize through the structure - * vfio_iommu_type1_dirty_bitmap_get in the data[] portion. This interface - * supports getting a bitmap of the smallest supported pgsize only and can be - * modified in future to get a bitmap of any specified supported pgsize. The - * user must provide a zeroed memory area for the bitmap memory and specify its - * size in bitmap.size. One bit is used to represent one page consecutively - * starting from iova offset. The user should provide page size in bitmap.pgsize - * field. A bit set in the bitmap indicates that the page at that offset from - * iova is dirty. The caller must set argsz to a value including the size of - * structure vfio_iommu_type1_dirty_bitmap_get, but excluding the size of the - * actual bitmap. If dirty pages logging is not enabled, an error will be - * returned. - * - * Only one of the flags _START, _STOP and _GET may be specified at a time. - * - */ -struct vfio_iommu_type1_dirty_bitmap { - __u32 argsz; - __u32 flags; -#define VFIO_IOMMU_DIRTY_PAGES_FLAG_START (1 << 0) -#define VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP (1 << 1) -#define VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP (1 << 2) - __u8 data[]; -}; - -struct vfio_iommu_type1_dirty_bitmap_get { - __u64 iova; /* IO virtual address */ - __u64 size; /* Size of iova range */ - struct vfio_bitmap bitmap; -}; - -#define VFIO_IOMMU_DIRTY_PAGES _IO(VFIO_TYPE, VFIO_BASE + 17) - /* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */ /* diff --git a/original/uapi/linux/vfio_ccw.h b/original/uapi/linux/vfio_ccw.h index aa04f3a..cbecbf0 100644 --- a/original/uapi/linux/vfio_ccw.h +++ b/original/uapi/linux/vfio_ccw.h @@ -34,23 +34,4 @@ struct ccw_cmd_region { __u32 ret_code; } __packed; -/* - * Used for processing commands that read the subchannel-information block - * Reading this region triggers a stsch() to hardware - * Note: this is controlled by a capability - */ -struct ccw_schib_region { -#define SCHIB_AREA_SIZE 52 - __u8 schib_area[SCHIB_AREA_SIZE]; -} __packed; - -/* - * Used for returning a Channel Report Word to userspace. - * Note: this is controlled by a capability - */ -struct ccw_crw_region { - __u32 crw; - __u32 pad; -} __packed; - #endif diff --git a/original/uapi/linux/vfio_zdev.h b/original/uapi/linux/vfio_zdev.h deleted file mode 100644 index b430939..0000000 --- a/original/uapi/linux/vfio_zdev.h +++ /dev/null @@ -1,78 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * VFIO Region definitions for ZPCI devices - * - * Copyright IBM Corp. 2020 - * - * Author(s): Pierre Morel <pmorel@linux.ibm.com> - * Matthew Rosato <mjrosato@linux.ibm.com> - */ - -#ifndef _VFIO_ZDEV_H_ -#define _VFIO_ZDEV_H_ - -#include <linux/types.h> -#include <linux/vfio.h> - -/** - * VFIO_DEVICE_INFO_CAP_ZPCI_BASE - Base PCI Function information - * - * This capability provides a set of descriptive information about the - * associated PCI function. - */ -struct vfio_device_info_cap_zpci_base { - struct vfio_info_cap_header header; - __u64 start_dma; /* Start of available DMA addresses */ - __u64 end_dma; /* End of available DMA addresses */ - __u16 pchid; /* Physical Channel ID */ - __u16 vfn; /* Virtual function number */ - __u16 fmb_length; /* Measurement Block Length (in bytes) */ - __u8 pft; /* PCI Function Type */ - __u8 gid; /* PCI function group ID */ -}; - -/** - * VFIO_DEVICE_INFO_CAP_ZPCI_GROUP - Base PCI Function Group information - * - * This capability provides a set of descriptive information about the group of - * PCI functions that the associated device belongs to. - */ -struct vfio_device_info_cap_zpci_group { - struct vfio_info_cap_header header; - __u64 dasm; /* DMA Address space mask */ - __u64 msi_addr; /* MSI address */ - __u64 flags; -#define VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH 1 /* Program-specified TLB refresh */ - __u16 mui; /* Measurement Block Update Interval */ - __u16 noi; /* Maximum number of MSIs */ - __u16 maxstbl; /* Maximum Store Block Length */ - __u8 version; /* Supported PCI Version */ -}; - -/** - * VFIO_DEVICE_INFO_CAP_ZPCI_UTIL - Utility String - * - * This capability provides the utility string for the associated device, which - * is a device identifier string made up of EBCDID characters. 'size' specifies - * the length of 'util_str'. - */ -struct vfio_device_info_cap_zpci_util { - struct vfio_info_cap_header header; - __u32 size; - __u8 util_str[]; -}; - -/** - * VFIO_DEVICE_INFO_CAP_ZPCI_PFIP - PCI Function Path - * - * This capability provides the PCI function path string, which is an identifier - * that describes the internal hardware path of the device. 'size' specifies - * the length of 'pfip'. - */ -struct vfio_device_info_cap_zpci_pfip { - struct vfio_info_cap_header header; - __u32 size; - __u8 pfip[]; -}; - -#endif diff --git a/original/uapi/linux/vhost.h b/original/uapi/linux/vhost.h index c998860..40d028e 100644 --- a/original/uapi/linux/vhost.h +++ b/original/uapi/linux/vhost.h @@ -15,8 +15,6 @@ #include <linux/types.h> #include <linux/ioctl.h> -#define VHOST_FILE_UNBIND -1 - /* ioctls */ #define VHOST_VIRTIO 0xAF @@ -91,8 +89,6 @@ /* Use message type V2 */ #define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1 -/* IOTLB can accept batching hints */ -#define VHOST_BACKEND_F_IOTLB_BATCH 0x2 #define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64) #define VHOST_GET_BACKEND_FEATURES _IOR(VHOST_VIRTIO, 0x26, __u64) @@ -120,34 +116,4 @@ #define VHOST_VSOCK_SET_GUEST_CID _IOW(VHOST_VIRTIO, 0x60, __u64) #define VHOST_VSOCK_SET_RUNNING _IOW(VHOST_VIRTIO, 0x61, int) -/* VHOST_VDPA specific defines */ - -/* Get the device id. The device ids follow the same definition of - * the device id defined in virtio-spec. - */ -#define VHOST_VDPA_GET_DEVICE_ID _IOR(VHOST_VIRTIO, 0x70, __u32) -/* Get and set the status. The status bits follow the same definition - * of the device status defined in virtio-spec. - */ -#define VHOST_VDPA_GET_STATUS _IOR(VHOST_VIRTIO, 0x71, __u8) -#define VHOST_VDPA_SET_STATUS _IOW(VHOST_VIRTIO, 0x72, __u8) -/* Get and set the device config. The device config follows the same - * definition of the device config defined in virtio-spec. - */ -#define VHOST_VDPA_GET_CONFIG _IOR(VHOST_VIRTIO, 0x73, \ - struct vhost_vdpa_config) -#define VHOST_VDPA_SET_CONFIG _IOW(VHOST_VIRTIO, 0x74, \ - struct vhost_vdpa_config) -/* Enable/disable the ring. */ -#define VHOST_VDPA_SET_VRING_ENABLE _IOW(VHOST_VIRTIO, 0x75, \ - struct vhost_vring_state) -/* Get the max ring size. */ -#define VHOST_VDPA_GET_VRING_NUM _IOR(VHOST_VIRTIO, 0x76, __u16) - -/* Set event fd for config interrupt*/ -#define VHOST_VDPA_SET_CONFIG_CALL _IOW(VHOST_VIRTIO, 0x77, int) - -/* Get the valid iova range */ -#define VHOST_VDPA_GET_IOVA_RANGE _IOR(VHOST_VIRTIO, 0x78, \ - struct vhost_vdpa_iova_range) #endif diff --git a/original/uapi/linux/vhost_types.h b/original/uapi/linux/vhost_types.h index f7f6a3a..c907290 100644 --- a/original/uapi/linux/vhost_types.h +++ b/original/uapi/linux/vhost_types.h @@ -60,17 +60,6 @@ struct vhost_iotlb_msg { #define VHOST_IOTLB_UPDATE 2 #define VHOST_IOTLB_INVALIDATE 3 #define VHOST_IOTLB_ACCESS_FAIL 4 -/* - * VHOST_IOTLB_BATCH_BEGIN and VHOST_IOTLB_BATCH_END allow modifying - * multiple mappings in one go: beginning with - * VHOST_IOTLB_BATCH_BEGIN, followed by any number of - * VHOST_IOTLB_UPDATE messages, and ending with VHOST_IOTLB_BATCH_END. - * When one of these two values is used as the message type, the rest - * of the fields in the message are ignored. There's no guarantee that - * these changes take place automatically in the device. - */ -#define VHOST_IOTLB_BATCH_BEGIN 5 -#define VHOST_IOTLB_BATCH_END 6 __u8 type; }; @@ -130,23 +119,6 @@ struct vhost_scsi_target { unsigned short reserved; }; -/* VHOST_VDPA specific definitions */ - -struct vhost_vdpa_config { - __u32 off; - __u32 len; - __u8 buf[0]; -}; - -/* vhost vdpa IOVA range - * @first: First address that can be mapped by vhost-vDPA - * @last: Last address that can be mapped by vhost-vDPA - */ -struct vhost_vdpa_iova_range { - __u64 first; - __u64 last; -}; - /* Feature bits */ /* Log all write descriptors. Can be changed while device is active. */ #define VHOST_F_LOG_ALL 26 diff --git a/original/uapi/linux/videodev2.h b/original/uapi/linux/videodev2.h index 3e44b6c..169e210 100644 --- a/original/uapi/linux/videodev2.h +++ b/original/uapi/linux/videodev2.h @@ -171,8 +171,6 @@ enum v4l2_buf_type { || (type) == V4L2_BUF_TYPE_SDR_OUTPUT \ || (type) == V4L2_BUF_TYPE_META_OUTPUT) -#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type)) - enum v4l2_tuner_type { V4L2_TUNER_RADIO = 1, V4L2_TUNER_ANALOG_TV = 2, @@ -221,7 +219,9 @@ enum v4l2_colorspace { V4L2_COLORSPACE_470_SYSTEM_M = 5, /* - * EBU Tech 3213 PAL/SECAM colorspace. + * EBU Tech 3213 PAL/SECAM colorspace. This only makes sense when + * dealing with really old PAL/SECAM recordings. Superseded by + * SMPTE 170M. */ V4L2_COLORSPACE_470_SYSTEM_BG = 6, @@ -371,9 +371,9 @@ enum v4l2_hsv_encoding { enum v4l2_quantization { /* - * The default for R'G'B' quantization is always full range. - * For Y'CbCr the quantization is always limited range, except - * for COLORSPACE_JPEG: this is full range. + * The default for R'G'B' quantization is always full range, except + * for the BT2020 colorspace. For Y'CbCr the quantization is always + * limited range, except for COLORSPACE_JPEG: this is full range. */ V4L2_QUANTIZATION_DEFAULT = 0, V4L2_QUANTIZATION_FULL_RANGE = 1, @@ -382,13 +382,14 @@ enum v4l2_quantization { /* * Determine how QUANTIZATION_DEFAULT should map to a proper quantization. - * This depends on whether the image is RGB or not, the colorspace. - * The Y'CbCr encoding is not used anymore, but is still there for backwards - * compatibility. + * This depends on whether the image is RGB or not, the colorspace and the + * Y'CbCr encoding. */ #define V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb_or_hsv, colsp, ycbcr_enc) \ - (((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \ - V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE) + (((is_rgb_or_hsv) && (colsp) == V4L2_COLORSPACE_BT2020) ? \ + V4L2_QUANTIZATION_LIM_RANGE : \ + (((is_rgb_or_hsv) || (colsp) == V4L2_COLORSPACE_JPEG) ? \ + V4L2_QUANTIZATION_FULL_RANGE : V4L2_QUANTIZATION_LIM_RANGE)) /* * Deprecated names for opRGB colorspace (IEC 61966-2-5) @@ -486,8 +487,6 @@ struct v4l2_capability { #define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */ -#define V4L2_CAP_IO_MC 0x20000000 /* Is input/output controlled by the media controller */ - #define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */ /* @@ -515,7 +514,7 @@ struct v4l2_pix_format { /* Pixel format FOURCC depth Description */ -/* RGB formats (1 or 2 bytes per pixel) */ +/* RGB formats */ #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */ #define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ #define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16 aaaarrrr ggggbbbb */ @@ -524,6 +523,12 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_RGBX444 v4l2_fourcc('R', 'X', '1', '2') /* 16 rrrrgggg bbbbxxxx */ #define V4L2_PIX_FMT_ABGR444 v4l2_fourcc('A', 'B', '1', '2') /* 16 aaaabbbb ggggrrrr */ #define V4L2_PIX_FMT_XBGR444 v4l2_fourcc('X', 'B', '1', '2') /* 16 xxxxbbbb ggggrrrr */ + +/* + * Originally this had 'BA12' as fourcc, but this clashed with the older + * V4L2_PIX_FMT_SGRBG12 which inexplicably used that same fourcc. + * So use 'GA12' instead for V4L2_PIX_FMT_BGRA444. + */ #define V4L2_PIX_FMT_BGRA444 v4l2_fourcc('G', 'A', '1', '2') /* 16 bbbbgggg rrrraaaa */ #define V4L2_PIX_FMT_BGRX444 v4l2_fourcc('B', 'X', '1', '2') /* 16 bbbbgggg rrrrxxxx */ #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */ @@ -540,8 +545,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') /* 16 ARGB-5-5-5 BE */ #define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16 XRGB-5-5-5 BE */ #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ - -/* RGB formats (3 or 4 bytes per pixel) */ #define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */ #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ @@ -562,7 +565,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */ #define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ #define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ -#define V4L2_PIX_FMT_Y14 v4l2_fourcc('Y', '1', '4', ' ') /* 14 Greyscale */ #define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ #define V4L2_PIX_FMT_Y16_BE v4l2_fourcc_be('Y', '1', '6', ' ') /* 16 Greyscale BE */ @@ -591,6 +593,8 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */ #define V4L2_PIX_FMT_VUYA32 v4l2_fourcc('V', 'U', 'Y', 'A') /* 32 VUYA-8-8-8-8 */ #define V4L2_PIX_FMT_VUYX32 v4l2_fourcc('V', 'U', 'Y', 'X') /* 32 VUYX-8-8-8-8 */ +#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ +#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ #define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ /* two planes -- one Y, one Cr + Cb interleaved */ @@ -600,7 +604,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ -#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ /* two non contiguous planes - one Y, one Cr + Cb interleaved */ #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */ @@ -659,10 +662,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C') #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C') #define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C') -#define V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') /* 14 BGBG.. GRGR.. */ -#define V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') /* 14 GBGB.. RGRG.. */ -#define V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('G', 'R', '1', '4') /* 14 GRGR.. BGBG.. */ -#define V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') /* 14 RGRG.. GBGB.. */ /* 14bit raw bayer packed, 7 bytes for every 4 pixels */ #define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E') #define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E') @@ -698,7 +697,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */ #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */ #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H') /* Stateless FWHT (vicodec) */ -#define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4') /* H264 parsed slices */ /* Vendor-specific formats */ #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ @@ -734,7 +732,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ #define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */ #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */ -#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */ /* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ @@ -765,16 +762,11 @@ struct v4l2_pix_format { #define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ #define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */ -/* Vendor specific - used for RK_ISP1 camera sub-system */ -#define V4L2_META_FMT_RK_ISP1_PARAMS v4l2_fourcc('R', 'K', '1', 'P') /* Rockchip ISP1 3A Parameters */ -#define V4L2_META_FMT_RK_ISP1_STAT_3A v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A Statistics */ - /* priv field value to indicates that subsequent fields are valid. */ #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe /* Flags */ #define V4L2_PIX_FMT_FLAG_PREMUL_ALPHA 0x00000001 -#define V4L2_PIX_FMT_FLAG_SET_CSC 0x00000002 /* * F O R M A T E N U M E R A T I O N @@ -785,20 +777,13 @@ struct v4l2_fmtdesc { __u32 flags; __u8 description[32]; /* Description string */ __u32 pixelformat; /* Format fourcc */ - __u32 mbus_code; /* Media bus code */ - __u32 reserved[3]; + __u32 reserved[4]; }; #define V4L2_FMT_FLAG_COMPRESSED 0x0001 #define V4L2_FMT_FLAG_EMULATED 0x0002 #define V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM 0x0004 #define V4L2_FMT_FLAG_DYN_RESOLUTION 0x0008 -#define V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL 0x0010 -#define V4L2_FMT_FLAG_CSC_COLORSPACE 0x0020 -#define V4L2_FMT_FLAG_CSC_XFER_FUNC 0x0040 -#define V4L2_FMT_FLAG_CSC_YCBCR_ENC 0x0080 -#define V4L2_FMT_FLAG_CSC_HSV_ENC V4L2_FMT_FLAG_CSC_YCBCR_ENC -#define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100 /* Frame Size and frame rate enumeration */ /* @@ -927,25 +912,6 @@ struct v4l2_jpegcompression { /* * M E M O R Y - M A P P I N G B U F F E R S */ - -#ifdef __KERNEL__ -/* - * This corresponds to the user space version of timeval - * for 64-bit time_t. sparc64 is different from everyone - * else, using the microseconds in the wrong half of the - * second 64-bit word. - */ -struct __kernel_v4l2_timeval { - long long tv_sec; -#if defined(__sparc__) && defined(__arch64__) - int tv_usec; - int __pad; -#else - long long tv_usec; -#endif -}; -#endif - struct v4l2_requestbuffers { __u32 count; __u32 type; /* enum v4l2_buf_type */ @@ -961,7 +927,6 @@ struct v4l2_requestbuffers { #define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3) #define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4) #define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5) -#define V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS (1 << 6) /** * struct v4l2_plane - plane info for multi-planar buffers @@ -977,7 +942,9 @@ struct v4l2_requestbuffers { * descriptor associated with this plane * @data_offset: offset in the plane to the start of data; usually 0, * unless there is a header in front of the data - * + * @reserved: few userspace clients and drivers use reserved fields + * and it is up to them how these fields are used. v4l2 + * simply copy reserved fields between them. * Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer * with two planes can have one plane for Y, and another for interleaved CbCr * components. Each plane can reside in a separate memory buffer, or even in @@ -992,6 +959,7 @@ struct v4l2_plane { __s32 fd; } m; __u32 data_offset; + /* reserved fields used by few userspace clients and drivers */ __u32 reserved[11]; }; @@ -1032,11 +1000,7 @@ struct v4l2_buffer { __u32 bytesused; __u32 flags; __u32 field; -#ifdef __KERNEL__ - struct __kernel_v4l2_timeval timestamp; -#else struct timeval timestamp; -#endif struct v4l2_timecode timecode; __u32 sequence; @@ -1056,7 +1020,6 @@ struct v4l2_buffer { }; }; -#ifndef __KERNEL__ /** * v4l2_timeval_to_ns - Convert timeval to nanoseconds * @ts: pointer to the timeval variable to be converted @@ -1068,7 +1031,6 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv) { return (__u64)tv->tv_sec * 1000000000ULL + tv->tv_usec * 1000; } -#endif /* Flags for 'flags' field */ /* Buffer is mapped (flag) */ @@ -1184,7 +1146,7 @@ struct v4l2_window { struct v4l2_rect w; __u32 field; /* enum v4l2_field */ __u32 chromakey; - struct v4l2_clip *clips; + struct v4l2_clip __user *clips; __u32 clipcount; void __user *bitmap; __u8 global_alpha; @@ -1258,10 +1220,6 @@ struct v4l2_selection { typedef __u64 v4l2_std_id; -/* - * Attention: Keep the V4L2_STD_* bit definitions in sync with - * include/dt-bindings/display/sdtv-standards.h SDTV_STD_* bit definitions. - */ /* one bit for each */ #define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) #define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002) @@ -1730,13 +1688,6 @@ struct v4l2_ext_control { __u16 __user *p_u16; __u32 __user *p_u32; struct v4l2_area __user *p_area; - struct v4l2_ctrl_h264_sps __user *p_h264_sps; - struct v4l2_ctrl_h264_pps *p_h264_pps; - struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix; - struct v4l2_ctrl_h264_pred_weights __user *p_h264_pred_weights; - struct v4l2_ctrl_h264_slice_params __user *p_h264_slice_params; - struct v4l2_ctrl_h264_decode_params __user *p_h264_decode_params; - struct v4l2_ctrl_fwht_params __user *p_fwht_params; void __user *ptr; }; } __attribute__ ((packed)); @@ -1783,15 +1734,6 @@ enum v4l2_ctrl_type { V4L2_CTRL_TYPE_U16 = 0x0101, V4L2_CTRL_TYPE_U32 = 0x0102, V4L2_CTRL_TYPE_AREA = 0x0106, - - V4L2_CTRL_TYPE_H264_SPS = 0x0200, - V4L2_CTRL_TYPE_H264_PPS = 0x0201, - V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202, - V4L2_CTRL_TYPE_H264_SLICE_PARAMS = 0x0203, - V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204, - V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205, - - V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220, }; /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ @@ -2400,11 +2342,7 @@ struct v4l2_event { } u; __u32 pending; __u32 sequence; -#ifdef __KERNEL__ - struct __kernel_timespec timestamp; -#else struct timespec timestamp; -#endif __u32 id; __u32 reserved[8]; }; diff --git a/original/uapi/linux/virtio_9p.h b/original/uapi/linux/virtio_9p.h index 4410474..277c4ad 100644 --- a/original/uapi/linux/virtio_9p.h +++ b/original/uapi/linux/virtio_9p.h @@ -25,7 +25,7 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -#include <linux/virtio_types.h> +#include <linux/types.h> #include <linux/virtio_ids.h> #include <linux/virtio_config.h> @@ -36,7 +36,7 @@ struct virtio_9p_config { /* length of the tag name */ - __virtio16 tag_len; + __u16 tag_len; /* non-NULL terminated tag name */ __u8 tag[0]; } __attribute__((packed)); diff --git a/original/uapi/linux/virtio_balloon.h b/original/uapi/linux/virtio_balloon.h index ddaa45e..a1966cd 100644 --- a/original/uapi/linux/virtio_balloon.h +++ b/original/uapi/linux/virtio_balloon.h @@ -36,7 +36,6 @@ #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ #define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */ #define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */ -#define VIRTIO_BALLOON_F_REPORTING 5 /* Page reporting virtqueue */ /* Size of a PFN in the balloon interface. */ #define VIRTIO_BALLOON_PFN_SHIFT 12 @@ -45,20 +44,13 @@ #define VIRTIO_BALLOON_CMD_ID_DONE 1 struct virtio_balloon_config { /* Number of pages host wants Guest to give up. */ - __le32 num_pages; + __u32 num_pages; /* Number of pages we've actually got in balloon. */ - __le32 actual; - /* - * Free page hint command id, readonly by guest. - * Was previously named free_page_report_cmd_id so we - * need to carry that name for legacy support. - */ - union { - __le32 free_page_hint_cmd_id; - __le32 free_page_report_cmd_id; /* deprecated */ - }; + __u32 actual; + /* Free page report command id, readonly by guest */ + __u32 free_page_report_cmd_id; /* Stores PAGE_POISON if page poisoning is in use */ - __le32 poison_val; + __u32 poison_val; }; #define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */ diff --git a/original/uapi/linux/virtio_blk.h b/original/uapi/linux/virtio_blk.h index d888f01..0f99d7b 100644 --- a/original/uapi/linux/virtio_blk.h +++ b/original/uapi/linux/virtio_blk.h @@ -57,20 +57,20 @@ struct virtio_blk_config { /* The capacity (in 512-byte sectors). */ - __virtio64 capacity; + __u64 capacity; /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */ - __virtio32 size_max; + __u32 size_max; /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ - __virtio32 seg_max; + __u32 seg_max; /* geometry of the device (if VIRTIO_BLK_F_GEOMETRY) */ struct virtio_blk_geometry { - __virtio16 cylinders; + __u16 cylinders; __u8 heads; __u8 sectors; } geometry; /* block size of device (if VIRTIO_BLK_F_BLK_SIZE) */ - __virtio32 blk_size; + __u32 blk_size; /* the next 4 entries are guarded by VIRTIO_BLK_F_TOPOLOGY */ /* exponent for physical block per logical block. */ @@ -78,42 +78,42 @@ struct virtio_blk_config { /* alignment offset in logical blocks. */ __u8 alignment_offset; /* minimum I/O size without performance penalty in logical blocks. */ - __virtio16 min_io_size; + __u16 min_io_size; /* optimal sustained I/O size in logical blocks. */ - __virtio32 opt_io_size; + __u32 opt_io_size; /* writeback mode (if VIRTIO_BLK_F_CONFIG_WCE) */ __u8 wce; __u8 unused; /* number of vqs, only available when VIRTIO_BLK_F_MQ is set */ - __virtio16 num_queues; + __u16 num_queues; /* the next 3 entries are guarded by VIRTIO_BLK_F_DISCARD */ /* * The maximum discard sectors (in 512-byte sectors) for * one segment. */ - __virtio32 max_discard_sectors; + __u32 max_discard_sectors; /* * The maximum number of discard segments in a * discard command. */ - __virtio32 max_discard_seg; + __u32 max_discard_seg; /* Discard commands must be aligned to this number of sectors. */ - __virtio32 discard_sector_alignment; + __u32 discard_sector_alignment; /* the next 3 entries are guarded by VIRTIO_BLK_F_WRITE_ZEROES */ /* * The maximum number of write zeroes sectors (in 512-byte sectors) in * one segment. */ - __virtio32 max_write_zeroes_sectors; + __u32 max_write_zeroes_sectors; /* * The maximum number of segments in a write zeroes * command. */ - __virtio32 max_write_zeroes_seg; + __u32 max_write_zeroes_seg; /* * Set if a VIRTIO_BLK_T_WRITE_ZEROES request may result in the * deallocation of one or more of the sectors. diff --git a/original/uapi/linux/virtio_config.h b/original/uapi/linux/virtio_config.h index b5eda06..ff8e7dc 100644 --- a/original/uapi/linux/virtio_config.h +++ b/original/uapi/linux/virtio_config.h @@ -67,17 +67,13 @@ #define VIRTIO_F_VERSION_1 32 /* - * If clear - device has the platform DMA (e.g. IOMMU) bypass quirk feature. - * If set - use platform DMA tools to access the memory. + * If clear - device has the IOMMU bypass quirk feature. + * If set - use platform tools to detect the IOMMU. * * Note the reverse polarity (compared to most other features), * this is for compatibility with legacy systems. */ -#define VIRTIO_F_ACCESS_PLATFORM 33 -#ifndef __KERNEL__ -/* Legacy name for VIRTIO_F_ACCESS_PLATFORM (for compatibility with old userspace) */ -#define VIRTIO_F_IOMMU_PLATFORM VIRTIO_F_ACCESS_PLATFORM -#endif /* __KERNEL__ */ +#define VIRTIO_F_IOMMU_PLATFORM 33 /* This feature indicates support for the packed virtqueue layout. */ #define VIRTIO_F_RING_PACKED 34 diff --git a/original/uapi/linux/virtio_console.h b/original/uapi/linux/virtio_console.h index 7e6ec2f..b7fb108 100644 --- a/original/uapi/linux/virtio_console.h +++ b/original/uapi/linux/virtio_console.h @@ -45,13 +45,13 @@ struct virtio_console_config { /* colums of the screens */ - __virtio16 cols; + __u16 cols; /* rows of the screens */ - __virtio16 rows; + __u16 rows; /* max. number of ports this device can hold */ - __virtio32 max_nr_ports; + __u32 max_nr_ports; /* emergency write register */ - __virtio32 emerg_wr; + __u32 emerg_wr; } __attribute__((packed)); /* diff --git a/original/uapi/linux/virtio_crypto.h b/original/uapi/linux/virtio_crypto.h index a03932f..50cdc8a 100644 --- a/original/uapi/linux/virtio_crypto.h +++ b/original/uapi/linux/virtio_crypto.h @@ -414,33 +414,33 @@ struct virtio_crypto_op_data_req { struct virtio_crypto_config { /* See VIRTIO_CRYPTO_OP_* above */ - __le32 status; + __u32 status; /* * Maximum number of data queue */ - __le32 max_dataqueues; + __u32 max_dataqueues; /* * Specifies the services mask which the device support, * see VIRTIO_CRYPTO_SERVICE_* above */ - __le32 crypto_services; + __u32 crypto_services; /* Detailed algorithms mask */ - __le32 cipher_algo_l; - __le32 cipher_algo_h; - __le32 hash_algo; - __le32 mac_algo_l; - __le32 mac_algo_h; - __le32 aead_algo; + __u32 cipher_algo_l; + __u32 cipher_algo_h; + __u32 hash_algo; + __u32 mac_algo_l; + __u32 mac_algo_h; + __u32 aead_algo; /* Maximum length of cipher key */ - __le32 max_cipher_key_len; + __u32 max_cipher_key_len; /* Maximum length of authenticated key */ - __le32 max_auth_key_len; - __le32 reserve; + __u32 max_auth_key_len; + __u32 reserve; /* Maximum size of each crypto request's content */ - __le64 max_size; + __u64 max_size; }; struct virtio_crypto_inhdr { diff --git a/original/uapi/linux/virtio_fs.h b/original/uapi/linux/virtio_fs.h index bea3829..b02eb2a 100644 --- a/original/uapi/linux/virtio_fs.h +++ b/original/uapi/linux/virtio_fs.h @@ -13,10 +13,7 @@ struct virtio_fs_config { __u8 tag[36]; /* Number of request queues */ - __le32 num_request_queues; + __u32 num_request_queues; } __attribute__((packed)); -/* For the id field in virtio_pci_shm_cap */ -#define VIRTIO_FS_SHMCAP_ID_CACHE 0 - #endif /* _UAPI_LINUX_VIRTIO_FS_H */ diff --git a/original/uapi/linux/virtio_gpu.h b/original/uapi/linux/virtio_gpu.h index 97523a9..0c85914 100644 --- a/original/uapi/linux/virtio_gpu.h +++ b/original/uapi/linux/virtio_gpu.h @@ -50,15 +50,6 @@ * VIRTIO_GPU_CMD_GET_EDID */ #define VIRTIO_GPU_F_EDID 1 -/* - * VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID - */ -#define VIRTIO_GPU_F_RESOURCE_UUID 2 - -/* - * VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB - */ -#define VIRTIO_GPU_F_RESOURCE_BLOB 3 enum virtio_gpu_ctrl_type { VIRTIO_GPU_UNDEFINED = 0, @@ -75,9 +66,6 @@ enum virtio_gpu_ctrl_type { VIRTIO_GPU_CMD_GET_CAPSET_INFO, VIRTIO_GPU_CMD_GET_CAPSET, VIRTIO_GPU_CMD_GET_EDID, - VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID, - VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB, - VIRTIO_GPU_CMD_SET_SCANOUT_BLOB, /* 3d commands */ VIRTIO_GPU_CMD_CTX_CREATE = 0x0200, @@ -88,8 +76,6 @@ enum virtio_gpu_ctrl_type { VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D, VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D, VIRTIO_GPU_CMD_SUBMIT_3D, - VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB, - VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB, /* cursor commands */ VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300, @@ -101,8 +87,6 @@ enum virtio_gpu_ctrl_type { VIRTIO_GPU_RESP_OK_CAPSET_INFO, VIRTIO_GPU_RESP_OK_CAPSET, VIRTIO_GPU_RESP_OK_EDID, - VIRTIO_GPU_RESP_OK_RESOURCE_UUID, - VIRTIO_GPU_RESP_OK_MAP_INFO, /* error responses */ VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, @@ -113,15 +97,6 @@ enum virtio_gpu_ctrl_type { VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER, }; -enum virtio_gpu_shm_id { - VIRTIO_GPU_SHM_ID_UNDEFINED = 0, - /* - * VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB - * VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB - */ - VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1 -}; - #define VIRTIO_GPU_FLAG_FENCE (1 << 0) struct virtio_gpu_ctrl_hdr { @@ -345,10 +320,10 @@ struct virtio_gpu_resp_edid { #define VIRTIO_GPU_EVENT_DISPLAY (1 << 0) struct virtio_gpu_config { - __le32 events_read; - __le32 events_clear; - __le32 num_scanouts; - __le32 num_capsets; + __u32 events_read; + __u32 events_clear; + __u32 num_scanouts; + __u32 num_capsets; }; /* simple formats for fbcon/X use */ @@ -365,80 +340,4 @@ enum virtio_gpu_formats { VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM = 134, }; -/* VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID */ -struct virtio_gpu_resource_assign_uuid { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; -}; - -/* VIRTIO_GPU_RESP_OK_RESOURCE_UUID */ -struct virtio_gpu_resp_resource_uuid { - struct virtio_gpu_ctrl_hdr hdr; - __u8 uuid[16]; -}; - -/* VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB */ -struct virtio_gpu_resource_create_blob { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; -#define VIRTIO_GPU_BLOB_MEM_GUEST 0x0001 -#define VIRTIO_GPU_BLOB_MEM_HOST3D 0x0002 -#define VIRTIO_GPU_BLOB_MEM_HOST3D_GUEST 0x0003 - -#define VIRTIO_GPU_BLOB_FLAG_USE_MAPPABLE 0x0001 -#define VIRTIO_GPU_BLOB_FLAG_USE_SHAREABLE 0x0002 -#define VIRTIO_GPU_BLOB_FLAG_USE_CROSS_DEVICE 0x0004 - /* zero is invalid blob mem */ - __le32 blob_mem; - __le32 blob_flags; - __le32 nr_entries; - __le64 blob_id; - __le64 size; - /* - * sizeof(nr_entries * virtio_gpu_mem_entry) bytes follow - */ -}; - -/* VIRTIO_GPU_CMD_SET_SCANOUT_BLOB */ -struct virtio_gpu_set_scanout_blob { - struct virtio_gpu_ctrl_hdr hdr; - struct virtio_gpu_rect r; - __le32 scanout_id; - __le32 resource_id; - __le32 width; - __le32 height; - __le32 format; - __le32 padding; - __le32 strides[4]; - __le32 offsets[4]; -}; - -/* VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB */ -struct virtio_gpu_resource_map_blob { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; - __le64 offset; -}; - -/* VIRTIO_GPU_RESP_OK_MAP_INFO */ -#define VIRTIO_GPU_MAP_CACHE_MASK 0x0f -#define VIRTIO_GPU_MAP_CACHE_NONE 0x00 -#define VIRTIO_GPU_MAP_CACHE_CACHED 0x01 -#define VIRTIO_GPU_MAP_CACHE_UNCACHED 0x02 -#define VIRTIO_GPU_MAP_CACHE_WC 0x03 -struct virtio_gpu_resp_map_info { - struct virtio_gpu_ctrl_hdr hdr; - __u32 map_info; - __u32 padding; -}; - -/* VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB */ -struct virtio_gpu_resource_unmap_blob { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; -}; - #endif diff --git a/original/uapi/linux/virtio_ids.h b/original/uapi/linux/virtio_ids.h index bc1c062..585e07b 100644 --- a/original/uapi/linux/virtio_ids.h +++ b/original/uapi/linux/virtio_ids.h @@ -29,30 +29,22 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -#define VIRTIO_ID_NET 1 /* virtio net */ -#define VIRTIO_ID_BLOCK 2 /* virtio block */ -#define VIRTIO_ID_CONSOLE 3 /* virtio console */ -#define VIRTIO_ID_RNG 4 /* virtio rng */ -#define VIRTIO_ID_BALLOON 5 /* virtio balloon */ -#define VIRTIO_ID_IOMEM 6 /* virtio ioMemory */ -#define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */ -#define VIRTIO_ID_SCSI 8 /* virtio scsi */ -#define VIRTIO_ID_9P 9 /* 9p virtio console */ -#define VIRTIO_ID_MAC80211_WLAN 10 /* virtio WLAN MAC */ -#define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */ -#define VIRTIO_ID_CAIF 12 /* Virtio caif */ -#define VIRTIO_ID_MEMORY_BALLOON 13 /* virtio memory balloon */ -#define VIRTIO_ID_GPU 16 /* virtio GPU */ -#define VIRTIO_ID_CLOCK 17 /* virtio clock/timer */ -#define VIRTIO_ID_INPUT 18 /* virtio input */ -#define VIRTIO_ID_VSOCK 19 /* virtio vsock transport */ -#define VIRTIO_ID_CRYPTO 20 /* virtio crypto */ -#define VIRTIO_ID_SIGNAL_DIST 21 /* virtio signal distribution device */ -#define VIRTIO_ID_PSTORE 22 /* virtio pstore device */ -#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */ -#define VIRTIO_ID_MEM 24 /* virtio mem */ -#define VIRTIO_ID_FS 26 /* virtio filesystem */ -#define VIRTIO_ID_PMEM 27 /* virtio pmem */ -#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */ +#define VIRTIO_ID_NET 1 /* virtio net */ +#define VIRTIO_ID_BLOCK 2 /* virtio block */ +#define VIRTIO_ID_CONSOLE 3 /* virtio console */ +#define VIRTIO_ID_RNG 4 /* virtio rng */ +#define VIRTIO_ID_BALLOON 5 /* virtio balloon */ +#define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */ +#define VIRTIO_ID_SCSI 8 /* virtio scsi */ +#define VIRTIO_ID_9P 9 /* 9p virtio console */ +#define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */ +#define VIRTIO_ID_CAIF 12 /* Virtio caif */ +#define VIRTIO_ID_GPU 16 /* virtio GPU */ +#define VIRTIO_ID_INPUT 18 /* virtio input */ +#define VIRTIO_ID_VSOCK 19 /* virtio vsock transport */ +#define VIRTIO_ID_CRYPTO 20 /* virtio crypto */ +#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */ +#define VIRTIO_ID_FS 26 /* virtio filesystem */ +#define VIRTIO_ID_PMEM 27 /* virtio pmem */ #endif /* _LINUX_VIRTIO_IDS_H */ diff --git a/original/uapi/linux/virtio_input.h b/original/uapi/linux/virtio_input.h index 52084b1..a7fe5c8 100644 --- a/original/uapi/linux/virtio_input.h +++ b/original/uapi/linux/virtio_input.h @@ -40,18 +40,18 @@ enum virtio_input_config_select { }; struct virtio_input_absinfo { - __le32 min; - __le32 max; - __le32 fuzz; - __le32 flat; - __le32 res; + __u32 min; + __u32 max; + __u32 fuzz; + __u32 flat; + __u32 res; }; struct virtio_input_devids { - __le16 bustype; - __le16 vendor; - __le16 product; - __le16 version; + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; }; struct virtio_input_config { diff --git a/original/uapi/linux/virtio_mem.h b/original/uapi/linux/virtio_mem.h deleted file mode 100644 index 70e01c6..0000000 --- a/original/uapi/linux/virtio_mem.h +++ /dev/null @@ -1,211 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause */ -/* - * Virtio Mem Device - * - * Copyright Red Hat, Inc. 2020 - * - * Authors: - * David Hildenbrand <david@redhat.com> - * - * This header is BSD licensed so anyone can use the definitions - * to implement compatible drivers/servers: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of IBM nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IBM OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _LINUX_VIRTIO_MEM_H -#define _LINUX_VIRTIO_MEM_H - -#include <linux/types.h> -#include <linux/virtio_types.h> -#include <linux/virtio_ids.h> -#include <linux/virtio_config.h> - -/* - * Each virtio-mem device manages a dedicated region in physical address - * space. Each device can belong to a single NUMA node, multiple devices - * for a single NUMA node are possible. A virtio-mem device is like a - * "resizable DIMM" consisting of small memory blocks that can be plugged - * or unplugged. The device driver is responsible for (un)plugging memory - * blocks on demand. - * - * Virtio-mem devices can only operate on their assigned memory region in - * order to (un)plug memory. A device cannot (un)plug memory belonging to - * other devices. - * - * The "region_size" corresponds to the maximum amount of memory that can - * be provided by a device. The "size" corresponds to the amount of memory - * that is currently plugged. "requested_size" corresponds to a request - * from the device to the device driver to (un)plug blocks. The - * device driver should try to (un)plug blocks in order to reach the - * "requested_size". It is impossible to plug more memory than requested. - * - * The "usable_region_size" represents the memory region that can actually - * be used to (un)plug memory. It is always at least as big as the - * "requested_size" and will grow dynamically. It will only shrink when - * explicitly triggered (VIRTIO_MEM_REQ_UNPLUG). - * - * There are no guarantees what will happen if unplugged memory is - * read/written. Such memory should, in general, not be touched. E.g., - * even writing might succeed, but the values will simply be discarded at - * random points in time. - * - * It can happen that the device cannot process a request, because it is - * busy. The device driver has to retry later. - * - * Usually, during system resets all memory will get unplugged, so the - * device driver can start with a clean state. However, in specific - * scenarios (if the device is busy) it can happen that the device still - * has memory plugged. The device driver can request to unplug all memory - * (VIRTIO_MEM_REQ_UNPLUG) - which might take a while to succeed if the - * device is busy. - */ - -/* --- virtio-mem: feature bits --- */ - -/* node_id is an ACPI PXM and is valid */ -#define VIRTIO_MEM_F_ACPI_PXM 0 - - -/* --- virtio-mem: guest -> host requests --- */ - -/* request to plug memory blocks */ -#define VIRTIO_MEM_REQ_PLUG 0 -/* request to unplug memory blocks */ -#define VIRTIO_MEM_REQ_UNPLUG 1 -/* request to unplug all blocks and shrink the usable size */ -#define VIRTIO_MEM_REQ_UNPLUG_ALL 2 -/* request information about the plugged state of memory blocks */ -#define VIRTIO_MEM_REQ_STATE 3 - -struct virtio_mem_req_plug { - __virtio64 addr; - __virtio16 nb_blocks; - __virtio16 padding[3]; -}; - -struct virtio_mem_req_unplug { - __virtio64 addr; - __virtio16 nb_blocks; - __virtio16 padding[3]; -}; - -struct virtio_mem_req_state { - __virtio64 addr; - __virtio16 nb_blocks; - __virtio16 padding[3]; -}; - -struct virtio_mem_req { - __virtio16 type; - __virtio16 padding[3]; - - union { - struct virtio_mem_req_plug plug; - struct virtio_mem_req_unplug unplug; - struct virtio_mem_req_state state; - } u; -}; - - -/* --- virtio-mem: host -> guest response --- */ - -/* - * Request processed successfully, applicable for - * - VIRTIO_MEM_REQ_PLUG - * - VIRTIO_MEM_REQ_UNPLUG - * - VIRTIO_MEM_REQ_UNPLUG_ALL - * - VIRTIO_MEM_REQ_STATE - */ -#define VIRTIO_MEM_RESP_ACK 0 -/* - * Request denied - e.g. trying to plug more than requested, applicable for - * - VIRTIO_MEM_REQ_PLUG - */ -#define VIRTIO_MEM_RESP_NACK 1 -/* - * Request cannot be processed right now, try again later, applicable for - * - VIRTIO_MEM_REQ_PLUG - * - VIRTIO_MEM_REQ_UNPLUG - * - VIRTIO_MEM_REQ_UNPLUG_ALL - */ -#define VIRTIO_MEM_RESP_BUSY 2 -/* - * Error in request (e.g. addresses/alignment), applicable for - * - VIRTIO_MEM_REQ_PLUG - * - VIRTIO_MEM_REQ_UNPLUG - * - VIRTIO_MEM_REQ_STATE - */ -#define VIRTIO_MEM_RESP_ERROR 3 - - -/* State of memory blocks is "plugged" */ -#define VIRTIO_MEM_STATE_PLUGGED 0 -/* State of memory blocks is "unplugged" */ -#define VIRTIO_MEM_STATE_UNPLUGGED 1 -/* State of memory blocks is "mixed" */ -#define VIRTIO_MEM_STATE_MIXED 2 - -struct virtio_mem_resp_state { - __virtio16 state; -}; - -struct virtio_mem_resp { - __virtio16 type; - __virtio16 padding[3]; - - union { - struct virtio_mem_resp_state state; - } u; -}; - -/* --- virtio-mem: configuration --- */ - -struct virtio_mem_config { - /* Block size and alignment. Cannot change. */ - __le64 block_size; - /* Valid with VIRTIO_MEM_F_ACPI_PXM. Cannot change. */ - __le16 node_id; - __u8 padding[6]; - /* Start address of the memory region. Cannot change. */ - __le64 addr; - /* Region size (maximum). Cannot change. */ - __le64 region_size; - /* - * Currently usable region size. Can grow up to region_size. Can - * shrink due to VIRTIO_MEM_REQ_UNPLUG_ALL (in which case no config - * update will be sent). - */ - __le64 usable_region_size; - /* - * Currently used size. Changes due to plug/unplug requests, but no - * config updates will be sent. - */ - __le64 plugged_size; - /* Requested size. New plug requests cannot exceed it. Can change. */ - __le64 requested_size; -}; - -#endif /* _LINUX_VIRTIO_MEM_H */ diff --git a/original/uapi/linux/virtio_mmio.h b/original/uapi/linux/virtio_mmio.h index 0650f91..c4b0968 100644 --- a/original/uapi/linux/virtio_mmio.h +++ b/original/uapi/linux/virtio_mmio.h @@ -122,17 +122,6 @@ #define VIRTIO_MMIO_QUEUE_USED_LOW 0x0a0 #define VIRTIO_MMIO_QUEUE_USED_HIGH 0x0a4 -/* Shared memory region id */ -#define VIRTIO_MMIO_SHM_SEL 0x0ac - -/* Shared memory region length, 64 bits in two halves */ -#define VIRTIO_MMIO_SHM_LEN_LOW 0x0b0 -#define VIRTIO_MMIO_SHM_LEN_HIGH 0x0b4 - -/* Shared memory region base address, 64 bits in two halves */ -#define VIRTIO_MMIO_SHM_BASE_LOW 0x0b8 -#define VIRTIO_MMIO_SHM_BASE_HIGH 0x0bc - /* Configuration atomicity value */ #define VIRTIO_MMIO_CONFIG_GENERATION 0x0fc diff --git a/original/uapi/linux/virtio_net.h b/original/uapi/linux/virtio_net.h index 3f55a42..a3715a3 100644 --- a/original/uapi/linux/virtio_net.h +++ b/original/uapi/linux/virtio_net.h @@ -57,9 +57,6 @@ * Steering */ #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */ -#define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */ -#define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */ -#define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */ #define VIRTIO_NET_F_STANDBY 62 /* Act as standby for another device * with the same MAC. */ @@ -72,46 +69,29 @@ #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */ #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */ -/* supported/enabled hash types */ -#define VIRTIO_NET_RSS_HASH_TYPE_IPv4 (1 << 0) -#define VIRTIO_NET_RSS_HASH_TYPE_TCPv4 (1 << 1) -#define VIRTIO_NET_RSS_HASH_TYPE_UDPv4 (1 << 2) -#define VIRTIO_NET_RSS_HASH_TYPE_IPv6 (1 << 3) -#define VIRTIO_NET_RSS_HASH_TYPE_TCPv6 (1 << 4) -#define VIRTIO_NET_RSS_HASH_TYPE_UDPv6 (1 << 5) -#define VIRTIO_NET_RSS_HASH_TYPE_IP_EX (1 << 6) -#define VIRTIO_NET_RSS_HASH_TYPE_TCP_EX (1 << 7) -#define VIRTIO_NET_RSS_HASH_TYPE_UDP_EX (1 << 8) - struct virtio_net_config { /* The config defining mac address (if VIRTIO_NET_F_MAC) */ __u8 mac[ETH_ALEN]; /* See VIRTIO_NET_F_STATUS and VIRTIO_NET_S_* above */ - __virtio16 status; + __u16 status; /* Maximum number of each of transmit and receive queues; * see VIRTIO_NET_F_MQ and VIRTIO_NET_CTRL_MQ. * Legal values are between 1 and 0x8000 */ - __virtio16 max_virtqueue_pairs; + __u16 max_virtqueue_pairs; /* Default maximum transmit unit advice */ - __virtio16 mtu; + __u16 mtu; /* * speed, in units of 1Mb. All values 0 to INT_MAX are legal. * Any other value stands for unknown. */ - __le32 speed; + __u32 speed; /* * 0x00 - half duplex * 0x01 - full duplex * Any other value stands for unknown. */ __u8 duplex; - /* maximum size of RSS key */ - __u8 rss_max_key_size; - /* maximum number of indirection table entries */ - __le16 rss_max_indirection_table_length; - /* bitmask of supported VIRTIO_NET_RSS_HASH_ types */ - __le32 supported_hash_types; } __attribute__((packed)); /* @@ -124,7 +104,6 @@ struct virtio_net_config { struct virtio_net_hdr_v1 { #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */ #define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */ -#define VIRTIO_NET_HDR_F_RSC_INFO 4 /* rsc info in csum_ fields */ __u8 flags; #define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */ #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */ @@ -134,46 +113,11 @@ struct virtio_net_hdr_v1 { __u8 gso_type; __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ __virtio16 gso_size; /* Bytes to append to hdr_len per frame */ - union { - struct { - __virtio16 csum_start; - __virtio16 csum_offset; - }; - /* Checksum calculation */ - struct { - /* Position to start checksumming from */ - __virtio16 start; - /* Offset after that to place checksum */ - __virtio16 offset; - } csum; - /* Receive Segment Coalescing */ - struct { - /* Number of coalesced segments */ - __le16 segments; - /* Number of duplicated acks */ - __le16 dup_acks; - } rsc; - }; + __virtio16 csum_start; /* Position to start checksumming from */ + __virtio16 csum_offset; /* Offset after that to place checksum */ __virtio16 num_buffers; /* Number of merged rx buffers */ }; -struct virtio_net_hdr_v1_hash { - struct virtio_net_hdr_v1 hdr; - __le32 hash_value; -#define VIRTIO_NET_HASH_REPORT_NONE 0 -#define VIRTIO_NET_HASH_REPORT_IPv4 1 -#define VIRTIO_NET_HASH_REPORT_TCPv4 2 -#define VIRTIO_NET_HASH_REPORT_UDPv4 3 -#define VIRTIO_NET_HASH_REPORT_IPv6 4 -#define VIRTIO_NET_HASH_REPORT_TCPv6 5 -#define VIRTIO_NET_HASH_REPORT_UDPv6 6 -#define VIRTIO_NET_HASH_REPORT_IPv6_EX 7 -#define VIRTIO_NET_HASH_REPORT_TCPv6_EX 8 -#define VIRTIO_NET_HASH_REPORT_UDPv6_EX 9 - __le16 hash_report; - __le16 padding; -}; - #ifndef VIRTIO_NET_NO_LEGACY /* This header comes first in the scatter-gather list. * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must @@ -284,9 +228,7 @@ struct virtio_net_ctrl_mac { /* * Control Receive Flow Steering - */ -#define VIRTIO_NET_CTRL_MQ 4 -/* + * * The command VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET * enables Receive Flow Steering, specifying the number of the transmit and * receive queues that will be used. After the command is consumed and acked by @@ -299,48 +241,12 @@ struct virtio_net_ctrl_mq { __virtio16 virtqueue_pairs; }; +#define VIRTIO_NET_CTRL_MQ 4 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 /* - * The command VIRTIO_NET_CTRL_MQ_RSS_CONFIG has the same effect as - * VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET does and additionally configures - * the receive steering to use a hash calculated for incoming packet - * to decide on receive virtqueue to place the packet. The command - * also provides parameters to calculate a hash and receive virtqueue. - */ -struct virtio_net_rss_config { - __le32 hash_types; - __le16 indirection_table_mask; - __le16 unclassified_queue; - __le16 indirection_table[1/* + indirection_table_mask */]; - __le16 max_tx_vq; - __u8 hash_key_length; - __u8 hash_key_data[/* hash_key_length */]; -}; - - #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1 - -/* - * The command VIRTIO_NET_CTRL_MQ_HASH_CONFIG requests the device - * to include in the virtio header of the packet the value of the - * calculated hash and the report type of hash. It also provides - * parameters for hash calculation. The command requires feature - * VIRTIO_NET_F_HASH_REPORT to be negotiated to extend the - * layout of virtio header as defined in virtio_net_hdr_v1_hash. - */ -struct virtio_net_hash_config { - __le32 hash_types; - /* for compatibility with virtio_net_rss_config */ - __le16 reserved[4]; - __u8 hash_key_length; - __u8 hash_key_data[/* hash_key_length */]; -}; - - #define VIRTIO_NET_CTRL_MQ_HASH_CONFIG 2 - -/* * Control network offloads * * Reconfigures the network offloads that Guest can handle. diff --git a/original/uapi/linux/virtio_pci.h b/original/uapi/linux/virtio_pci.h index 3a86f36..90007a1 100644 --- a/original/uapi/linux/virtio_pci.h +++ b/original/uapi/linux/virtio_pci.h @@ -113,8 +113,6 @@ #define VIRTIO_PCI_CAP_DEVICE_CFG 4 /* PCI configuration access */ #define VIRTIO_PCI_CAP_PCI_CFG 5 -/* Additional shared memory capability */ -#define VIRTIO_PCI_CAP_SHARED_MEMORY_CFG 8 /* This is the PCI capability header: */ struct virtio_pci_cap { @@ -123,18 +121,11 @@ struct virtio_pci_cap { __u8 cap_len; /* Generic PCI field: capability length */ __u8 cfg_type; /* Identifies the structure. */ __u8 bar; /* Where to find it. */ - __u8 id; /* Multiple capabilities of the same type */ - __u8 padding[2]; /* Pad to full dword. */ + __u8 padding[3]; /* Pad to full dword. */ __le32 offset; /* Offset within bar. */ __le32 length; /* Length of the structure, in bytes. */ }; -struct virtio_pci_cap64 { - struct virtio_pci_cap cap; - __le32 offset_hi; /* Most sig 32 bits of offset */ - __le32 length_hi; /* Most sig 32 bits of length */ -}; - struct virtio_pci_notify_cap { struct virtio_pci_cap cap; __le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */ diff --git a/original/uapi/linux/virtio_pmem.h b/original/uapi/linux/virtio_pmem.h index d676b36..b022787 100644 --- a/original/uapi/linux/virtio_pmem.h +++ b/original/uapi/linux/virtio_pmem.h @@ -15,8 +15,8 @@ #include <linux/virtio_config.h> struct virtio_pmem_config { - __le64 start; - __le64 size; + __u64 start; + __u64 size; }; #define VIRTIO_PMEM_REQ_TYPE_FLUSH 0 diff --git a/original/uapi/linux/virtio_ring.h b/original/uapi/linux/virtio_ring.h index 476d3e5..559f42e 100644 --- a/original/uapi/linux/virtio_ring.h +++ b/original/uapi/linux/virtio_ring.h @@ -86,13 +86,6 @@ * at the end of the used ring. Guest should ignore the used->flags field. */ #define VIRTIO_RING_F_EVENT_IDX 29 -/* Alignment requirements for vring elements. - * When using pre-virtio 1.0 layout, these fall out naturally. - */ -#define VRING_AVAIL_ALIGN_SIZE 2 -#define VRING_USED_ALIGN_SIZE 4 -#define VRING_DESC_ALIGN_SIZE 16 - /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ struct vring_desc { /* Address (guest-physical). */ @@ -119,47 +112,28 @@ struct vring_used_elem { __virtio32 len; }; -typedef struct vring_used_elem __attribute__((aligned(VRING_USED_ALIGN_SIZE))) - vring_used_elem_t; - struct vring_used { __virtio16 flags; __virtio16 idx; - vring_used_elem_t ring[]; + struct vring_used_elem ring[]; }; -/* - * The ring element addresses are passed between components with different - * alignments assumptions. Thus, we might need to decrease the compiler-selected - * alignment, and so must use a typedef to make sure the aligned attribute - * actually takes hold: - * - * https://gcc.gnu.org/onlinedocs//gcc/Common-Type-Attributes.html#Common-Type-Attributes - * - * When used on a struct, or struct member, the aligned attribute can only - * increase the alignment; in order to decrease it, the packed attribute must - * be specified as well. When used as part of a typedef, the aligned attribute - * can both increase and decrease alignment, and specifying the packed - * attribute generates a warning. - */ -typedef struct vring_desc __attribute__((aligned(VRING_DESC_ALIGN_SIZE))) - vring_desc_t; -typedef struct vring_avail __attribute__((aligned(VRING_AVAIL_ALIGN_SIZE))) - vring_avail_t; -typedef struct vring_used __attribute__((aligned(VRING_USED_ALIGN_SIZE))) - vring_used_t; - struct vring { unsigned int num; - vring_desc_t *desc; + struct vring_desc *desc; - vring_avail_t *avail; + struct vring_avail *avail; - vring_used_t *used; + struct vring_used *used; }; -#ifndef VIRTIO_RING_NO_LEGACY +/* Alignment requirements for vring elements. + * When using pre-virtio 1.0 layout, these fall out naturally. + */ +#define VRING_AVAIL_ALIGN_SIZE 2 +#define VRING_USED_ALIGN_SIZE 4 +#define VRING_DESC_ALIGN_SIZE 16 /* The standard layout for the ring is a continuous chunk of memory which looks * like this. We assume num is a power of 2. @@ -207,8 +181,6 @@ static inline unsigned vring_size(unsigned int num, unsigned long align) + sizeof(__virtio16) * 3 + sizeof(struct vring_used_elem) * num; } -#endif /* VIRTIO_RING_NO_LEGACY */ - /* The following is used with USED_EVENT_IDX and AVAIL_EVENT_IDX */ /* Assuming a given event_idx value from the other side, if * we have just incremented index from old to new_idx, diff --git a/original/uapi/linux/virtio_scsi.h b/original/uapi/linux/virtio_scsi.h index 0abaae4..cc18ef8 100644 --- a/original/uapi/linux/virtio_scsi.h +++ b/original/uapi/linux/virtio_scsi.h @@ -103,16 +103,16 @@ struct virtio_scsi_event { } __attribute__((packed)); struct virtio_scsi_config { - __virtio32 num_queues; - __virtio32 seg_max; - __virtio32 max_sectors; - __virtio32 cmd_per_lun; - __virtio32 event_info_size; - __virtio32 sense_size; - __virtio32 cdb_size; - __virtio16 max_channel; - __virtio16 max_target; - __virtio32 max_lun; + __u32 num_queues; + __u32 seg_max; + __u32 max_sectors; + __u32 cmd_per_lun; + __u32 event_info_size; + __u32 sense_size; + __u32 cdb_size; + __u16 max_channel; + __u16 max_target; + __u32 max_lun; } __attribute__((packed)); /* Feature Bits */ diff --git a/original/uapi/linux/vm_sockets.h b/original/uapi/linux/vm_sockets.h index 46918a1..68d57c5 100644 --- a/original/uapi/linux/vm_sockets.h +++ b/original/uapi/linux/vm_sockets.h @@ -18,7 +18,6 @@ #define _UAPI_VM_SOCKETS_H #include <linux/socket.h> -#include <linux/types.h> /* Option name for STREAM socket buffer size. Use as the option name in * setsockopt(3) or getsockopt(3) to set or get an unsigned long long that @@ -100,13 +99,11 @@ #define VMADDR_CID_HYPERVISOR 0 -/* Use this as the destination CID in an address when referring to the - * local communication (loopback). - * (This was VMADDR_CID_RESERVED, but even VMCI doesn't use it anymore, - * it was a legacy value from an older release). +/* This CID is specific to VMCI and can be considered reserved (even VMCI + * doesn't use it anymore, it's a legacy value from an older release). */ -#define VMADDR_CID_LOCAL 1 +#define VMADDR_CID_RESERVED 1 /* Use this as the destination CID in an address when referring to the host * (any process other than the hypervisor). VMCI relies on it being 2, but @@ -115,26 +112,6 @@ #define VMADDR_CID_HOST 2 -/* The current default use case for the vsock channel is the following: - * local vsock communication between guest and host and nested VMs setup. - * In addition to this, implicitly, the vsock packets are forwarded to the host - * if no host->guest vsock transport is set. - * - * Set this flag value in the sockaddr_vm corresponding field if the vsock - * packets need to be always forwarded to the host. Using this behavior, - * vsock communication between sibling VMs can be setup. - * - * This way can explicitly distinguish between vsock channels created for - * different use cases, such as nested VMs (or local communication between - * guest and host) and sibling VMs. - * - * The flag can be set in the connect logic in the user space application flow. - * In the listen logic (from kernel space) the flag is set on the remote peer - * address. This happens for an incoming connection when it is routed from the - * host and comes from the guest (local CID and remote CID > VMADDR_CID_HOST). - */ -#define VMADDR_FLAG_TO_HOST 0x01 - /* Invalid vSockets version. */ #define VM_SOCKETS_INVALID_VERSION -1U @@ -169,13 +146,10 @@ struct sockaddr_vm { unsigned short svm_reserved1; unsigned int svm_port; unsigned int svm_cid; - __u8 svm_flags; unsigned char svm_zero[sizeof(struct sockaddr) - sizeof(sa_family_t) - sizeof(unsigned short) - - sizeof(unsigned int) - - sizeof(unsigned int) - - sizeof(__u8)]; + sizeof(unsigned int) - sizeof(unsigned int)]; }; #define IOCTL_VM_SOCKETS_GET_LOCAL_CID _IO(7, 0xb9) diff --git a/original/uapi/linux/vsoc_shm.h b/original/uapi/linux/vsoc_shm.h new file mode 100644 index 0000000..6291fb2 --- /dev/null +++ b/original/uapi/linux/vsoc_shm.h @@ -0,0 +1,295 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2017 Google, Inc. + * + */ + +#ifndef _UAPI_LINUX_VSOC_SHM_H +#define _UAPI_LINUX_VSOC_SHM_H + +#include <linux/types.h> + +/** + * A permission is a token that permits a receiver to read and/or write an area + * of memory within a Vsoc region. + * + * An fd_scoped permission grants both read and write access, and can be + * attached to a file description (see open(2)). + * Ownership of the area can then be shared by passing a file descriptor + * among processes. + * + * begin_offset and end_offset define the area of memory that is controlled by + * the permission. owner_offset points to a word, also in shared memory, that + * controls ownership of the area. + * + * ownership of the region expires when the associated file description is + * released. + * + * At most one permission can be attached to each file description. + * + * This is useful when implementing HALs like gralloc that scope and pass + * ownership of shared resources via file descriptors. + * + * The caller is responsibe for doing any fencing. + * + * The calling process will normally identify a currently free area of + * memory. It will construct a proposed fd_scoped_permission_arg structure: + * + * begin_offset and end_offset describe the area being claimed + * + * owner_offset points to the location in shared memory that indicates the + * owner of the area. + * + * owned_value is the value that will be stored in owner_offset iff the + * permission can be granted. It must be different than VSOC_REGION_FREE. + * + * Two fd_scoped_permission structures are compatible if they vary only by + * their owned_value fields. + * + * The driver ensures that, for any group of simultaneous callers proposing + * compatible fd_scoped_permissions, it will accept exactly one of the + * propopsals. The other callers will get a failure with errno of EAGAIN. + * + * A process receiving a file descriptor can identify the region being + * granted using the VSOC_GET_FD_SCOPED_PERMISSION ioctl. + */ +struct fd_scoped_permission { + __u32 begin_offset; + __u32 end_offset; + __u32 owner_offset; + __u32 owned_value; +}; + +/* + * This value represents a free area of memory. The driver expects to see this + * value at owner_offset when creating a permission otherwise it will not do it, + * and will write this value back once the permission is no longer needed. + */ +#define VSOC_REGION_FREE ((__u32)0) + +/** + * ioctl argument for VSOC_CREATE_FD_SCOPE_PERMISSION + */ +struct fd_scoped_permission_arg { + struct fd_scoped_permission perm; + __s32 managed_region_fd; +}; + +#define VSOC_NODE_FREE ((__u32)0) + +/* + * Describes a signal table in shared memory. Each non-zero entry in the + * table indicates that the receiver should signal the futex at the given + * offset. Offsets are relative to the region, not the shared memory window. + * + * interrupt_signalled_offset is used to reliably signal interrupts across the + * vmm boundary. There are two roles: transmitter and receiver. For example, + * in the host_to_guest_signal_table the host is the transmitter and the + * guest is the receiver. The protocol is as follows: + * + * 1. The transmitter should convert the offset of the futex to an offset + * in the signal table [0, (1 << num_nodes_lg2)) + * The transmitter can choose any appropriate hashing algorithm, including + * hash = futex_offset & ((1 << num_nodes_lg2) - 1) + * + * 3. The transmitter should atomically compare and swap futex_offset with 0 + * at hash. There are 3 possible outcomes + * a. The swap fails because the futex_offset is already in the table. + * The transmitter should stop. + * b. Some other offset is in the table. This is a hash collision. The + * transmitter should move to another table slot and try again. One + * possible algorithm: + * hash = (hash + 1) & ((1 << num_nodes_lg2) - 1) + * c. The swap worked. Continue below. + * + * 3. The transmitter atomically swaps 1 with the value at the + * interrupt_signalled_offset. There are two outcomes: + * a. The prior value was 1. In this case an interrupt has already been + * posted. The transmitter is done. + * b. The prior value was 0, indicating that the receiver may be sleeping. + * The transmitter will issue an interrupt. + * + * 4. On waking the receiver immediately exchanges a 0 with the + * interrupt_signalled_offset. If it receives a 0 then this a spurious + * interrupt. That may occasionally happen in the current protocol, but + * should be rare. + * + * 5. The receiver scans the signal table by atomicaly exchanging 0 at each + * location. If a non-zero offset is returned from the exchange the + * receiver wakes all sleepers at the given offset: + * futex((int*)(region_base + old_value), FUTEX_WAKE, MAX_INT); + * + * 6. The receiver thread then does a conditional wait, waking immediately + * if the value at interrupt_signalled_offset is non-zero. This catches cases + * here additional signals were posted while the table was being scanned. + * On the guest the wait is handled via the VSOC_WAIT_FOR_INCOMING_INTERRUPT + * ioctl. + */ +struct vsoc_signal_table_layout { + /* log_2(Number of signal table entries) */ + __u32 num_nodes_lg2; + /* + * Offset to the first signal table entry relative to the start of the + * region + */ + __u32 futex_uaddr_table_offset; + /* + * Offset to an atomic_t / atomic uint32_t. A non-zero value indicates + * that one or more offsets are currently posted in the table. + * semi-unique access to an entry in the table + */ + __u32 interrupt_signalled_offset; +}; + +#define VSOC_REGION_WHOLE ((__s32)0) +#define VSOC_DEVICE_NAME_SZ 16 + +/** + * Each HAL would (usually) talk to a single device region + * Mulitple entities care about these regions: + * - The ivshmem_server will populate the regions in shared memory + * - The guest kernel will read the region, create minor device nodes, and + * allow interested parties to register for FUTEX_WAKE events in the region + * - HALs will access via the minor device nodes published by the guest kernel + * - Host side processes will access the region via the ivshmem_server: + * 1. Pass name to ivshmem_server at a UNIX socket + * 2. ivshmemserver will reply with 2 fds: + * - host->guest doorbell fd + * - guest->host doorbell fd + * - fd for the shared memory region + * - region offset + * 3. Start a futex receiver thread on the doorbell fd pointed at the + * signal_nodes + */ +struct vsoc_device_region { + __u16 current_version; + __u16 min_compatible_version; + __u32 region_begin_offset; + __u32 region_end_offset; + __u32 offset_of_region_data; + struct vsoc_signal_table_layout guest_to_host_signal_table; + struct vsoc_signal_table_layout host_to_guest_signal_table; + /* Name of the device. Must always be terminated with a '\0', so + * the longest supported device name is 15 characters. + */ + char device_name[VSOC_DEVICE_NAME_SZ]; + /* There are two ways that permissions to access regions are handled: + * - When subdivided_by is VSOC_REGION_WHOLE, any process that can + * open the device node for the region gains complete access to it. + * - When subdivided is set processes that open the region cannot + * access it. Access to a sub-region must be established by invoking + * the VSOC_CREATE_FD_SCOPE_PERMISSION ioctl on the region + * referenced in subdivided_by, providing a fileinstance + * (represented by a fd) opened on this region. + */ + __u32 managed_by; +}; + +/* + * The vsoc layout descriptor. + * The first 4K should be reserved for the shm header and region descriptors. + * The regions should be page aligned. + */ + +struct vsoc_shm_layout_descriptor { + __u16 major_version; + __u16 minor_version; + + /* size of the shm. This may be redundant but nice to have */ + __u32 size; + + /* number of shared memory regions */ + __u32 region_count; + + /* The offset to the start of region descriptors */ + __u32 vsoc_region_desc_offset; +}; + +/* + * This specifies the current version that should be stored in + * vsoc_shm_layout_descriptor.major_version and + * vsoc_shm_layout_descriptor.minor_version. + * It should be updated only if the vsoc_device_region and + * vsoc_shm_layout_descriptor structures have changed. + * Versioning within each region is transferred + * via the min_compatible_version and current_version fields in + * vsoc_device_region. The driver does not consult these fields: they are left + * for the HALs and host processes and will change independently of the layout + * version. + */ +#define CURRENT_VSOC_LAYOUT_MAJOR_VERSION 2 +#define CURRENT_VSOC_LAYOUT_MINOR_VERSION 0 + +#define VSOC_CREATE_FD_SCOPED_PERMISSION \ + _IOW(0xF5, 0, struct fd_scoped_permission) +#define VSOC_GET_FD_SCOPED_PERMISSION _IOR(0xF5, 1, struct fd_scoped_permission) + +/* + * This is used to signal the host to scan the guest_to_host_signal_table + * for new futexes to wake. This sends an interrupt if one is not already + * in flight. + */ +#define VSOC_MAYBE_SEND_INTERRUPT_TO_HOST _IO(0xF5, 2) + +/* + * When this returns the guest will scan host_to_guest_signal_table to + * check for new futexes to wake. + */ +/* TODO(ghartman): Consider moving this to the bottom half */ +#define VSOC_WAIT_FOR_INCOMING_INTERRUPT _IO(0xF5, 3) + +/* + * Guest HALs will use this to retrieve the region description after + * opening their device node. + */ +#define VSOC_DESCRIBE_REGION _IOR(0xF5, 4, struct vsoc_device_region) + +/* + * Wake any threads that may be waiting for a host interrupt on this region. + * This is mostly used during shutdown. + */ +#define VSOC_SELF_INTERRUPT _IO(0xF5, 5) + +/* + * This is used to signal the host to scan the guest_to_host_signal_table + * for new futexes to wake. This sends an interrupt unconditionally. + */ +#define VSOC_SEND_INTERRUPT_TO_HOST _IO(0xF5, 6) + +enum wait_types { + VSOC_WAIT_UNDEFINED = 0, + VSOC_WAIT_IF_EQUAL = 1, + VSOC_WAIT_IF_EQUAL_TIMEOUT = 2 +}; + +/* + * Wait for a condition to be true + * + * Note, this is sized and aligned so the 32 bit and 64 bit layouts are + * identical. + */ +struct vsoc_cond_wait { + /* Input: Offset of the 32 bit word to check */ + __u32 offset; + /* Input: Value that will be compared with the offset */ + __u32 value; + /* Monotonic time to wake at in seconds */ + __u64 wake_time_sec; + /* Input: Monotonic time to wait in nanoseconds */ + __u32 wake_time_nsec; + /* Input: Type of wait */ + __u32 wait_type; + /* Output: Number of times the thread woke before returning. */ + __u32 wakes; + /* Ensure that we're 8-byte aligned and 8 byte length for 32/64 bit + * compatibility. + */ + __u32 reserved_1; +}; + +#define VSOC_COND_WAIT _IOWR(0xF5, 7, struct vsoc_cond_wait) + +/* Wake any local threads waiting at the offset given in arg */ +#define VSOC_COND_WAKE _IO(0xF5, 8) + +#endif /* _UAPI_LINUX_VSOC_SHM_H */ diff --git a/original/uapi/linux/watch_queue.h b/original/uapi/linux/watch_queue.h deleted file mode 100644 index c3d8320..0000000 --- a/original/uapi/linux/watch_queue.h +++ /dev/null @@ -1,104 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_LINUX_WATCH_QUEUE_H -#define _UAPI_LINUX_WATCH_QUEUE_H - -#include <linux/types.h> -#include <linux/fcntl.h> -#include <linux/ioctl.h> - -#define O_NOTIFICATION_PIPE O_EXCL /* Parameter to pipe2() selecting notification pipe */ - -#define IOC_WATCH_QUEUE_SET_SIZE _IO('W', 0x60) /* Set the size in pages */ -#define IOC_WATCH_QUEUE_SET_FILTER _IO('W', 0x61) /* Set the filter */ - -enum watch_notification_type { - WATCH_TYPE_META = 0, /* Special record */ - WATCH_TYPE_KEY_NOTIFY = 1, /* Key change event notification */ - WATCH_TYPE__NR = 2 -}; - -enum watch_meta_notification_subtype { - WATCH_META_REMOVAL_NOTIFICATION = 0, /* Watched object was removed */ - WATCH_META_LOSS_NOTIFICATION = 1, /* Data loss occurred */ -}; - -/* - * Notification record header. This is aligned to 64-bits so that subclasses - * can contain __u64 fields. - */ -struct watch_notification { - __u32 type:24; /* enum watch_notification_type */ - __u32 subtype:8; /* Type-specific subtype (filterable) */ - __u32 info; -#define WATCH_INFO_LENGTH 0x0000007f /* Length of record */ -#define WATCH_INFO_LENGTH__SHIFT 0 -#define WATCH_INFO_ID 0x0000ff00 /* ID of watchpoint */ -#define WATCH_INFO_ID__SHIFT 8 -#define WATCH_INFO_TYPE_INFO 0xffff0000 /* Type-specific info */ -#define WATCH_INFO_TYPE_INFO__SHIFT 16 -#define WATCH_INFO_FLAG_0 0x00010000 /* Type-specific info, flag bit 0 */ -#define WATCH_INFO_FLAG_1 0x00020000 /* ... */ -#define WATCH_INFO_FLAG_2 0x00040000 -#define WATCH_INFO_FLAG_3 0x00080000 -#define WATCH_INFO_FLAG_4 0x00100000 -#define WATCH_INFO_FLAG_5 0x00200000 -#define WATCH_INFO_FLAG_6 0x00400000 -#define WATCH_INFO_FLAG_7 0x00800000 -}; - -/* - * Notification filtering rules (IOC_WATCH_QUEUE_SET_FILTER). - */ -struct watch_notification_type_filter { - __u32 type; /* Type to apply filter to */ - __u32 info_filter; /* Filter on watch_notification::info */ - __u32 info_mask; /* Mask of relevant bits in info_filter */ - __u32 subtype_filter[8]; /* Bitmask of subtypes to filter on */ -}; - -struct watch_notification_filter { - __u32 nr_filters; /* Number of filters */ - __u32 __reserved; /* Must be 0 */ - struct watch_notification_type_filter filters[]; -}; - - -/* - * Extended watch removal notification. This is used optionally if the type - * wants to indicate an identifier for the object being watched, if there is - * such. This can be distinguished by the length. - * - * type -> WATCH_TYPE_META - * subtype -> WATCH_META_REMOVAL_NOTIFICATION - */ -struct watch_notification_removal { - struct watch_notification watch; - __u64 id; /* Type-dependent identifier */ -}; - -/* - * Type of key/keyring change notification. - */ -enum key_notification_subtype { - NOTIFY_KEY_INSTANTIATED = 0, /* Key was instantiated (aux is error code) */ - NOTIFY_KEY_UPDATED = 1, /* Key was updated */ - NOTIFY_KEY_LINKED = 2, /* Key (aux) was added to watched keyring */ - NOTIFY_KEY_UNLINKED = 3, /* Key (aux) was removed from watched keyring */ - NOTIFY_KEY_CLEARED = 4, /* Keyring was cleared */ - NOTIFY_KEY_REVOKED = 5, /* Key was revoked */ - NOTIFY_KEY_INVALIDATED = 6, /* Key was invalidated */ - NOTIFY_KEY_SETATTR = 7, /* Key's attributes got changed */ -}; - -/* - * Key/keyring notification record. - * - watch.type = WATCH_TYPE_KEY_NOTIFY - * - watch.subtype = enum key_notification_type - */ -struct key_notification { - struct watch_notification watch; - __u32 key_id; /* The key/keyring affected */ - __u32 aux; /* Per-type auxiliary data */ -}; - -#endif /* _UAPI_LINUX_WATCH_QUEUE_H */ diff --git a/original/uapi/linux/wimax.h b/original/uapi/linux/wimax.h new file mode 100644 index 0000000..9f6b77a --- /dev/null +++ b/original/uapi/linux/wimax.h @@ -0,0 +1,239 @@ +/* + * Linux WiMax + * API for user space + * + * + * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * Intel Corporation <linux-wimax@intel.com> + * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> + * - Initial implementation + * + * + * This file declares the user/kernel protocol that is spoken over + * Generic Netlink, as well as any type declaration that is to be used + * by kernel and user space. + * + * It is intended for user space to clone it verbatim to use it as a + * primary reference for definitions. + * + * Stuff intended for kernel usage as well as full protocol and stack + * documentation is rooted in include/net/wimax.h. + */ + +#ifndef __LINUX__WIMAX_H__ +#define __LINUX__WIMAX_H__ + +#include <linux/types.h> + +enum { + /** + * Version of the interface (unsigned decimal, MMm, max 25.5) + * M - Major: change if removing or modifying an existing call. + * m - minor: change when adding a new call + */ + WIMAX_GNL_VERSION = 01, + /* Generic NetLink attributes */ + WIMAX_GNL_ATTR_INVALID = 0x00, + WIMAX_GNL_ATTR_MAX = 10, +}; + + +/* + * Generic NetLink operations + * + * Most of these map to an API call; _OP_ stands for operation, _RP_ + * for reply and _RE_ for report (aka: signal). + */ +enum { + WIMAX_GNL_OP_MSG_FROM_USER, /* User to kernel message */ + WIMAX_GNL_OP_MSG_TO_USER, /* Kernel to user message */ + WIMAX_GNL_OP_RFKILL, /* Run wimax_rfkill() */ + WIMAX_GNL_OP_RESET, /* Run wimax_rfkill() */ + WIMAX_GNL_RE_STATE_CHANGE, /* Report: status change */ + WIMAX_GNL_OP_STATE_GET, /* Request for current state */ +}; + + +/* Message from user / to user */ +enum { + WIMAX_GNL_MSG_IFIDX = 1, + WIMAX_GNL_MSG_PIPE_NAME, + WIMAX_GNL_MSG_DATA, +}; + + +/* + * wimax_rfkill() + * + * The state of the radio (ON/OFF) is mapped to the rfkill subsystem's + * switch state (DISABLED/ENABLED). + */ +enum wimax_rf_state { + WIMAX_RF_OFF = 0, /* Radio is off, rfkill on/enabled */ + WIMAX_RF_ON = 1, /* Radio is on, rfkill off/disabled */ + WIMAX_RF_QUERY = 2, +}; + +/* Attributes */ +enum { + WIMAX_GNL_RFKILL_IFIDX = 1, + WIMAX_GNL_RFKILL_STATE, +}; + + +/* Attributes for wimax_reset() */ +enum { + WIMAX_GNL_RESET_IFIDX = 1, +}; + +/* Attributes for wimax_state_get() */ +enum { + WIMAX_GNL_STGET_IFIDX = 1, +}; + +/* + * Attributes for the Report State Change + * + * For now we just have the old and new states; new attributes might + * be added later on. + */ +enum { + WIMAX_GNL_STCH_IFIDX = 1, + WIMAX_GNL_STCH_STATE_OLD, + WIMAX_GNL_STCH_STATE_NEW, +}; + + +/** + * enum wimax_st - The different states of a WiMAX device + * @__WIMAX_ST_NULL: The device structure has been allocated and zeroed, + * but still wimax_dev_add() hasn't been called. There is no state. + * + * @WIMAX_ST_DOWN: The device has been registered with the WiMAX and + * networking stacks, but it is not initialized (normally that is + * done with 'ifconfig DEV up' [or equivalent], which can upload + * firmware and enable communications with the device). + * In this state, the device is powered down and using as less + * power as possible. + * This state is the default after a call to wimax_dev_add(). It + * is ok to have drivers move directly to %WIMAX_ST_UNINITIALIZED + * or %WIMAX_ST_RADIO_OFF in _probe() after the call to + * wimax_dev_add(). + * It is recommended that the driver leaves this state when + * calling 'ifconfig DEV up' and enters it back on 'ifconfig DEV + * down'. + * + * @__WIMAX_ST_QUIESCING: The device is being torn down, so no API + * operations are allowed to proceed except the ones needed to + * complete the device clean up process. + * + * @WIMAX_ST_UNINITIALIZED: [optional] Communication with the device + * is setup, but the device still requires some configuration + * before being operational. + * Some WiMAX API calls might work. + * + * @WIMAX_ST_RADIO_OFF: The device is fully up; radio is off (wether + * by hardware or software switches). + * It is recommended to always leave the device in this state + * after initialization. + * + * @WIMAX_ST_READY: The device is fully up and radio is on. + * + * @WIMAX_ST_SCANNING: [optional] The device has been instructed to + * scan. In this state, the device cannot be actively connected to + * a network. + * + * @WIMAX_ST_CONNECTING: The device is connecting to a network. This + * state exists because in some devices, the connect process can + * include a number of negotiations between user space, kernel + * space and the device. User space needs to know what the device + * is doing. If the connect sequence in a device is atomic and + * fast, the device can transition directly to CONNECTED + * + * @WIMAX_ST_CONNECTED: The device is connected to a network. + * + * @__WIMAX_ST_INVALID: This is an invalid state used to mark the + * maximum numeric value of states. + * + * Description: + * + * Transitions from one state to another one are atomic and can only + * be caused in kernel space with wimax_state_change(). To read the + * state, use wimax_state_get(). + * + * States starting with __ are internal and shall not be used or + * referred to by drivers or userspace. They look ugly, but that's the + * point -- if any use is made non-internal to the stack, it is easier + * to catch on review. + * + * All API operations [with well defined exceptions] will take the + * device mutex before starting and then check the state. If the state + * is %__WIMAX_ST_NULL, %WIMAX_ST_DOWN, %WIMAX_ST_UNINITIALIZED or + * %__WIMAX_ST_QUIESCING, it will drop the lock and quit with + * -%EINVAL, -%ENOMEDIUM, -%ENOTCONN or -%ESHUTDOWN. + * + * The order of the definitions is important, so we can do numerical + * comparisons (eg: < %WIMAX_ST_RADIO_OFF means the device is not ready + * to operate). + */ +/* + * The allowed state transitions are described in the table below + * (states in rows can go to states in columns where there is an X): + * + * UNINI RADIO READY SCAN CONNEC CONNEC + * NULL DOWN QUIESCING TIALIZED OFF NING TING TED + * NULL - x + * DOWN - x x x + * QUIESCING x - + * UNINITIALIZED x - x + * RADIO_OFF x - x + * READY x x - x x x + * SCANNING x x x - x x + * CONNECTING x x x x - x + * CONNECTED x x x - + * + * This table not available in kernel-doc because the formatting messes it up. + */ + enum wimax_st { + __WIMAX_ST_NULL = 0, + WIMAX_ST_DOWN, + __WIMAX_ST_QUIESCING, + WIMAX_ST_UNINITIALIZED, + WIMAX_ST_RADIO_OFF, + WIMAX_ST_READY, + WIMAX_ST_SCANNING, + WIMAX_ST_CONNECTING, + WIMAX_ST_CONNECTED, + __WIMAX_ST_INVALID /* Always keep last */ +}; + + +#endif /* #ifndef __LINUX__WIMAX_H__ */ diff --git a/original/uapi/linux/wimax/i2400m.h b/original/uapi/linux/wimax/i2400m.h new file mode 100644 index 0000000..fd198bc --- /dev/null +++ b/original/uapi/linux/wimax/i2400m.h @@ -0,0 +1,572 @@ +/* + * Intel Wireless WiMax Connection 2400m + * Host-Device protocol interface definitions + * + * + * Copyright (C) 2007-2008 Intel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * Intel Corporation <linux-wimax@intel.com> + * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> + * - Initial implementation + * + * + * This header defines the data structures and constants used to + * communicate with the device. + * + * BOOTMODE/BOOTROM/FIRMWARE UPLOAD PROTOCOL + * + * The firmware upload protocol is quite simple and only requires a + * handful of commands. See drivers/net/wimax/i2400m/fw.c for more + * details. + * + * The BCF data structure is for the firmware file header. + * + * + * THE DATA / CONTROL PROTOCOL + * + * This is the normal protocol spoken with the device once the + * firmware is uploaded. It transports data payloads and control + * messages back and forth. + * + * It consists 'messages' that pack one or more payloads each. The + * format is described in detail in drivers/net/wimax/i2400m/rx.c and + * tx.c. + * + * + * THE L3L4 PROTOCOL + * + * The term L3L4 refers to Layer 3 (the device), Layer 4 (the + * driver/host software). + * + * This is the control protocol used by the host to control the i2400m + * device (scan, connect, disconnect...). This is sent to / received + * as control frames. These frames consist of a header and zero or + * more TLVs with information. We call each control frame a "message". + * + * Each message is composed of: + * + * HEADER + * [TLV0 + PAYLOAD0] + * [TLV1 + PAYLOAD1] + * [...] + * [TLVN + PAYLOADN] + * + * The HEADER is defined by 'struct i2400m_l3l4_hdr'. The payloads are + * defined by a TLV structure (Type Length Value) which is a 'header' + * (struct i2400m_tlv_hdr) and then the payload. + * + * All integers are represented as Little Endian. + * + * - REQUESTS AND EVENTS + * + * The requests can be clasified as follows: + * + * COMMAND: implies a request from the host to the device requesting + * an action being performed. The device will reply with a + * message (with the same type as the command), status and + * no (TLV) payload. Execution of a command might cause + * events (of different type) to be sent later on as + * device's state changes. + * + * GET/SET: similar to COMMAND, but will not cause other + * EVENTs. The reply, in the case of GET, will contain + * TLVs with the requested information. + * + * EVENT: asynchronous messages sent from the device, maybe as a + * consequence of previous COMMANDs but disassociated from + * them. + * + * Only one request might be pending at the same time (ie: don't + * parallelize nor post another GET request before the previous + * COMMAND has been acknowledged with it's corresponding reply by the + * device). + * + * The different requests and their formats are described below: + * + * I2400M_MT_* Message types + * I2400M_MS_* Message status (for replies, events) + * i2400m_tlv_* TLVs + * + * data types are named 'struct i2400m_msg_OPNAME', OPNAME matching the + * operation. + */ + +#ifndef __LINUX__WIMAX__I2400M_H__ +#define __LINUX__WIMAX__I2400M_H__ + +#include <linux/types.h> +#include <linux/if_ether.h> + +/* + * Host Device Interface (HDI) common to all busses + */ + +/* Boot-mode (firmware upload mode) commands */ + +/* Header for the firmware file */ +struct i2400m_bcf_hdr { + __le32 module_type; + __le32 header_len; + __le32 header_version; + __le32 module_id; + __le32 module_vendor; + __le32 date; /* BCD YYYMMDD */ + __le32 size; /* in dwords */ + __le32 key_size; /* in dwords */ + __le32 modulus_size; /* in dwords */ + __le32 exponent_size; /* in dwords */ + __u8 reserved[88]; +} __attribute__ ((packed)); + +/* Boot mode opcodes */ +enum i2400m_brh_opcode { + I2400M_BRH_READ = 1, + I2400M_BRH_WRITE = 2, + I2400M_BRH_JUMP = 3, + I2400M_BRH_SIGNED_JUMP = 8, + I2400M_BRH_HASH_PAYLOAD_ONLY = 9, +}; + +/* Boot mode command masks and stuff */ +enum i2400m_brh { + I2400M_BRH_SIGNATURE = 0xcbbc0000, + I2400M_BRH_SIGNATURE_MASK = 0xffff0000, + I2400M_BRH_SIGNATURE_SHIFT = 16, + I2400M_BRH_OPCODE_MASK = 0x0000000f, + I2400M_BRH_RESPONSE_MASK = 0x000000f0, + I2400M_BRH_RESPONSE_SHIFT = 4, + I2400M_BRH_DIRECT_ACCESS = 0x00000400, + I2400M_BRH_RESPONSE_REQUIRED = 0x00000200, + I2400M_BRH_USE_CHECKSUM = 0x00000100, +}; + + +/** + * i2400m_bootrom_header - Header for a boot-mode command + * + * @cmd: the above command descriptor + * @target_addr: where on the device memory should the action be performed. + * @data_size: for read/write, amount of data to be read/written + * @block_checksum: checksum value (if applicable) + * @payload: the beginning of data attached to this header + */ +struct i2400m_bootrom_header { + __le32 command; /* Compose with enum i2400_brh */ + __le32 target_addr; + __le32 data_size; + __le32 block_checksum; + char payload[0]; +} __attribute__ ((packed)); + + +/* + * Data / control protocol + */ + +/* Packet types for the host-device interface */ +enum i2400m_pt { + I2400M_PT_DATA = 0, + I2400M_PT_CTRL, + I2400M_PT_TRACE, /* For device debug */ + I2400M_PT_RESET_WARM, /* device reset */ + I2400M_PT_RESET_COLD, /* USB[transport] reset, like reconnect */ + I2400M_PT_EDATA, /* Extended RX data */ + I2400M_PT_ILLEGAL +}; + + +/* + * Payload for a data packet + * + * This is prefixed to each and every outgoing DATA type. + */ +struct i2400m_pl_data_hdr { + __le32 reserved; +} __attribute__((packed)); + + +/* + * Payload for an extended data packet + * + * New in fw v1.4 + * + * @reorder: if this payload has to be reorder or not (and how) + * @cs: the type of data in the packet, as defined per (802.16e + * T11.13.19.1). Currently only 2 (IPv4 packet) supported. + * + * This is prefixed to each and every INCOMING DATA packet. + */ +struct i2400m_pl_edata_hdr { + __le32 reorder; /* bits defined in i2400m_ro */ + __u8 cs; + __u8 reserved[11]; +} __attribute__((packed)); + +enum i2400m_cs { + I2400M_CS_IPV4_0 = 0, + I2400M_CS_IPV4 = 2, +}; + +enum i2400m_ro { + I2400M_RO_NEEDED = 0x01, + I2400M_RO_TYPE = 0x03, + I2400M_RO_TYPE_SHIFT = 1, + I2400M_RO_CIN = 0x0f, + I2400M_RO_CIN_SHIFT = 4, + I2400M_RO_FBN = 0x07ff, + I2400M_RO_FBN_SHIFT = 8, + I2400M_RO_SN = 0x07ff, + I2400M_RO_SN_SHIFT = 21, +}; + +enum i2400m_ro_type { + I2400M_RO_TYPE_RESET = 0, + I2400M_RO_TYPE_PACKET, + I2400M_RO_TYPE_WS, + I2400M_RO_TYPE_PACKET_WS, +}; + + +/* Misc constants */ +enum { + I2400M_PL_ALIGN = 16, /* Payload data size alignment */ + I2400M_PL_SIZE_MAX = 0x3EFF, + I2400M_MAX_PLS_IN_MSG = 60, + /* protocol barkers: sync sequences; for notifications they + * are sent in groups of four. */ + I2400M_H2D_PREVIEW_BARKER = 0xcafe900d, + I2400M_COLD_RESET_BARKER = 0xc01dc01d, + I2400M_WARM_RESET_BARKER = 0x50f750f7, + I2400M_NBOOT_BARKER = 0xdeadbeef, + I2400M_SBOOT_BARKER = 0x0ff1c1a1, + I2400M_SBOOT_BARKER_6050 = 0x80000001, + I2400M_ACK_BARKER = 0xfeedbabe, + I2400M_D2H_MSG_BARKER = 0xbeefbabe, +}; + + +/* + * Hardware payload descriptor + * + * Bitfields encoded in a struct to enforce typing semantics. + * + * Look in rx.c and tx.c for a full description of the format. + */ +struct i2400m_pld { + __le32 val; +} __attribute__ ((packed)); + +#define I2400M_PLD_SIZE_MASK 0x00003fff +#define I2400M_PLD_TYPE_SHIFT 16 +#define I2400M_PLD_TYPE_MASK 0x000f0000 + +/* + * Header for a TX message or RX message + * + * @barker: preamble + * @size: used for management of the FIFO queue buffer; before + * sending, this is converted to be a real preamble. This + * indicates the real size of the TX message that starts at this + * point. If the highest bit is set, then this message is to be + * skipped. + * @sequence: sequence number of this message + * @offset: offset where the message itself starts -- see the comments + * in the file header about message header and payload descriptor + * alignment. + * @num_pls: number of payloads in this message + * @padding: amount of padding bytes at the end of the message to make + * it be of block-size aligned + * + * Look in rx.c and tx.c for a full description of the format. + */ +struct i2400m_msg_hdr { + union { + __le32 barker; + __u32 size; /* same size type as barker!! */ + }; + union { + __le32 sequence; + __u32 offset; /* same size type as barker!! */ + }; + __le16 num_pls; + __le16 rsv1; + __le16 padding; + __le16 rsv2; + struct i2400m_pld pld[0]; +} __attribute__ ((packed)); + + + +/* + * L3/L4 control protocol + */ + +enum { + /* Interface version */ + I2400M_L3L4_VERSION = 0x0100, +}; + +/* Message types */ +enum i2400m_mt { + I2400M_MT_RESERVED = 0x0000, + I2400M_MT_INVALID = 0xffff, + I2400M_MT_REPORT_MASK = 0x8000, + + I2400M_MT_GET_SCAN_RESULT = 0x4202, + I2400M_MT_SET_SCAN_PARAM = 0x4402, + I2400M_MT_CMD_RF_CONTROL = 0x4602, + I2400M_MT_CMD_SCAN = 0x4603, + I2400M_MT_CMD_CONNECT = 0x4604, + I2400M_MT_CMD_DISCONNECT = 0x4605, + I2400M_MT_CMD_EXIT_IDLE = 0x4606, + I2400M_MT_GET_LM_VERSION = 0x5201, + I2400M_MT_GET_DEVICE_INFO = 0x5202, + I2400M_MT_GET_LINK_STATUS = 0x5203, + I2400M_MT_GET_STATISTICS = 0x5204, + I2400M_MT_GET_STATE = 0x5205, + I2400M_MT_GET_MEDIA_STATUS = 0x5206, + I2400M_MT_SET_INIT_CONFIG = 0x5404, + I2400M_MT_CMD_INIT = 0x5601, + I2400M_MT_CMD_TERMINATE = 0x5602, + I2400M_MT_CMD_MODE_OF_OP = 0x5603, + I2400M_MT_CMD_RESET_DEVICE = 0x5604, + I2400M_MT_CMD_MONITOR_CONTROL = 0x5605, + I2400M_MT_CMD_ENTER_POWERSAVE = 0x5606, + I2400M_MT_GET_TLS_OPERATION_RESULT = 0x6201, + I2400M_MT_SET_EAP_SUCCESS = 0x6402, + I2400M_MT_SET_EAP_FAIL = 0x6403, + I2400M_MT_SET_EAP_KEY = 0x6404, + I2400M_MT_CMD_SEND_EAP_RESPONSE = 0x6602, + I2400M_MT_REPORT_SCAN_RESULT = 0xc002, + I2400M_MT_REPORT_STATE = 0xd002, + I2400M_MT_REPORT_POWERSAVE_READY = 0xd005, + I2400M_MT_REPORT_EAP_REQUEST = 0xe002, + I2400M_MT_REPORT_EAP_RESTART = 0xe003, + I2400M_MT_REPORT_ALT_ACCEPT = 0xe004, + I2400M_MT_REPORT_KEY_REQUEST = 0xe005, +}; + + +/* + * Message Ack Status codes + * + * When a message is replied-to, this status is reported. + */ +enum i2400m_ms { + I2400M_MS_DONE_OK = 0, + I2400M_MS_DONE_IN_PROGRESS = 1, + I2400M_MS_INVALID_OP = 2, + I2400M_MS_BAD_STATE = 3, + I2400M_MS_ILLEGAL_VALUE = 4, + I2400M_MS_MISSING_PARAMS = 5, + I2400M_MS_VERSION_ERROR = 6, + I2400M_MS_ACCESSIBILITY_ERROR = 7, + I2400M_MS_BUSY = 8, + I2400M_MS_CORRUPTED_TLV = 9, + I2400M_MS_UNINITIALIZED = 10, + I2400M_MS_UNKNOWN_ERROR = 11, + I2400M_MS_PRODUCTION_ERROR = 12, + I2400M_MS_NO_RF = 13, + I2400M_MS_NOT_READY_FOR_POWERSAVE = 14, + I2400M_MS_THERMAL_CRITICAL = 15, + I2400M_MS_MAX +}; + + +/** + * i2400m_tlv - enumeration of the different types of TLVs + * + * TLVs stand for type-length-value and are the header for a payload + * composed of almost anything. Each payload has a type assigned + * and a length. + */ +enum i2400m_tlv { + I2400M_TLV_L4_MESSAGE_VERSIONS = 129, + I2400M_TLV_SYSTEM_STATE = 141, + I2400M_TLV_MEDIA_STATUS = 161, + I2400M_TLV_RF_OPERATION = 162, + I2400M_TLV_RF_STATUS = 163, + I2400M_TLV_DEVICE_RESET_TYPE = 132, + I2400M_TLV_CONFIG_IDLE_PARAMETERS = 601, + I2400M_TLV_CONFIG_IDLE_TIMEOUT = 611, + I2400M_TLV_CONFIG_D2H_DATA_FORMAT = 614, + I2400M_TLV_CONFIG_DL_HOST_REORDER = 615, +}; + + +struct i2400m_tlv_hdr { + __le16 type; + __le16 length; /* payload's */ + __u8 pl[0]; +} __attribute__((packed)); + + +struct i2400m_l3l4_hdr { + __le16 type; + __le16 length; /* payload's */ + __le16 version; + __le16 resv1; + __le16 status; + __le16 resv2; + struct i2400m_tlv_hdr pl[0]; +} __attribute__((packed)); + + +/** + * i2400m_system_state - different states of the device + */ +enum i2400m_system_state { + I2400M_SS_UNINITIALIZED = 1, + I2400M_SS_INIT, + I2400M_SS_READY, + I2400M_SS_SCAN, + I2400M_SS_STANDBY, + I2400M_SS_CONNECTING, + I2400M_SS_WIMAX_CONNECTED, + I2400M_SS_DATA_PATH_CONNECTED, + I2400M_SS_IDLE, + I2400M_SS_DISCONNECTING, + I2400M_SS_OUT_OF_ZONE, + I2400M_SS_SLEEPACTIVE, + I2400M_SS_PRODUCTION, + I2400M_SS_CONFIG, + I2400M_SS_RF_OFF, + I2400M_SS_RF_SHUTDOWN, + I2400M_SS_DEVICE_DISCONNECT, + I2400M_SS_MAX, +}; + + +/** + * i2400m_tlv_system_state - report on the state of the system + * + * @state: see enum i2400m_system_state + */ +struct i2400m_tlv_system_state { + struct i2400m_tlv_hdr hdr; + __le32 state; +} __attribute__((packed)); + + +struct i2400m_tlv_l4_message_versions { + struct i2400m_tlv_hdr hdr; + __le16 major; + __le16 minor; + __le16 branch; + __le16 reserved; +} __attribute__((packed)); + + +struct i2400m_tlv_detailed_device_info { + struct i2400m_tlv_hdr hdr; + __u8 reserved1[400]; + __u8 mac_address[ETH_ALEN]; + __u8 reserved2[2]; +} __attribute__((packed)); + + +enum i2400m_rf_switch_status { + I2400M_RF_SWITCH_ON = 1, + I2400M_RF_SWITCH_OFF = 2, +}; + +struct i2400m_tlv_rf_switches_status { + struct i2400m_tlv_hdr hdr; + __u8 sw_rf_switch; /* 1 ON, 2 OFF */ + __u8 hw_rf_switch; /* 1 ON, 2 OFF */ + __u8 reserved[2]; +} __attribute__((packed)); + + +enum { + i2400m_rf_operation_on = 1, + i2400m_rf_operation_off = 2 +}; + +struct i2400m_tlv_rf_operation { + struct i2400m_tlv_hdr hdr; + __le32 status; /* 1 ON, 2 OFF */ +} __attribute__((packed)); + + +enum i2400m_tlv_reset_type { + I2400M_RESET_TYPE_COLD = 1, + I2400M_RESET_TYPE_WARM +}; + +struct i2400m_tlv_device_reset_type { + struct i2400m_tlv_hdr hdr; + __le32 reset_type; +} __attribute__((packed)); + + +struct i2400m_tlv_config_idle_parameters { + struct i2400m_tlv_hdr hdr; + __le32 idle_timeout; /* 100 to 300000 ms [5min], 100 increments + * 0 disabled */ + __le32 idle_paging_interval; /* frames */ +} __attribute__((packed)); + + +enum i2400m_media_status { + I2400M_MEDIA_STATUS_LINK_UP = 1, + I2400M_MEDIA_STATUS_LINK_DOWN, + I2400M_MEDIA_STATUS_LINK_RENEW, +}; + +struct i2400m_tlv_media_status { + struct i2400m_tlv_hdr hdr; + __le32 media_status; +} __attribute__((packed)); + + +/* New in v1.4 */ +struct i2400m_tlv_config_idle_timeout { + struct i2400m_tlv_hdr hdr; + __le32 timeout; /* 100 to 300000 ms [5min], 100 increments + * 0 disabled */ +} __attribute__((packed)); + +/* New in v1.4 -- for backward compat, will be removed */ +struct i2400m_tlv_config_d2h_data_format { + struct i2400m_tlv_hdr hdr; + __u8 format; /* 0 old format, 1 enhanced */ + __u8 reserved[3]; +} __attribute__((packed)); + +/* New in v1.4 */ +struct i2400m_tlv_config_dl_host_reorder { + struct i2400m_tlv_hdr hdr; + __u8 reorder; /* 0 disabled, 1 enabled */ + __u8 reserved[3]; +} __attribute__((packed)); + + +#endif /* #ifndef __LINUX__WIMAX__I2400M_H__ */ diff --git a/original/uapi/linux/wireguard.h b/original/uapi/linux/wireguard.h deleted file mode 100644 index ae88be1..0000000 --- a/original/uapi/linux/wireguard.h +++ /dev/null @@ -1,196 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */ -/* - * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. - * - * Documentation - * ============= - * - * The below enums and macros are for interfacing with WireGuard, using generic - * netlink, with family WG_GENL_NAME and version WG_GENL_VERSION. It defines two - * methods: get and set. Note that while they share many common attributes, - * these two functions actually accept a slightly different set of inputs and - * outputs. - * - * WG_CMD_GET_DEVICE - * ----------------- - * - * May only be called via NLM_F_REQUEST | NLM_F_DUMP. The command should contain - * one but not both of: - * - * WGDEVICE_A_IFINDEX: NLA_U32 - * WGDEVICE_A_IFNAME: NLA_NUL_STRING, maxlen IFNAMSIZ - 1 - * - * The kernel will then return several messages (NLM_F_MULTI) containing the - * following tree of nested items: - * - * WGDEVICE_A_IFINDEX: NLA_U32 - * WGDEVICE_A_IFNAME: NLA_NUL_STRING, maxlen IFNAMSIZ - 1 - * WGDEVICE_A_PRIVATE_KEY: NLA_EXACT_LEN, len WG_KEY_LEN - * WGDEVICE_A_PUBLIC_KEY: NLA_EXACT_LEN, len WG_KEY_LEN - * WGDEVICE_A_LISTEN_PORT: NLA_U16 - * WGDEVICE_A_FWMARK: NLA_U32 - * WGDEVICE_A_PEERS: NLA_NESTED - * 0: NLA_NESTED - * WGPEER_A_PUBLIC_KEY: NLA_EXACT_LEN, len WG_KEY_LEN - * WGPEER_A_PRESHARED_KEY: NLA_EXACT_LEN, len WG_KEY_LEN - * WGPEER_A_ENDPOINT: NLA_MIN_LEN(struct sockaddr), struct sockaddr_in or struct sockaddr_in6 - * WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL: NLA_U16 - * WGPEER_A_LAST_HANDSHAKE_TIME: NLA_EXACT_LEN, struct __kernel_timespec - * WGPEER_A_RX_BYTES: NLA_U64 - * WGPEER_A_TX_BYTES: NLA_U64 - * WGPEER_A_ALLOWEDIPS: NLA_NESTED - * 0: NLA_NESTED - * WGALLOWEDIP_A_FAMILY: NLA_U16 - * WGALLOWEDIP_A_IPADDR: NLA_MIN_LEN(struct in_addr), struct in_addr or struct in6_addr - * WGALLOWEDIP_A_CIDR_MASK: NLA_U8 - * 0: NLA_NESTED - * ... - * 0: NLA_NESTED - * ... - * ... - * WGPEER_A_PROTOCOL_VERSION: NLA_U32 - * 0: NLA_NESTED - * ... - * ... - * - * It is possible that all of the allowed IPs of a single peer will not - * fit within a single netlink message. In that case, the same peer will - * be written in the following message, except it will only contain - * WGPEER_A_PUBLIC_KEY and WGPEER_A_ALLOWEDIPS. This may occur several - * times in a row for the same peer. It is then up to the receiver to - * coalesce adjacent peers. Likewise, it is possible that all peers will - * not fit within a single message. So, subsequent peers will be sent - * in following messages, except those will only contain WGDEVICE_A_IFNAME - * and WGDEVICE_A_PEERS. It is then up to the receiver to coalesce these - * messages to form the complete list of peers. - * - * Since this is an NLA_F_DUMP command, the final message will always be - * NLMSG_DONE, even if an error occurs. However, this NLMSG_DONE message - * contains an integer error code. It is either zero or a negative error - * code corresponding to the errno. - * - * WG_CMD_SET_DEVICE - * ----------------- - * - * May only be called via NLM_F_REQUEST. The command should contain the - * following tree of nested items, containing one but not both of - * WGDEVICE_A_IFINDEX and WGDEVICE_A_IFNAME: - * - * WGDEVICE_A_IFINDEX: NLA_U32 - * WGDEVICE_A_IFNAME: NLA_NUL_STRING, maxlen IFNAMSIZ - 1 - * WGDEVICE_A_FLAGS: NLA_U32, 0 or WGDEVICE_F_REPLACE_PEERS if all current - * peers should be removed prior to adding the list below. - * WGDEVICE_A_PRIVATE_KEY: len WG_KEY_LEN, all zeros to remove - * WGDEVICE_A_LISTEN_PORT: NLA_U16, 0 to choose randomly - * WGDEVICE_A_FWMARK: NLA_U32, 0 to disable - * WGDEVICE_A_PEERS: NLA_NESTED - * 0: NLA_NESTED - * WGPEER_A_PUBLIC_KEY: len WG_KEY_LEN - * WGPEER_A_FLAGS: NLA_U32, 0 and/or WGPEER_F_REMOVE_ME if the - * specified peer should not exist at the end of the - * operation, rather than added/updated and/or - * WGPEER_F_REPLACE_ALLOWEDIPS if all current allowed - * IPs of this peer should be removed prior to adding - * the list below and/or WGPEER_F_UPDATE_ONLY if the - * peer should only be set if it already exists. - * WGPEER_A_PRESHARED_KEY: len WG_KEY_LEN, all zeros to remove - * WGPEER_A_ENDPOINT: struct sockaddr_in or struct sockaddr_in6 - * WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL: NLA_U16, 0 to disable - * WGPEER_A_ALLOWEDIPS: NLA_NESTED - * 0: NLA_NESTED - * WGALLOWEDIP_A_FAMILY: NLA_U16 - * WGALLOWEDIP_A_IPADDR: struct in_addr or struct in6_addr - * WGALLOWEDIP_A_CIDR_MASK: NLA_U8 - * 0: NLA_NESTED - * ... - * 0: NLA_NESTED - * ... - * ... - * WGPEER_A_PROTOCOL_VERSION: NLA_U32, should not be set or used at - * all by most users of this API, as the - * most recent protocol will be used when - * this is unset. Otherwise, must be set - * to 1. - * 0: NLA_NESTED - * ... - * ... - * - * It is possible that the amount of configuration data exceeds that of - * the maximum message length accepted by the kernel. In that case, several - * messages should be sent one after another, with each successive one - * filling in information not contained in the prior. Note that if - * WGDEVICE_F_REPLACE_PEERS is specified in the first message, it probably - * should not be specified in fragments that come after, so that the list - * of peers is only cleared the first time but appended after. Likewise for - * peers, if WGPEER_F_REPLACE_ALLOWEDIPS is specified in the first message - * of a peer, it likely should not be specified in subsequent fragments. - * - * If an error occurs, NLMSG_ERROR will reply containing an errno. - */ - -#ifndef _WG_UAPI_WIREGUARD_H -#define _WG_UAPI_WIREGUARD_H - -#define WG_GENL_NAME "wireguard" -#define WG_GENL_VERSION 1 - -#define WG_KEY_LEN 32 - -enum wg_cmd { - WG_CMD_GET_DEVICE, - WG_CMD_SET_DEVICE, - __WG_CMD_MAX -}; -#define WG_CMD_MAX (__WG_CMD_MAX - 1) - -enum wgdevice_flag { - WGDEVICE_F_REPLACE_PEERS = 1U << 0, - __WGDEVICE_F_ALL = WGDEVICE_F_REPLACE_PEERS -}; -enum wgdevice_attribute { - WGDEVICE_A_UNSPEC, - WGDEVICE_A_IFINDEX, - WGDEVICE_A_IFNAME, - WGDEVICE_A_PRIVATE_KEY, - WGDEVICE_A_PUBLIC_KEY, - WGDEVICE_A_FLAGS, - WGDEVICE_A_LISTEN_PORT, - WGDEVICE_A_FWMARK, - WGDEVICE_A_PEERS, - __WGDEVICE_A_LAST -}; -#define WGDEVICE_A_MAX (__WGDEVICE_A_LAST - 1) - -enum wgpeer_flag { - WGPEER_F_REMOVE_ME = 1U << 0, - WGPEER_F_REPLACE_ALLOWEDIPS = 1U << 1, - WGPEER_F_UPDATE_ONLY = 1U << 2, - __WGPEER_F_ALL = WGPEER_F_REMOVE_ME | WGPEER_F_REPLACE_ALLOWEDIPS | - WGPEER_F_UPDATE_ONLY -}; -enum wgpeer_attribute { - WGPEER_A_UNSPEC, - WGPEER_A_PUBLIC_KEY, - WGPEER_A_PRESHARED_KEY, - WGPEER_A_FLAGS, - WGPEER_A_ENDPOINT, - WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL, - WGPEER_A_LAST_HANDSHAKE_TIME, - WGPEER_A_RX_BYTES, - WGPEER_A_TX_BYTES, - WGPEER_A_ALLOWEDIPS, - WGPEER_A_PROTOCOL_VERSION, - __WGPEER_A_LAST -}; -#define WGPEER_A_MAX (__WGPEER_A_LAST - 1) - -enum wgallowedip_attribute { - WGALLOWEDIP_A_UNSPEC, - WGALLOWEDIP_A_FAMILY, - WGALLOWEDIP_A_IPADDR, - WGALLOWEDIP_A_CIDR_MASK, - __WGALLOWEDIP_A_LAST -}; -#define WGALLOWEDIP_A_MAX (__WGALLOWEDIP_A_LAST - 1) - -#endif /* _WG_UAPI_WIREGUARD_H */ diff --git a/original/uapi/linux/wireless.h b/original/uapi/linux/wireless.h index 08967b3..86eca32 100644 --- a/original/uapi/linux/wireless.h +++ b/original/uapi/linux/wireless.h @@ -74,12 +74,6 @@ #include <linux/socket.h> /* for "struct sockaddr" et al */ #include <linux/if.h> /* for IFNAMSIZ and co... */ -#ifdef __KERNEL__ -# include <linux/stddef.h> /* for offsetof */ -#else -# include <stddef.h> /* for offsetof */ -#endif - /***************************** VERSION *****************************/ /* * This constant is used to know the availability of the wireless @@ -914,7 +908,7 @@ union iwreq_data { struct iw_param sens; /* signal level threshold */ struct iw_param bitrate; /* default bit rate */ struct iw_param txpower; /* default transmit power */ - struct iw_param rts; /* RTS threshold */ + struct iw_param rts; /* RTS threshold threshold */ struct iw_param frag; /* Fragmentation threshold */ __u32 mode; /* Operation mode */ struct iw_param retry; /* Retry limits & lifetime */ @@ -1096,7 +1090,8 @@ struct iw_event { /* iw_point events are special. First, the payload (extra data) come at * the end of the event, so they are bigger than IW_EV_POINT_LEN. Second, * we omit the pointer, so start at an offset. */ -#define IW_EV_POINT_OFF offsetof(struct iw_point, length) +#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) - \ + (char *) NULL) #define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \ IW_EV_POINT_OFF) diff --git a/original/uapi/linux/xattr.h b/original/uapi/linux/xattr.h index 9463db2..1eba026 100644 --- a/original/uapi/linux/xattr.h +++ b/original/uapi/linux/xattr.h @@ -7,7 +7,6 @@ Copyright (C) 2001 by Andreas Gruenbacher <a.gruenbacher@computer.org> Copyright (c) 2001-2002 Silicon Graphics, Inc. All Rights Reserved. Copyright (c) 2004 Red Hat, Inc., James Morris <jmorris@redhat.com> - Copyright (c) 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> */ #include <linux/libc-compat.h> @@ -18,8 +17,11 @@ #if __UAPI_DEF_XATTR #define __USE_KERNEL_XATTR_DEFS -#define XATTR_CREATE 0x1 /* set value, fail if attr already exists */ -#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */ +#define XATTR_CREATE 0x1 /* set value, fail if attr already exists */ +#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */ +#ifdef __KERNEL__ /* following is kernel internal, colocated for maintenance */ +#define XATTR_NOSECURITY 0x4 /* get value, do not involve security check */ +#endif #endif /* Namespaces */ @@ -32,9 +34,6 @@ #define XATTR_BTRFS_PREFIX "btrfs." #define XATTR_BTRFS_PREFIX_LEN (sizeof(XATTR_BTRFS_PREFIX) - 1) -#define XATTR_HURD_PREFIX "gnu." -#define XATTR_HURD_PREFIX_LEN (sizeof(XATTR_HURD_PREFIX) - 1) - #define XATTR_SECURITY_PREFIX "security." #define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1) diff --git a/original/uapi/linux/xdp_diag.h b/original/uapi/linux/xdp_diag.h index 66b9973..78b2591 100644 --- a/original/uapi/linux/xdp_diag.h +++ b/original/uapi/linux/xdp_diag.h @@ -30,7 +30,6 @@ struct xdp_diag_msg { #define XDP_SHOW_RING_CFG (1 << 1) #define XDP_SHOW_UMEM (1 << 2) #define XDP_SHOW_MEMINFO (1 << 3) -#define XDP_SHOW_STATS (1 << 4) enum { XDP_DIAG_NONE, @@ -42,7 +41,6 @@ enum { XDP_DIAG_UMEM_FILL_RING, XDP_DIAG_UMEM_COMPLETION_RING, XDP_DIAG_MEMINFO, - XDP_DIAG_STATS, __XDP_DIAG_MAX, }; @@ -71,13 +69,4 @@ struct xdp_diag_umem { __u32 refs; }; -struct xdp_diag_stats { - __u64 n_rx_dropped; - __u64 n_rx_invalid; - __u64 n_rx_full; - __u64 n_fill_ring_empty; - __u64 n_tx_invalid; - __u64 n_tx_ring_empty; -}; - #endif /* _LINUX_XDP_DIAG_H */ diff --git a/original/uapi/linux/xfrm.h b/original/uapi/linux/xfrm.h index ffc6a53..5f3b9fe 100644 --- a/original/uapi/linux/xfrm.h +++ b/original/uapi/linux/xfrm.h @@ -304,7 +304,7 @@ enum xfrm_attr_type_t { XFRMA_PROTO, /* __u8 */ XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */ XFRMA_PAD, - XFRMA_OFFLOAD_DEV, /* struct xfrm_user_offload */ + XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */ XFRMA_SET_MARK, /* __u32 */ XFRMA_SET_MARK_MASK, /* __u32 */ XFRMA_IF_ID, /* __u32 */ @@ -387,7 +387,6 @@ struct xfrm_usersa_info { }; #define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1 -#define XFRM_SA_XFLAG_OSEQ_MAY_WRAP 2 struct xfrm_usersa_id { xfrm_address_t daddr; diff --git a/original/uapi/misc/fastrpc.h b/original/uapi/misc/fastrpc.h index 0a89f95..07de2b7 100644 --- a/original/uapi/misc/fastrpc.h +++ b/original/uapi/misc/fastrpc.h @@ -10,9 +10,8 @@ #define FASTRPC_IOCTL_INVOKE _IOWR('R', 3, struct fastrpc_invoke) #define FASTRPC_IOCTL_INIT_ATTACH _IO('R', 4) #define FASTRPC_IOCTL_INIT_CREATE _IOWR('R', 5, struct fastrpc_init_create) -#define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap) -#define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap) -#define FASTRPC_IOCTL_INIT_ATTACH_SNS _IO('R', 8) +#define FASTRPC_IOCTL_MMAP _IOWR('R', 6, struct fastrpc_req_mmap) +#define FASTRPC_IOCTL_MUNMAP _IOWR('R', 7, struct fastrpc_req_munmap) struct fastrpc_invoke_args { __u64 ptr; diff --git a/original/uapi/misc/habanalabs.h b/original/uapi/misc/habanalabs.h index 5a86b52..4faa2c9 100644 --- a/original/uapi/misc/habanalabs.h +++ b/original/uapi/misc/habanalabs.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note * - * Copyright 2016-2020 HabanaLabs, Ltd. + * Copyright 2016-2019 HabanaLabs, Ltd. * All Rights Reserved. * */ @@ -15,23 +15,10 @@ * Defines that are asic-specific but constitutes as ABI between kernel driver * and userspace */ -#define GOYA_KMD_SRAM_RESERVED_SIZE_FROM_START 0x8000 /* 32KB */ -#define GAUDI_DRIVER_SRAM_RESERVED_SIZE_FROM_START 0x80 /* 128 bytes */ +#define GOYA_KMD_SRAM_RESERVED_SIZE_FROM_START 0x8000 /* 32KB */ /* - * 128 SOBs reserved for collective wait - * 16 SOBs reserved for sync stream - */ -#define GAUDI_FIRST_AVAILABLE_W_S_SYNC_OBJECT 144 - -/* - * 64 monitors reserved for collective wait - * 8 monitors reserved for sync stream - */ -#define GAUDI_FIRST_AVAILABLE_W_S_MONITOR 72 - -/* - * Goya queue Numbering + * Queue Numbering * * The external queues (PCI DMA channels) MUST be before the internal queues * and each group (PCI DMA channels and internal) must be contiguous inside @@ -59,129 +46,6 @@ enum goya_queue_id { }; /* - * Gaudi queue Numbering - * External queues (PCI DMA channels) are DMA_0_*, DMA_1_* and DMA_5_*. - * Except one CPU queue, all the rest are internal queues. - */ - -enum gaudi_queue_id { - GAUDI_QUEUE_ID_DMA_0_0 = 0, /* external */ - GAUDI_QUEUE_ID_DMA_0_1 = 1, /* external */ - GAUDI_QUEUE_ID_DMA_0_2 = 2, /* external */ - GAUDI_QUEUE_ID_DMA_0_3 = 3, /* external */ - GAUDI_QUEUE_ID_DMA_1_0 = 4, /* external */ - GAUDI_QUEUE_ID_DMA_1_1 = 5, /* external */ - GAUDI_QUEUE_ID_DMA_1_2 = 6, /* external */ - GAUDI_QUEUE_ID_DMA_1_3 = 7, /* external */ - GAUDI_QUEUE_ID_CPU_PQ = 8, /* CPU */ - GAUDI_QUEUE_ID_DMA_2_0 = 9, /* internal */ - GAUDI_QUEUE_ID_DMA_2_1 = 10, /* internal */ - GAUDI_QUEUE_ID_DMA_2_2 = 11, /* internal */ - GAUDI_QUEUE_ID_DMA_2_3 = 12, /* internal */ - GAUDI_QUEUE_ID_DMA_3_0 = 13, /* internal */ - GAUDI_QUEUE_ID_DMA_3_1 = 14, /* internal */ - GAUDI_QUEUE_ID_DMA_3_2 = 15, /* internal */ - GAUDI_QUEUE_ID_DMA_3_3 = 16, /* internal */ - GAUDI_QUEUE_ID_DMA_4_0 = 17, /* internal */ - GAUDI_QUEUE_ID_DMA_4_1 = 18, /* internal */ - GAUDI_QUEUE_ID_DMA_4_2 = 19, /* internal */ - GAUDI_QUEUE_ID_DMA_4_3 = 20, /* internal */ - GAUDI_QUEUE_ID_DMA_5_0 = 21, /* internal */ - GAUDI_QUEUE_ID_DMA_5_1 = 22, /* internal */ - GAUDI_QUEUE_ID_DMA_5_2 = 23, /* internal */ - GAUDI_QUEUE_ID_DMA_5_3 = 24, /* internal */ - GAUDI_QUEUE_ID_DMA_6_0 = 25, /* internal */ - GAUDI_QUEUE_ID_DMA_6_1 = 26, /* internal */ - GAUDI_QUEUE_ID_DMA_6_2 = 27, /* internal */ - GAUDI_QUEUE_ID_DMA_6_3 = 28, /* internal */ - GAUDI_QUEUE_ID_DMA_7_0 = 29, /* internal */ - GAUDI_QUEUE_ID_DMA_7_1 = 30, /* internal */ - GAUDI_QUEUE_ID_DMA_7_2 = 31, /* internal */ - GAUDI_QUEUE_ID_DMA_7_3 = 32, /* internal */ - GAUDI_QUEUE_ID_MME_0_0 = 33, /* internal */ - GAUDI_QUEUE_ID_MME_0_1 = 34, /* internal */ - GAUDI_QUEUE_ID_MME_0_2 = 35, /* internal */ - GAUDI_QUEUE_ID_MME_0_3 = 36, /* internal */ - GAUDI_QUEUE_ID_MME_1_0 = 37, /* internal */ - GAUDI_QUEUE_ID_MME_1_1 = 38, /* internal */ - GAUDI_QUEUE_ID_MME_1_2 = 39, /* internal */ - GAUDI_QUEUE_ID_MME_1_3 = 40, /* internal */ - GAUDI_QUEUE_ID_TPC_0_0 = 41, /* internal */ - GAUDI_QUEUE_ID_TPC_0_1 = 42, /* internal */ - GAUDI_QUEUE_ID_TPC_0_2 = 43, /* internal */ - GAUDI_QUEUE_ID_TPC_0_3 = 44, /* internal */ - GAUDI_QUEUE_ID_TPC_1_0 = 45, /* internal */ - GAUDI_QUEUE_ID_TPC_1_1 = 46, /* internal */ - GAUDI_QUEUE_ID_TPC_1_2 = 47, /* internal */ - GAUDI_QUEUE_ID_TPC_1_3 = 48, /* internal */ - GAUDI_QUEUE_ID_TPC_2_0 = 49, /* internal */ - GAUDI_QUEUE_ID_TPC_2_1 = 50, /* internal */ - GAUDI_QUEUE_ID_TPC_2_2 = 51, /* internal */ - GAUDI_QUEUE_ID_TPC_2_3 = 52, /* internal */ - GAUDI_QUEUE_ID_TPC_3_0 = 53, /* internal */ - GAUDI_QUEUE_ID_TPC_3_1 = 54, /* internal */ - GAUDI_QUEUE_ID_TPC_3_2 = 55, /* internal */ - GAUDI_QUEUE_ID_TPC_3_3 = 56, /* internal */ - GAUDI_QUEUE_ID_TPC_4_0 = 57, /* internal */ - GAUDI_QUEUE_ID_TPC_4_1 = 58, /* internal */ - GAUDI_QUEUE_ID_TPC_4_2 = 59, /* internal */ - GAUDI_QUEUE_ID_TPC_4_3 = 60, /* internal */ - GAUDI_QUEUE_ID_TPC_5_0 = 61, /* internal */ - GAUDI_QUEUE_ID_TPC_5_1 = 62, /* internal */ - GAUDI_QUEUE_ID_TPC_5_2 = 63, /* internal */ - GAUDI_QUEUE_ID_TPC_5_3 = 64, /* internal */ - GAUDI_QUEUE_ID_TPC_6_0 = 65, /* internal */ - GAUDI_QUEUE_ID_TPC_6_1 = 66, /* internal */ - GAUDI_QUEUE_ID_TPC_6_2 = 67, /* internal */ - GAUDI_QUEUE_ID_TPC_6_3 = 68, /* internal */ - GAUDI_QUEUE_ID_TPC_7_0 = 69, /* internal */ - GAUDI_QUEUE_ID_TPC_7_1 = 70, /* internal */ - GAUDI_QUEUE_ID_TPC_7_2 = 71, /* internal */ - GAUDI_QUEUE_ID_TPC_7_3 = 72, /* internal */ - GAUDI_QUEUE_ID_NIC_0_0 = 73, /* internal */ - GAUDI_QUEUE_ID_NIC_0_1 = 74, /* internal */ - GAUDI_QUEUE_ID_NIC_0_2 = 75, /* internal */ - GAUDI_QUEUE_ID_NIC_0_3 = 76, /* internal */ - GAUDI_QUEUE_ID_NIC_1_0 = 77, /* internal */ - GAUDI_QUEUE_ID_NIC_1_1 = 78, /* internal */ - GAUDI_QUEUE_ID_NIC_1_2 = 79, /* internal */ - GAUDI_QUEUE_ID_NIC_1_3 = 80, /* internal */ - GAUDI_QUEUE_ID_NIC_2_0 = 81, /* internal */ - GAUDI_QUEUE_ID_NIC_2_1 = 82, /* internal */ - GAUDI_QUEUE_ID_NIC_2_2 = 83, /* internal */ - GAUDI_QUEUE_ID_NIC_2_3 = 84, /* internal */ - GAUDI_QUEUE_ID_NIC_3_0 = 85, /* internal */ - GAUDI_QUEUE_ID_NIC_3_1 = 86, /* internal */ - GAUDI_QUEUE_ID_NIC_3_2 = 87, /* internal */ - GAUDI_QUEUE_ID_NIC_3_3 = 88, /* internal */ - GAUDI_QUEUE_ID_NIC_4_0 = 89, /* internal */ - GAUDI_QUEUE_ID_NIC_4_1 = 90, /* internal */ - GAUDI_QUEUE_ID_NIC_4_2 = 91, /* internal */ - GAUDI_QUEUE_ID_NIC_4_3 = 92, /* internal */ - GAUDI_QUEUE_ID_NIC_5_0 = 93, /* internal */ - GAUDI_QUEUE_ID_NIC_5_1 = 94, /* internal */ - GAUDI_QUEUE_ID_NIC_5_2 = 95, /* internal */ - GAUDI_QUEUE_ID_NIC_5_3 = 96, /* internal */ - GAUDI_QUEUE_ID_NIC_6_0 = 97, /* internal */ - GAUDI_QUEUE_ID_NIC_6_1 = 98, /* internal */ - GAUDI_QUEUE_ID_NIC_6_2 = 99, /* internal */ - GAUDI_QUEUE_ID_NIC_6_3 = 100, /* internal */ - GAUDI_QUEUE_ID_NIC_7_0 = 101, /* internal */ - GAUDI_QUEUE_ID_NIC_7_1 = 102, /* internal */ - GAUDI_QUEUE_ID_NIC_7_2 = 103, /* internal */ - GAUDI_QUEUE_ID_NIC_7_3 = 104, /* internal */ - GAUDI_QUEUE_ID_NIC_8_0 = 105, /* internal */ - GAUDI_QUEUE_ID_NIC_8_1 = 106, /* internal */ - GAUDI_QUEUE_ID_NIC_8_2 = 107, /* internal */ - GAUDI_QUEUE_ID_NIC_8_3 = 108, /* internal */ - GAUDI_QUEUE_ID_NIC_9_0 = 109, /* internal */ - GAUDI_QUEUE_ID_NIC_9_1 = 110, /* internal */ - GAUDI_QUEUE_ID_NIC_9_2 = 111, /* internal */ - GAUDI_QUEUE_ID_NIC_9_3 = 112, /* internal */ - GAUDI_QUEUE_ID_SIZE -}; - -/* * Engine Numbering * * Used in the "busy_engines_mask" field in `struct hl_info_hw_idle' @@ -205,45 +69,10 @@ enum goya_engine_id { GOYA_ENGINE_ID_SIZE }; -enum gaudi_engine_id { - GAUDI_ENGINE_ID_DMA_0 = 0, - GAUDI_ENGINE_ID_DMA_1, - GAUDI_ENGINE_ID_DMA_2, - GAUDI_ENGINE_ID_DMA_3, - GAUDI_ENGINE_ID_DMA_4, - GAUDI_ENGINE_ID_DMA_5, - GAUDI_ENGINE_ID_DMA_6, - GAUDI_ENGINE_ID_DMA_7, - GAUDI_ENGINE_ID_MME_0, - GAUDI_ENGINE_ID_MME_1, - GAUDI_ENGINE_ID_MME_2, - GAUDI_ENGINE_ID_MME_3, - GAUDI_ENGINE_ID_TPC_0, - GAUDI_ENGINE_ID_TPC_1, - GAUDI_ENGINE_ID_TPC_2, - GAUDI_ENGINE_ID_TPC_3, - GAUDI_ENGINE_ID_TPC_4, - GAUDI_ENGINE_ID_TPC_5, - GAUDI_ENGINE_ID_TPC_6, - GAUDI_ENGINE_ID_TPC_7, - GAUDI_ENGINE_ID_NIC_0, - GAUDI_ENGINE_ID_NIC_1, - GAUDI_ENGINE_ID_NIC_2, - GAUDI_ENGINE_ID_NIC_3, - GAUDI_ENGINE_ID_NIC_4, - GAUDI_ENGINE_ID_NIC_5, - GAUDI_ENGINE_ID_NIC_6, - GAUDI_ENGINE_ID_NIC_7, - GAUDI_ENGINE_ID_NIC_8, - GAUDI_ENGINE_ID_NIC_9, - GAUDI_ENGINE_ID_SIZE -}; - enum hl_device_status { HL_DEVICE_STATUS_OPERATIONAL, HL_DEVICE_STATUS_IN_RESET, - HL_DEVICE_STATUS_MALFUNCTION, - HL_DEVICE_STATUS_NEEDS_RESET + HL_DEVICE_STATUS_MALFUNCTION }; /* Opcode for management ioctl @@ -272,14 +101,6 @@ enum hl_device_status { * HL_INFO_RESET_COUNT - Retrieve the counts of the soft and hard reset * operations performed on the device since the last * time the driver was loaded. - * HL_INFO_TIME_SYNC - Retrieve the device's time alongside the host's time - * for synchronization. - * HL_INFO_CS_COUNTERS - Retrieve command submission counters - * HL_INFO_PCI_COUNTERS - Retrieve PCI counters - * HL_INFO_CLK_THROTTLE_REASON - Retrieve clock throttling reason - * HL_INFO_SYNC_MANAGER - Retrieve sync manager info per dcore - * HL_INFO_TOTAL_ENERGY - Retrieve total energy consumption - * HL_INFO_PLL_FREQUENCY - Retrieve PLL frequency */ #define HL_INFO_HW_IP_INFO 0 #define HL_INFO_HW_EVENTS 1 @@ -290,13 +111,6 @@ enum hl_device_status { #define HL_INFO_HW_EVENTS_AGGREGATE 7 #define HL_INFO_CLK_RATE 8 #define HL_INFO_RESET_COUNT 9 -#define HL_INFO_TIME_SYNC 10 -#define HL_INFO_CS_COUNTERS 11 -#define HL_INFO_PCI_COUNTERS 12 -#define HL_INFO_CLK_THROTTLE_REASON 13 -#define HL_INFO_SYNC_MANAGER 14 -#define HL_INFO_TOTAL_ENERGY 15 -#define HL_INFO_PLL_FREQUENCY 16 #define HL_INFO_VERSION_MAX_LEN 128 #define HL_INFO_CARD_NAME_MAX_LEN 16 @@ -308,11 +122,8 @@ struct hl_info_hw_ip_info { __u32 sram_size; __u32 num_of_events; __u32 device_id; /* PCI Device ID */ - __u32 module_id; /* For mezzanine cards in servers (From OCP spec.) */ - __u32 reserved; - __u16 first_available_interrupt_id; - __u16 reserved2; - __u32 cpld_version; + __u32 reserved[3]; + __u32 armcp_cpld_version; __u32 psoc_pci_pll_nr; __u32 psoc_pci_pll_nf; __u32 psoc_pci_pll_od; @@ -320,10 +131,8 @@ struct hl_info_hw_ip_info { __u8 tpc_enabled_mask; __u8 dram_enabled; __u8 pad[2]; - __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN]; + __u8 armcp_version[HL_INFO_VERSION_MAX_LEN]; __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN]; - __u64 reserved3; - __u64 dram_page_size; }; struct hl_info_dram_usage { @@ -331,8 +140,6 @@ struct hl_info_dram_usage { __u64 ctx_dram_mem; }; -#define HL_BUSY_ENGINES_MASK_EXT_SIZE 2 - struct hl_info_hw_idle { __u32 is_idle; /* @@ -340,12 +147,6 @@ struct hl_info_hw_idle { * Bits definition is according to `enum <chip>_enging_id'. */ __u32 busy_engines_mask; - - /* - * Extended Bitmask of busy engines. - * Bits definition is according to `enum <chip>_enging_id'. - */ - __u64 busy_engines_mask_ext[HL_BUSY_ENGINES_MASK_EXT_SIZE]; }; struct hl_info_device_status { @@ -368,98 +169,6 @@ struct hl_info_reset_count { __u32 soft_reset_cnt; }; -struct hl_info_time_sync { - __u64 device_time; - __u64 host_time; -}; - -/** - * struct hl_info_pci_counters - pci counters - * @rx_throughput: PCI rx throughput KBps - * @tx_throughput: PCI tx throughput KBps - * @replay_cnt: PCI replay counter - */ -struct hl_info_pci_counters { - __u64 rx_throughput; - __u64 tx_throughput; - __u64 replay_cnt; -}; - -#define HL_CLK_THROTTLE_POWER 0x1 -#define HL_CLK_THROTTLE_THERMAL 0x2 - -/** - * struct hl_info_clk_throttle - clock throttling reason - * @clk_throttling_reason: each bit represents a clk throttling reason - */ -struct hl_info_clk_throttle { - __u32 clk_throttling_reason; -}; - -/** - * struct hl_info_energy - device energy information - * @total_energy_consumption: total device energy consumption - */ -struct hl_info_energy { - __u64 total_energy_consumption; -}; - -#define HL_PLL_NUM_OUTPUTS 4 - -struct hl_pll_frequency_info { - __u16 output[HL_PLL_NUM_OUTPUTS]; -}; - -/** - * struct hl_info_sync_manager - sync manager information - * @first_available_sync_object: first available sob - * @first_available_monitor: first available monitor - * @first_available_cq: first available cq - */ -struct hl_info_sync_manager { - __u32 first_available_sync_object; - __u32 first_available_monitor; - __u32 first_available_cq; - __u32 reserved; -}; - -/** - * struct hl_info_cs_counters - command submission counters - * @total_out_of_mem_drop_cnt: total dropped due to memory allocation issue - * @ctx_out_of_mem_drop_cnt: context dropped due to memory allocation issue - * @total_parsing_drop_cnt: total dropped due to error in packet parsing - * @ctx_parsing_drop_cnt: context dropped due to error in packet parsing - * @total_queue_full_drop_cnt: total dropped due to queue full - * @ctx_queue_full_drop_cnt: context dropped due to queue full - * @total_device_in_reset_drop_cnt: total dropped due to device in reset - * @ctx_device_in_reset_drop_cnt: context dropped due to device in reset - * @total_max_cs_in_flight_drop_cnt: total dropped due to maximum CS in-flight - * @ctx_max_cs_in_flight_drop_cnt: context dropped due to maximum CS in-flight - * @total_validation_drop_cnt: total dropped due to validation error - * @ctx_validation_drop_cnt: context dropped due to validation error - */ -struct hl_info_cs_counters { - __u64 total_out_of_mem_drop_cnt; - __u64 ctx_out_of_mem_drop_cnt; - __u64 total_parsing_drop_cnt; - __u64 ctx_parsing_drop_cnt; - __u64 total_queue_full_drop_cnt; - __u64 ctx_queue_full_drop_cnt; - __u64 total_device_in_reset_drop_cnt; - __u64 ctx_device_in_reset_drop_cnt; - __u64 total_max_cs_in_flight_drop_cnt; - __u64 ctx_max_cs_in_flight_drop_cnt; - __u64 total_validation_drop_cnt; - __u64 ctx_validation_drop_cnt; -}; - -enum gaudi_dcores { - HL_GAUDI_WS_DCORE, - HL_GAUDI_WN_DCORE, - HL_GAUDI_EN_DCORE, - HL_GAUDI_ES_DCORE -}; - struct hl_info_args { /* Location of relevant struct in userspace */ __u64 return_pointer; @@ -476,18 +185,12 @@ struct hl_info_args { __u32 op; union { - /* Dcore id for which the information is relevant. - * For Gaudi refer to 'enum gaudi_dcores' - */ - __u32 dcore_id; /* Context ID - Currently not in use */ __u32 ctx_id; /* Period value for utilization rate (100ms - 1000ms, in 100ms * resolution. */ __u32 period_ms; - /* PLL frequency retrieval */ - __u32 pll_index; }; __u32 pad; @@ -497,14 +200,8 @@ struct hl_info_args { #define HL_CB_OP_CREATE 0 /* Opcode to destroy previously created command buffer */ #define HL_CB_OP_DESTROY 1 -/* Opcode to retrieve information about a command buffer */ -#define HL_CB_OP_INFO 2 - -/* 2MB minus 32 bytes for 2xMSG_PROT */ -#define HL_MAX_CB_SIZE (0x200000 - 32) -/* Indicates whether the command buffer should be mapped to the device's MMU */ -#define HL_CB_FLAGS_MAP 0x1 +#define HL_MAX_CB_SIZE 0x200000 /* 2MB */ struct hl_cb_in { /* Handle of CB or 0 if we want to create one */ @@ -517,22 +214,12 @@ struct hl_cb_in { __u32 cb_size; /* Context ID - Currently not in use */ __u32 ctx_id; - /* HL_CB_FLAGS_* */ - __u32 flags; + __u32 pad; }; struct hl_cb_out { - union { - /* Handle of CB */ - __u64 cb_handle; - - /* Information about CB */ - struct { - /* Usage count of CB */ - __u32 usage_cnt; - __u32 pad; - }; - }; + /* Handle of CB */ + __u64 cb_handle; }; union hl_cb_args { @@ -540,128 +227,57 @@ union hl_cb_args { struct hl_cb_out out; }; -/* HL_CS_CHUNK_FLAGS_ values - * - * HL_CS_CHUNK_FLAGS_USER_ALLOC_CB: - * Indicates if the CB was allocated and mapped by userspace. - * User allocated CB is a command buffer allocated by the user, via malloc - * (or similar). After allocating the CB, the user invokes “memory ioctl” - * to map the user memory into a device virtual address. The user provides - * this address via the cb_handle field. The interface provides the - * ability to create a large CBs, Which aren’t limited to - * “HL_MAX_CB_SIZE”. Therefore, it increases the PCI-DMA queues - * throughput. This CB allocation method also reduces the use of Linux - * DMA-able memory pool. Which are limited and used by other Linux - * sub-systems. - */ -#define HL_CS_CHUNK_FLAGS_USER_ALLOC_CB 0x1 - /* * This structure size must always be fixed to 64-bytes for backward * compatibility */ struct hl_cs_chunk { - union { - /* For external queue, this represents a Handle of CB on the - * Host. - * For internal queue in Goya, this represents an SRAM or - * a DRAM address of the internal CB. In Gaudi, this might also - * represent a mapped host address of the CB. - * - * A mapped host address is in the device address space, after - * a host address was mapped by the device MMU. - */ - __u64 cb_handle; - - /* Relevant only when HL_CS_FLAGS_WAIT or - * HL_CS_FLAGS_COLLECTIVE_WAIT is set. - * This holds address of array of u64 values that contain - * signal CS sequence numbers. The wait described by this job - * will listen on all those signals (wait event per signal) - */ - __u64 signal_seq_arr; - }; - + /* + * For external queue, this represents a Handle of CB on the Host + * For internal queue, this represents an SRAM or DRAM address of the + * internal CB + */ + __u64 cb_handle; /* Index of queue to put the CB on */ __u32 queue_index; - - union { - /* - * Size of command buffer with valid packets - * Can be smaller then actual CB size - */ - __u32 cb_size; - - /* Relevant only when HL_CS_FLAGS_WAIT or - * HL_CS_FLAGS_COLLECTIVE_WAIT is set. - * Number of entries in signal_seq_arr - */ - __u32 num_signal_seq_arr; - }; - + /* + * Size of command buffer with valid packets + * Can be smaller then actual CB size + */ + __u32 cb_size; /* HL_CS_CHUNK_FLAGS_* */ __u32 cs_chunk_flags; - - /* Relevant only when HL_CS_FLAGS_COLLECTIVE_WAIT is set. - * This holds the collective engine ID. The wait described by this job - * will sync with this engine and with all NICs before completion. - */ - __u32 collective_engine_id; - /* Align structure to 64 bytes */ - __u32 pad[10]; + __u32 pad[11]; }; -/* SIGNAL and WAIT/COLLECTIVE_WAIT flags are mutually exclusive */ -#define HL_CS_FLAGS_FORCE_RESTORE 0x1 -#define HL_CS_FLAGS_SIGNAL 0x2 -#define HL_CS_FLAGS_WAIT 0x4 -#define HL_CS_FLAGS_COLLECTIVE_WAIT 0x8 -#define HL_CS_FLAGS_TIMESTAMP 0x20 -#define HL_CS_FLAGS_STAGED_SUBMISSION 0x40 -#define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80 -#define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100 +#define HL_CS_FLAGS_FORCE_RESTORE 0x1 #define HL_CS_STATUS_SUCCESS 0 #define HL_MAX_JOBS_PER_CS 512 struct hl_cs_in { - /* this holds address of array of hl_cs_chunk for restore phase */ __u64 chunks_restore; - - /* holds address of array of hl_cs_chunk for execution phase */ + /* this holds address of array of hl_cs_chunk for execution phase */ __u64 chunks_execute; - - union { - /* this holds address of array of hl_cs_chunk for store phase - - * Currently not in use - */ - __u64 chunks_store; - - /* Sequence number of a staged submission CS - * valid only if HL_CS_FLAGS_STAGED_SUBMISSION is set - */ - __u64 seq; - }; - + /* this holds address of array of hl_cs_chunk for store phase - + * Currently not in use + */ + __u64 chunks_store; /* Number of chunks in restore phase array. Maximum number is * HL_MAX_JOBS_PER_CS */ __u32 num_chunks_restore; - /* Number of chunks in execution array. Maximum number is * HL_MAX_JOBS_PER_CS */ __u32 num_chunks_execute; - /* Number of chunks in restore phase array - Currently not in use */ __u32 num_chunks_store; - /* HL_CS_FLAGS_* */ __u32 cs_flags; - /* Context ID - Currently not in use */ __u32 ctx_id; }; @@ -698,16 +314,10 @@ struct hl_wait_cs_in { #define HL_WAIT_CS_STATUS_ABORTED 3 #define HL_WAIT_CS_STATUS_INTERRUPTED 4 -#define HL_WAIT_CS_STATUS_FLAG_GONE 0x1 -#define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2 - struct hl_wait_cs_out { /* HL_WAIT_CS_STATUS_* */ __u32 status; - /* HL_WAIT_CS_STATUS_FLAG* */ - __u32 flags; - /* valid only if HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD is set */ - __s64 timestamp_nsec; + __u32 pad; }; union hl_wait_cs_args { @@ -715,16 +325,14 @@ union hl_wait_cs_args { struct hl_wait_cs_out out; }; -/* Opcode to allocate device memory */ +/* Opcode to alloc device memory */ #define HL_MEM_OP_ALLOC 0 /* Opcode to free previously allocated device memory */ #define HL_MEM_OP_FREE 1 -/* Opcode to map host and device memory */ +/* Opcode to map host memory */ #define HL_MEM_OP_MAP 2 -/* Opcode to unmap previously mapped host and device memory */ +/* Opcode to unmap previously mapped host memory */ #define HL_MEM_OP_UNMAP 3 -/* Opcode to map a hw block */ -#define HL_MEM_OP_MAP_BLOCK 4 /* Memory flags */ #define HL_MEM_CONTIGUOUS 0x1 @@ -779,17 +387,6 @@ struct hl_mem_in { __u64 mem_size; } map_host; - /* HL_MEM_OP_MAP_BLOCK - map a hw block */ - struct { - /* - * HW block address to map, a handle and size will be - * returned to the user and will be used to mmap the - * relevant block. Only addresses from configuration - * space are allowed. - */ - __u64 block_addr; - } map_block; - /* HL_MEM_OP_UNMAP - unmap host memory */ struct { /* Virtual address returned from HL_MEM_OP_MAP */ @@ -816,26 +413,10 @@ struct hl_mem_out { __u64 device_virt_addr; /* - * Used in HL_MEM_OP_ALLOC - * This is the assigned handle for the allocated memory + * Used for HL_MEM_OP_ALLOC. This is the assigned + * handle for the allocated memory */ __u64 handle; - - struct { - /* - * Used in HL_MEM_OP_MAP_BLOCK. - * This is the assigned handle for the mapped block - */ - __u64 block_handle; - - /* - * Used in HL_MEM_OP_MAP_BLOCK - * This is the size of the mapped block - */ - __u32 block_size; - - __u32 pad; - }; }; }; @@ -981,12 +562,6 @@ struct hl_debug_args { * When creating a new CB, the IOCTL returns a handle of it, and the user-space * process needs to use that handle to mmap the buffer so it can access them. * - * In some instances, the device must access the command buffer through the - * device's MMU, and thus its memory should be mapped. In these cases, user can - * indicate the driver that such a mapping is required. - * The resulting device virtual address will be used internally by the driver, - * and won't be returned to user. - * */ #define HL_IOCTL_CB \ _IOWR('H', 0x02, union hl_cb_args) @@ -1013,8 +588,8 @@ struct hl_debug_args { * For jobs on external queues, the user needs to create command buffers * through the CB ioctl and give the CB's handle to the CS ioctl. For jobs on * internal queues, the user needs to prepare a "command buffer" with packets - * on either the device SRAM/DRAM or the host, and give the device address of - * that buffer to the CS ioctl. + * on either the SRAM or DRAM, and give the device address of that buffer to + * the CS ioctl. * * This IOCTL is asynchronous in regard to the actual execution of the CS. This * means it returns immediately after ALL the JOBS were enqueued on their @@ -1026,7 +601,7 @@ struct hl_debug_args { * external JOBS have been completed. Note that if the CS has internal JOBS * which can execute AFTER the external JOBS have finished, the driver might * report that the CS has finished executing BEFORE the internal JOBS have - * actually finished executing. + * actually finish executing. * * Even though the sequence number increments per CS, the user can NOT * automatically assume that if CS with sequence number N finished, then CS @@ -1045,9 +620,6 @@ struct hl_debug_args { * inside the kernel until the CS has finished or until the user-requested * timeout has expired. * - * If the timeout value is 0, the driver won't sleep at all. It will check - * the status of the CS and return immediately - * * The return value of the IOCTL is a standard Linux error code. The possible * values are: * diff --git a/original/uapi/misc/pvpanic.h b/original/uapi/misc/pvpanic.h deleted file mode 100644 index 54b7485..0000000 --- a/original/uapi/misc/pvpanic.h +++ /dev/null @@ -1,9 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ - -#ifndef __PVPANIC_H__ -#define __PVPANIC_H__ - -#define PVPANIC_PANICKED (1 << 0) -#define PVPANIC_CRASH_LOADED (1 << 1) - -#endif /* __PVPANIC_H__ */ diff --git a/original/uapi/misc/uacce/hisi_qm.h b/original/uapi/misc/uacce/hisi_qm.h deleted file mode 100644 index 6435f0b..0000000 --- a/original/uapi/misc/uacce/hisi_qm.h +++ /dev/null @@ -1,23 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -#ifndef _UAPI_HISI_QM_H -#define _UAPI_HISI_QM_H - -#include <linux/types.h> - -/** - * struct hisi_qp_ctx - User data for hisi qp. - * @id: qp_index return to user space - * @qc_type: Accelerator algorithm type - */ -struct hisi_qp_ctx { - __u16 id; - __u16 qc_type; -}; - -#define HISI_QM_API_VER_BASE "hisi_qm_v1" -#define HISI_QM_API_VER2_BASE "hisi_qm_v2" - -/* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */ -#define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx) - -#endif diff --git a/original/uapi/misc/uacce/uacce.h b/original/uapi/misc/uacce/uacce.h deleted file mode 100644 index cc71856..0000000 --- a/original/uapi/misc/uacce/uacce.h +++ /dev/null @@ -1,38 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -#ifndef _UAPIUUACCE_H -#define _UAPIUUACCE_H - -#include <linux/types.h> -#include <linux/ioctl.h> - -/* - * UACCE_CMD_START_Q: Start queue - */ -#define UACCE_CMD_START_Q _IO('W', 0) - -/* - * UACCE_CMD_PUT_Q: - * User actively stop queue and free queue resource immediately - * Optimization method since close fd may delay - */ -#define UACCE_CMD_PUT_Q _IO('W', 1) - -/* - * UACCE Device flags: - * UACCE_DEV_SVA: Shared Virtual Addresses - * Support PASID - * Support device page faults (PCI PRI or SMMU Stall) - */ -#define UACCE_DEV_SVA BIT(0) - -/** - * enum uacce_qfrt: queue file region type - * @UACCE_QFRT_MMIO: device mmio region - * @UACCE_QFRT_DUS: device user share region - */ -enum uacce_qfrt { - UACCE_QFRT_MMIO = 0, - UACCE_QFRT_DUS = 1, -}; - -#endif diff --git a/original/uapi/mtd/mtd-abi.h b/original/uapi/mtd/mtd-abi.h index 65b9db9..47ffe32 100644 --- a/original/uapi/mtd/mtd-abi.h +++ b/original/uapi/mtd/mtd-abi.h @@ -104,7 +104,6 @@ struct mtd_write_req { #define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */ #define MTD_NO_ERASE 0x1000 /* No erase necessary */ #define MTD_POWERUP_LOCK 0x2000 /* Always locked after reset */ -#define MTD_SLC_ON_MLC_EMULATION 0x4000 /* Emulate SLC behavior on MLC NANDs */ /* Some common devices / combinations of capabilities */ #define MTD_CAP_ROM 0 @@ -262,7 +261,7 @@ struct mtd_ecc_stats { * @MTD_FILE_MODE_OTP_USER: OTP enabled in user mode * @MTD_FILE_MODE_RAW: OTP disabled, ECC disabled * - * These modes can be set via ioctl(MTDFILEMODE). The mode will be retained + * These modes can be set via ioctl(MTDFILEMODE). The mode mode will be retained * separately for each open file descriptor. * * Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW - diff --git a/original/uapi/rdma/efa-abi.h b/original/uapi/rdma/efa-abi.h index f89fbb5..53b6e20 100644 --- a/original/uapi/rdma/efa-abi.h +++ b/original/uapi/rdma/efa-abi.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ /* - * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved. + * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All rights reserved. */ #ifndef EFA_ABI_USER_H @@ -20,16 +20,6 @@ * hex bit offset of the field. */ -enum { - EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH = 1 << 0, - EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR = 1 << 1, -}; - -struct efa_ibv_alloc_ucontext_cmd { - __u32 comp_mask; - __u8 reserved_20[4]; -}; - 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, @@ -41,9 +31,6 @@ struct efa_ibv_alloc_ucontext_resp { __u16 sub_cqs_per_cq; __u16 inline_buf_size; __u32 max_llq_size; /* bytes */ - __u16 max_tx_batch; /* units of 64 bytes */ - __u16 min_sq_wr; - __u8 reserved_a0[4]; }; struct efa_ibv_alloc_pd_resp { @@ -105,7 +92,6 @@ struct efa_ibv_create_ah_resp { enum { EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0, - EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1, }; struct efa_ibv_ex_query_device_resp { diff --git a/original/uapi/rdma/hfi/hfi1_user.h b/original/uapi/rdma/hfi/hfi1_user.h index d95ef9a..01ac585 100644 --- a/original/uapi/rdma/hfi/hfi1_user.h +++ b/original/uapi/rdma/hfi/hfi1_user.h @@ -6,7 +6,7 @@ * * GPL LICENSE SUMMARY * - * Copyright(c) 2015 - 2020 Intel Corporation. + * Copyright(c) 2015 - 2018 Intel Corporation. * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as @@ -109,7 +109,6 @@ #define HFI1_CAP_OPFN (1UL << 16) /* Enable the OPFN protocol */ #define HFI1_CAP_SDMA_HEAD_CHECK (1UL << 17) /* SDMA head checking */ #define HFI1_CAP_EARLY_CREDIT_RETURN (1UL << 18) /* early credit return */ -#define HFI1_CAP_AIP (1UL << 19) /* Enable accelerated IP */ #define HFI1_RCVHDR_ENTSIZE_2 (1UL << 0) #define HFI1_RCVHDR_ENTSIZE_16 (1UL << 1) diff --git a/original/uapi/rdma/hns-abi.h b/original/uapi/rdma/hns-abi.h index 90b739d..eb76b38 100644 --- a/original/uapi/rdma/hns-abi.h +++ b/original/uapi/rdma/hns-abi.h @@ -39,12 +39,6 @@ struct hns_roce_ib_create_cq { __aligned_u64 buf_addr; __aligned_u64 db_addr; - __u32 cqe_size; - __u32 reserved; -}; - -enum hns_roce_cq_cap_flags { - HNS_ROCE_CQ_FLAG_RECORD_DB = 1 << 0, }; struct hns_roce_ib_create_cq_resp { @@ -73,19 +67,13 @@ struct hns_roce_ib_create_qp { __aligned_u64 sdb_addr; }; -enum hns_roce_qp_cap_flags { - HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0, - HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1, - HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2, -}; - struct hns_roce_ib_create_qp_resp { __aligned_u64 cap_flags; }; struct hns_roce_ib_alloc_ucontext_resp { __u32 qp_tab_size; - __u32 cqe_size; + __u32 reserved; }; struct hns_roce_ib_alloc_pd_resp { diff --git a/original/uapi/rdma/ib_user_ioctl_cmds.h b/original/uapi/rdma/ib_user_ioctl_cmds.h index dafc7eb..64f0e3a 100644 --- a/original/uapi/rdma/ib_user_ioctl_cmds.h +++ b/original/uapi/rdma/ib_user_ioctl_cmds.h @@ -1,6 +1,5 @@ /* * Copyright (c) 2018, Mellanox Technologies inc. All rights reserved. - * Copyright (c) 2020, Intel Corporation. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU @@ -57,7 +56,6 @@ enum uverbs_default_objects { UVERBS_OBJECT_FLOW_ACTION, UVERBS_OBJECT_DM, UVERBS_OBJECT_COUNTERS, - UVERBS_OBJECT_ASYNC_EVENT, }; enum { @@ -69,10 +67,6 @@ enum uverbs_methods_device { UVERBS_METHOD_INVOKE_WRITE, UVERBS_METHOD_INFO_HANDLES, UVERBS_METHOD_QUERY_PORT, - UVERBS_METHOD_GET_CONTEXT, - UVERBS_METHOD_QUERY_CONTEXT, - UVERBS_METHOD_QUERY_GID_TABLE, - UVERBS_METHOD_QUERY_GID_ENTRY, }; enum uverbs_attrs_invoke_write_cmd_attr_ids { @@ -86,16 +80,6 @@ enum uverbs_attrs_query_port_cmd_attr_ids { UVERBS_ATTR_QUERY_PORT_RESP, }; -enum uverbs_attrs_get_context_attr_ids { - UVERBS_ATTR_GET_CONTEXT_NUM_COMP_VECTORS, - UVERBS_ATTR_GET_CONTEXT_CORE_SUPPORT, -}; - -enum uverbs_attrs_query_context_attr_ids { - UVERBS_ATTR_QUERY_CONTEXT_NUM_COMP_VECTORS, - UVERBS_ATTR_QUERY_CONTEXT_CORE_SUPPORT, -}; - enum uverbs_attrs_create_cq_cmd_attr_ids { UVERBS_ATTR_CREATE_CQ_HANDLE, UVERBS_ATTR_CREATE_CQ_CQE, @@ -104,7 +88,6 @@ enum uverbs_attrs_create_cq_cmd_attr_ids { UVERBS_ATTR_CREATE_CQ_COMP_VECTOR, UVERBS_ATTR_CREATE_CQ_FLAGS, UVERBS_ATTR_CREATE_CQ_RESP_CQE, - UVERBS_ATTR_CREATE_CQ_EVENT_FD, }; enum uverbs_attrs_destroy_cq_cmd_attr_ids { @@ -130,91 +113,11 @@ enum uverbs_attrs_destroy_flow_action_esp { UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE, }; -enum uverbs_attrs_create_qp_cmd_attr_ids { - UVERBS_ATTR_CREATE_QP_HANDLE, - UVERBS_ATTR_CREATE_QP_XRCD_HANDLE, - UVERBS_ATTR_CREATE_QP_PD_HANDLE, - UVERBS_ATTR_CREATE_QP_SRQ_HANDLE, - UVERBS_ATTR_CREATE_QP_SEND_CQ_HANDLE, - UVERBS_ATTR_CREATE_QP_RECV_CQ_HANDLE, - UVERBS_ATTR_CREATE_QP_IND_TABLE_HANDLE, - UVERBS_ATTR_CREATE_QP_USER_HANDLE, - UVERBS_ATTR_CREATE_QP_CAP, - UVERBS_ATTR_CREATE_QP_TYPE, - UVERBS_ATTR_CREATE_QP_FLAGS, - UVERBS_ATTR_CREATE_QP_SOURCE_QPN, - UVERBS_ATTR_CREATE_QP_EVENT_FD, - UVERBS_ATTR_CREATE_QP_RESP_CAP, - UVERBS_ATTR_CREATE_QP_RESP_QP_NUM, -}; - -enum uverbs_attrs_destroy_qp_cmd_attr_ids { - UVERBS_ATTR_DESTROY_QP_HANDLE, - UVERBS_ATTR_DESTROY_QP_RESP, -}; - -enum uverbs_methods_qp { - UVERBS_METHOD_QP_CREATE, - UVERBS_METHOD_QP_DESTROY, -}; - -enum uverbs_attrs_create_srq_cmd_attr_ids { - UVERBS_ATTR_CREATE_SRQ_HANDLE, - UVERBS_ATTR_CREATE_SRQ_PD_HANDLE, - UVERBS_ATTR_CREATE_SRQ_XRCD_HANDLE, - UVERBS_ATTR_CREATE_SRQ_CQ_HANDLE, - UVERBS_ATTR_CREATE_SRQ_USER_HANDLE, - UVERBS_ATTR_CREATE_SRQ_MAX_WR, - UVERBS_ATTR_CREATE_SRQ_MAX_SGE, - UVERBS_ATTR_CREATE_SRQ_LIMIT, - UVERBS_ATTR_CREATE_SRQ_MAX_NUM_TAGS, - UVERBS_ATTR_CREATE_SRQ_TYPE, - UVERBS_ATTR_CREATE_SRQ_EVENT_FD, - UVERBS_ATTR_CREATE_SRQ_RESP_MAX_WR, - UVERBS_ATTR_CREATE_SRQ_RESP_MAX_SGE, - UVERBS_ATTR_CREATE_SRQ_RESP_SRQ_NUM, -}; - -enum uverbs_attrs_destroy_srq_cmd_attr_ids { - UVERBS_ATTR_DESTROY_SRQ_HANDLE, - UVERBS_ATTR_DESTROY_SRQ_RESP, -}; - -enum uverbs_methods_srq { - UVERBS_METHOD_SRQ_CREATE, - UVERBS_METHOD_SRQ_DESTROY, -}; - enum uverbs_methods_cq { UVERBS_METHOD_CQ_CREATE, UVERBS_METHOD_CQ_DESTROY, }; -enum uverbs_attrs_create_wq_cmd_attr_ids { - UVERBS_ATTR_CREATE_WQ_HANDLE, - UVERBS_ATTR_CREATE_WQ_PD_HANDLE, - UVERBS_ATTR_CREATE_WQ_CQ_HANDLE, - UVERBS_ATTR_CREATE_WQ_USER_HANDLE, - UVERBS_ATTR_CREATE_WQ_TYPE, - UVERBS_ATTR_CREATE_WQ_EVENT_FD, - UVERBS_ATTR_CREATE_WQ_MAX_WR, - UVERBS_ATTR_CREATE_WQ_MAX_SGE, - UVERBS_ATTR_CREATE_WQ_FLAGS, - UVERBS_ATTR_CREATE_WQ_RESP_MAX_WR, - UVERBS_ATTR_CREATE_WQ_RESP_MAX_SGE, - UVERBS_ATTR_CREATE_WQ_RESP_WQ_NUM, -}; - -enum uverbs_attrs_destroy_wq_cmd_attr_ids { - UVERBS_ATTR_DESTROY_WQ_HANDLE, - UVERBS_ATTR_DESTROY_WQ_RESP, -}; - -enum uverbs_methods_wq { - UVERBS_METHOD_WQ_CREATE, - UVERBS_METHOD_WQ_DESTROY, -}; - enum uverbs_methods_actions_flow_action_ops { UVERBS_METHOD_FLOW_ACTION_ESP_CREATE, UVERBS_METHOD_FLOW_ACTION_DESTROY, @@ -251,8 +154,6 @@ enum uverbs_methods_mr { UVERBS_METHOD_DM_MR_REG, UVERBS_METHOD_MR_DESTROY, UVERBS_METHOD_ADVISE_MR, - UVERBS_METHOD_QUERY_MR, - UVERBS_METHOD_REG_DMABUF_MR, }; enum uverbs_attrs_mr_destroy_ids { @@ -266,26 +167,6 @@ enum uverbs_attrs_advise_mr_cmd_attr_ids { UVERBS_ATTR_ADVISE_MR_SGE_LIST, }; -enum uverbs_attrs_query_mr_cmd_attr_ids { - UVERBS_ATTR_QUERY_MR_HANDLE, - UVERBS_ATTR_QUERY_MR_RESP_LKEY, - UVERBS_ATTR_QUERY_MR_RESP_RKEY, - UVERBS_ATTR_QUERY_MR_RESP_LENGTH, - UVERBS_ATTR_QUERY_MR_RESP_IOVA, -}; - -enum uverbs_attrs_reg_dmabuf_mr_cmd_attr_ids { - UVERBS_ATTR_REG_DMABUF_MR_HANDLE, - UVERBS_ATTR_REG_DMABUF_MR_PD_HANDLE, - UVERBS_ATTR_REG_DMABUF_MR_OFFSET, - UVERBS_ATTR_REG_DMABUF_MR_LENGTH, - UVERBS_ATTR_REG_DMABUF_MR_IOVA, - UVERBS_ATTR_REG_DMABUF_MR_FD, - UVERBS_ATTR_REG_DMABUF_MR_ACCESS_FLAGS, - UVERBS_ATTR_REG_DMABUF_MR_RESP_LKEY, - UVERBS_ATTR_REG_DMABUF_MR_RESP_RKEY, -}; - enum uverbs_attrs_create_counters_cmd_attr_ids { UVERBS_ATTR_CREATE_COUNTERS_HANDLE, }; @@ -360,26 +241,4 @@ enum uverbs_attrs_flow_destroy_ids { UVERBS_ATTR_DESTROY_FLOW_HANDLE, }; -enum uverbs_method_async_event { - UVERBS_METHOD_ASYNC_EVENT_ALLOC, -}; - -enum uverbs_attrs_async_event_create { - UVERBS_ATTR_ASYNC_EVENT_ALLOC_FD_HANDLE, -}; - -enum uverbs_attrs_query_gid_table_cmd_attr_ids { - UVERBS_ATTR_QUERY_GID_TABLE_ENTRY_SIZE, - UVERBS_ATTR_QUERY_GID_TABLE_FLAGS, - UVERBS_ATTR_QUERY_GID_TABLE_RESP_ENTRIES, - UVERBS_ATTR_QUERY_GID_TABLE_RESP_NUM_ENTRIES, -}; - -enum uverbs_attrs_query_gid_entry_cmd_attr_ids { - UVERBS_ATTR_QUERY_GID_ENTRY_PORT, - UVERBS_ATTR_QUERY_GID_ENTRY_GID_INDEX, - UVERBS_ATTR_QUERY_GID_ENTRY_FLAGS, - UVERBS_ATTR_QUERY_GID_ENTRY_RESP_ENTRY, -}; - #endif diff --git a/original/uapi/rdma/ib_user_ioctl_verbs.h b/original/uapi/rdma/ib_user_ioctl_verbs.h index 2248379..9019b2d 100644 --- a/original/uapi/rdma/ib_user_ioctl_verbs.h +++ b/original/uapi/rdma/ib_user_ioctl_verbs.h @@ -41,13 +41,6 @@ #define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name #endif -#define IB_UVERBS_ACCESS_OPTIONAL_FIRST (1 << 20) -#define IB_UVERBS_ACCESS_OPTIONAL_LAST (1 << 29) - -enum ib_uverbs_core_support { - IB_UVERBS_CORE_SUPPORT_OPTIONAL_MR_ACCESS = 1 << 0, -}; - enum ib_uverbs_access_flags { IB_UVERBS_ACCESS_LOCAL_WRITE = 1 << 0, IB_UVERBS_ACCESS_REMOTE_WRITE = 1 << 1, @@ -57,46 +50,6 @@ enum ib_uverbs_access_flags { IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5, IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6, IB_UVERBS_ACCESS_HUGETLB = 1 << 7, - - IB_UVERBS_ACCESS_RELAXED_ORDERING = IB_UVERBS_ACCESS_OPTIONAL_FIRST, - IB_UVERBS_ACCESS_OPTIONAL_RANGE = - ((IB_UVERBS_ACCESS_OPTIONAL_LAST << 1) - 1) & - ~(IB_UVERBS_ACCESS_OPTIONAL_FIRST - 1) -}; - -enum ib_uverbs_srq_type { - IB_UVERBS_SRQT_BASIC, - IB_UVERBS_SRQT_XRC, - IB_UVERBS_SRQT_TM, -}; - -enum ib_uverbs_wq_type { - IB_UVERBS_WQT_RQ, -}; - -enum ib_uverbs_wq_flags { - IB_UVERBS_WQ_FLAGS_CVLAN_STRIPPING = 1 << 0, - IB_UVERBS_WQ_FLAGS_SCATTER_FCS = 1 << 1, - IB_UVERBS_WQ_FLAGS_DELAY_DROP = 1 << 2, - IB_UVERBS_WQ_FLAGS_PCI_WRITE_END_PADDING = 1 << 3, -}; - -enum ib_uverbs_qp_type { - IB_UVERBS_QPT_RC = 2, - IB_UVERBS_QPT_UC, - IB_UVERBS_QPT_UD, - IB_UVERBS_QPT_RAW_PACKET = 8, - IB_UVERBS_QPT_XRC_INI, - IB_UVERBS_QPT_XRC_TGT, - IB_UVERBS_QPT_DRIVER = 0xFF, -}; - -enum ib_uverbs_qp_create_flags { - IB_UVERBS_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1, - IB_UVERBS_QP_CREATE_SCATTER_FCS = 1 << 8, - IB_UVERBS_QP_CREATE_CVLAN_STRIPPING = 1 << 9, - IB_UVERBS_QP_CREATE_PCI_WRITE_END_PADDING = 1 << 11, - IB_UVERBS_QP_CREATE_SQ_SIG_ALL = 1 << 12, }; enum ib_uverbs_query_port_cap_flags { @@ -208,7 +161,6 @@ enum ib_uverbs_read_counters_flags { enum ib_uverbs_advise_mr_advice { IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH, IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE, - IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT, }; enum ib_uverbs_advise_mr_flag { @@ -221,14 +173,6 @@ struct ib_uverbs_query_port_resp_ex { __u8 reserved[6]; }; -struct ib_uverbs_qp_cap { - __u32 max_send_wr; - __u32 max_recv_wr; - __u32 max_send_sge; - __u32 max_recv_sge; - __u32 max_inline_data; -}; - enum rdma_driver_id { RDMA_DRIVER_UNKNOWN, RDMA_DRIVER_MLX5, @@ -251,18 +195,4 @@ enum rdma_driver_id { RDMA_DRIVER_SIW, }; -enum ib_uverbs_gid_type { - IB_UVERBS_GID_TYPE_IB, - IB_UVERBS_GID_TYPE_ROCE_V1, - IB_UVERBS_GID_TYPE_ROCE_V2, -}; - -struct ib_uverbs_gid_entry { - __aligned_u64 gid[2]; - __u32 gid_index; - __u32 port_num; - __u32 gid_type; - __u32 netdev_ifindex; /* It is 0 if there is no netdev associated with it */ -}; - #endif diff --git a/original/uapi/rdma/ib_user_verbs.h b/original/uapi/rdma/ib_user_verbs.h index 7ee73a0..0474c74 100644 --- a/original/uapi/rdma/ib_user_verbs.h +++ b/original/uapi/rdma/ib_user_verbs.h @@ -457,17 +457,6 @@ struct ib_uverbs_poll_cq { __u32 ne; }; -enum ib_uverbs_wc_opcode { - IB_UVERBS_WC_SEND = 0, - IB_UVERBS_WC_RDMA_WRITE = 1, - IB_UVERBS_WC_RDMA_READ = 2, - IB_UVERBS_WC_COMP_SWAP = 3, - IB_UVERBS_WC_FETCH_ADD = 4, - IB_UVERBS_WC_BIND_MW = 5, - IB_UVERBS_WC_LOCAL_INV = 6, - IB_UVERBS_WC_TSO = 7, -}; - struct ib_uverbs_wc { __aligned_u64 wr_id; __u32 status; @@ -596,6 +585,20 @@ enum { IB_UVERBS_CREATE_QP_SUP_COMP_MASK = IB_UVERBS_CREATE_QP_MASK_IND_TABLE, }; +enum { + /* + * This value is equal to IB_QP_DEST_QPN. + */ + IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20, +}; + +enum { + /* + * This value is equal to IB_QP_RATE_LIMIT. + */ + IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25, +}; + struct ib_uverbs_ex_create_qp { __aligned_u64 user_handle; __u32 pd_handle; diff --git a/original/uapi/rdma/mlx5-abi.h b/original/uapi/rdma/mlx5-abi.h index 27905a0..624f5b5 100644 --- a/original/uapi/rdma/mlx5-abi.h +++ b/original/uapi/rdma/mlx5-abi.h @@ -49,7 +49,6 @@ enum { MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7, MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8, MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9, - MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10, }; enum { @@ -79,7 +78,6 @@ struct mlx5_ib_alloc_ucontext_req { enum mlx5_lib_caps { MLX5_LIB_CAP_4K_UAR = (__u64)1 << 0, - MLX5_LIB_CAP_DYN_UAR = (__u64)1 << 1, }; enum mlx5_ib_alloc_uctx_v2_flags { @@ -100,7 +98,6 @@ struct mlx5_ib_alloc_ucontext_req_v2 { enum mlx5_ib_alloc_ucontext_resp_mask { MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1, - MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2, }; enum mlx5_user_cmds_supp_uhw { @@ -269,7 +266,6 @@ struct mlx5_ib_query_device_resp { enum mlx5_ib_create_cq_flags { MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0, - MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1, }; struct mlx5_ib_create_cq { @@ -279,9 +275,6 @@ struct mlx5_ib_create_cq { __u8 cqe_comp_en; __u8 cqe_comp_res_format; __u16 flags; - __u16 uar_page_index; - __u16 reserved0; - __u32 reserved1; }; struct mlx5_ib_create_cq_resp { @@ -323,8 +316,6 @@ struct mlx5_ib_create_qp { __aligned_u64 sq_buf_addr; __aligned_u64 access_key; }; - __u32 ece_options; - __u32 reserved; }; /* RX Hash function flags */ @@ -374,7 +365,7 @@ enum mlx5_ib_create_qp_resp_mask { struct mlx5_ib_create_qp_resp { __u32 bfreg_index; - __u32 ece_options; + __u32 reserved; __u32 comp_mask; __u32 tirn; __u32 tisn; @@ -423,14 +414,12 @@ struct mlx5_ib_burst_info { struct mlx5_ib_modify_qp { __u32 comp_mask; struct mlx5_ib_burst_info burst_info; - __u32 ece_options; + __u32 reserved; }; struct mlx5_ib_modify_qp_resp { __u32 response_length; __u32 dctn; - __u32 ece_options; - __u32 reserved; }; struct mlx5_ib_create_wq_resp { diff --git a/original/uapi/rdma/mlx5_user_ioctl_cmds.h b/original/uapi/rdma/mlx5_user_ioctl_cmds.h index 3fd9b38..20d8830 100644 --- a/original/uapi/rdma/mlx5_user_ioctl_cmds.h +++ b/original/uapi/rdma/mlx5_user_ioctl_cmds.h @@ -115,39 +115,6 @@ enum mlx5_ib_devx_obj_methods { MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY, }; -enum mlx5_ib_var_alloc_attrs { - MLX5_IB_ATTR_VAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET, - MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH, - MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID, -}; - -enum mlx5_ib_var_obj_destroy_attrs { - MLX5_IB_ATTR_VAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), -}; - -enum mlx5_ib_var_obj_methods { - MLX5_IB_METHOD_VAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_METHOD_VAR_OBJ_DESTROY, -}; - -enum mlx5_ib_uar_alloc_attrs { - MLX5_IB_ATTR_UAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_ATTR_UAR_OBJ_ALLOC_TYPE, - MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_OFFSET, - MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_LENGTH, - MLX5_IB_ATTR_UAR_OBJ_ALLOC_PAGE_ID, -}; - -enum mlx5_ib_uar_obj_destroy_attrs { - MLX5_IB_ATTR_UAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), -}; - -enum mlx5_ib_uar_obj_methods { - MLX5_IB_METHOD_UAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_METHOD_UAR_OBJ_DESTROY, -}; - enum mlx5_ib_devx_umem_reg_attrs { MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR, @@ -160,22 +127,6 @@ enum mlx5_ib_devx_umem_dereg_attrs { MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), }; -enum mlx5_ib_pp_obj_methods { - MLX5_IB_METHOD_PP_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_METHOD_PP_OBJ_DESTROY, -}; - -enum mlx5_ib_pp_alloc_attrs { - MLX5_IB_ATTR_PP_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_ATTR_PP_OBJ_ALLOC_CTX, - MLX5_IB_ATTR_PP_OBJ_ALLOC_FLAGS, - MLX5_IB_ATTR_PP_OBJ_ALLOC_INDEX, -}; - -enum mlx5_ib_pp_obj_destroy_attrs { - MLX5_IB_ATTR_PP_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), -}; - enum mlx5_ib_devx_umem_methods { MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT), MLX5_IB_METHOD_DEVX_UMEM_DEREG, @@ -205,9 +156,6 @@ enum mlx5_ib_objects { MLX5_IB_OBJECT_FLOW_MATCHER, MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD, MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD, - MLX5_IB_OBJECT_VAR, - MLX5_IB_OBJECT_PP, - MLX5_IB_OBJECT_UAR, }; enum mlx5_ib_flow_matcher_create_attrs { @@ -228,11 +176,7 @@ enum mlx5_ib_flow_matcher_methods { MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, }; -enum mlx5_ib_device_query_context_attrs { - MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT), -}; - -#define MLX5_IB_DW_MATCH_PARAM 0x90 +#define MLX5_IB_DW_MATCH_PARAM 0x80 struct mlx5_ib_match_params { __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; @@ -245,11 +189,6 @@ enum mlx5_ib_flow_type { MLX5_IB_FLOW_TYPE_MC_DEFAULT, }; -enum mlx5_ib_create_flow_flags { - MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DEFAULT_MISS = 1 << 0, - MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP = 1 << 1, -}; - enum mlx5_ib_create_flow_attrs { MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, @@ -260,10 +199,9 @@ enum mlx5_ib_create_flow_attrs { MLX5_IB_ATTR_CREATE_FLOW_TAG, MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX, MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET, - MLX5_IB_ATTR_CREATE_FLOW_FLAGS, }; -enum mlx5_ib_destroy_flow_attrs { +enum mlx5_ib_destoy_flow_attrs { MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), }; @@ -290,14 +228,4 @@ enum mlx5_ib_create_flow_action_create_packet_reformat_attrs { MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF, }; -enum mlx5_ib_query_pd_attrs { - MLX5_IB_ATTR_QUERY_PD_HANDLE = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_ATTR_QUERY_PD_RESP_PDN, -}; - -enum mlx5_ib_pd_methods { - MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT), - -}; - #endif diff --git a/original/uapi/rdma/mlx5_user_ioctl_verbs.h b/original/uapi/rdma/mlx5_user_ioctl_verbs.h index 56b26ea..88b6ca7 100644 --- a/original/uapi/rdma/mlx5_user_ioctl_verbs.h +++ b/original/uapi/rdma/mlx5_user_ioctl_verbs.h @@ -44,7 +44,6 @@ enum mlx5_ib_uapi_flow_table_type { MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX = 0x1, MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB = 0x2, MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_RX = 0x3, - MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TX = 0x4, }; enum mlx5_ib_uapi_flow_action_packet_reformat_type { @@ -74,14 +73,5 @@ struct mlx5_ib_uapi_devx_async_event_hdr { __u8 out_data[]; }; -enum mlx5_ib_uapi_pp_alloc_flags { - MLX5_IB_UAPI_PP_ALLOC_FLAGS_DEDICATED_INDEX = 1 << 0, -}; - -enum mlx5_ib_uapi_uar_alloc_type { - MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0, - MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1, -}; - #endif diff --git a/original/uapi/rdma/qedr-abi.h b/original/uapi/rdma/qedr-abi.h index bf7333b..c022ee2 100644 --- a/original/uapi/rdma/qedr-abi.h +++ b/original/uapi/rdma/qedr-abi.h @@ -39,9 +39,8 @@ /* user kernel communication data structures. */ enum qedr_alloc_ucontext_flags { - QEDR_ALLOC_UCTX_EDPM_MODE = 1 << 0, - QEDR_ALLOC_UCTX_DB_REC = 1 << 1, - QEDR_SUPPORT_DPM_SIZES = 1 << 2, + QEDR_ALLOC_UCTX_RESERVED = 1 << 0, + QEDR_ALLOC_UCTX_DB_REC = 1 << 1 }; struct qedr_alloc_ucontext_req { @@ -49,19 +48,6 @@ struct qedr_alloc_ucontext_req { __u32 reserved; }; -#define QEDR_LDPM_MAX_SIZE (8192) -#define QEDR_EDPM_TRANS_SIZE (64) -#define QEDR_EDPM_MAX_SIZE (ROCE_REQ_MAX_INLINE_DATA_SIZE) - -enum qedr_rdma_dpm_type { - QEDR_DPM_TYPE_NONE = 0, - QEDR_DPM_TYPE_ROCE_ENHANCED = 1 << 0, - QEDR_DPM_TYPE_ROCE_LEGACY = 1 << 1, - QEDR_DPM_TYPE_IWARP_LEGACY = 1 << 2, - QEDR_DPM_TYPE_ROCE_EDPM_MODE = 1 << 3, - QEDR_DPM_SIZES_SET = 1 << 4, -}; - struct qedr_alloc_ucontext_resp { __aligned_u64 db_pa; __u32 db_size; @@ -73,14 +59,10 @@ struct qedr_alloc_ucontext_resp { __u32 sges_per_recv_wr; __u32 sges_per_srq_wr; __u32 max_cqes; - __u8 dpm_flags; + __u8 dpm_enabled; __u8 wids_enabled; __u16 wid_count; - __u16 ldpm_limit_size; - __u8 edpm_trans_size; - __u8 reserved; - __u16 edpm_limit_size; - __u8 padding[6]; + __u32 reserved; }; struct qedr_alloc_pd_ureq { diff --git a/original/uapi/rdma/rdma_netlink.h b/original/uapi/rdma/rdma_netlink.h index d2f5b83..8e27778 100644 --- a/original/uapi/rdma/rdma_netlink.h +++ b/original/uapi/rdma/rdma_netlink.h @@ -287,12 +287,6 @@ enum rdma_nldev_command { RDMA_NLDEV_CMD_STAT_DEL, - RDMA_NLDEV_CMD_RES_QP_GET_RAW, - - RDMA_NLDEV_CMD_RES_CQ_GET_RAW, - - RDMA_NLDEV_CMD_RES_MR_GET_RAW, - RDMA_NLDEV_NUM_OPS }; @@ -531,8 +525,6 @@ enum rdma_nldev_attr { */ RDMA_NLDEV_ATTR_DEV_DIM, /* u8 */ - RDMA_NLDEV_ATTR_RES_RAW, /* binary */ - /* * Always the end */ @@ -569,6 +561,5 @@ enum rdma_nl_counter_mode { */ enum rdma_nl_counter_mask { RDMA_COUNTER_MASK_QP_TYPE = 1, - RDMA_COUNTER_MASK_PID = 1 << 1, }; #endif /* _UAPI_RDMA_NETLINK_H */ diff --git a/original/uapi/rdma/rdma_user_cm.h b/original/uapi/rdma/rdma_user_cm.h index ed5a514..e42940a 100644 --- a/original/uapi/rdma/rdma_user_cm.h +++ b/original/uapi/rdma/rdma_user_cm.h @@ -164,8 +164,6 @@ struct rdma_ucm_query_route_resp { __u32 num_paths; __u8 port_num; __u8 reserved[3]; - __u32 ibdev_index; - __u32 reserved1; }; struct rdma_ucm_query_addr_resp { @@ -177,8 +175,6 @@ struct rdma_ucm_query_addr_resp { __u16 dst_size; struct __kernel_sockaddr_storage src_addr; struct __kernel_sockaddr_storage dst_addr; - __u32 ibdev_index; - __u32 reserved1; }; struct rdma_ucm_query_path_resp { @@ -210,16 +206,10 @@ struct rdma_ucm_ud_param { __u8 reserved[7]; }; -struct rdma_ucm_ece { - __u32 vendor_id; - __u32 attr_mod; -}; - struct rdma_ucm_connect { struct rdma_ucm_conn_param conn_param; __u32 id; __u32 reserved; - struct rdma_ucm_ece ece; }; struct rdma_ucm_listen { @@ -232,14 +222,12 @@ struct rdma_ucm_accept { struct rdma_ucm_conn_param conn_param; __u32 id; __u32 reserved; - struct rdma_ucm_ece ece; }; struct rdma_ucm_reject { __u32 id; __u8 private_data_len; - __u8 reason; - __u8 reserved[2]; + __u8 reserved[3]; __u8 private_data[RDMA_MAX_PRIVATE_DATA]; }; @@ -299,7 +287,6 @@ struct rdma_ucm_event_resp { struct rdma_ucm_ud_param ud; } param; __u32 reserved; - struct rdma_ucm_ece ece; }; /* Option levels */ diff --git a/original/uapi/rdma/rdma_user_ioctl.h b/original/uapi/rdma/rdma_user_ioctl.h index 53c5518..d92d272 100644 --- a/original/uapi/rdma/rdma_user_ioctl.h +++ b/original/uapi/rdma/rdma_user_ioctl.h @@ -43,7 +43,7 @@ /* * General blocks assignments - * It is closed on purpose - do not expose it to user space + * It is closed on purpose do not expose it it user space * #define MAD_CMD_BASE 0x00 * #define HFI1_CMD_BAS 0xE0 */ diff --git a/original/uapi/rdma/rdma_user_ioctl_cmds.h b/original/uapi/rdma/rdma_user_ioctl_cmds.h index 38ab7ac..7b1ec80 100644 --- a/original/uapi/rdma/rdma_user_ioctl_cmds.h +++ b/original/uapi/rdma/rdma_user_ioctl_cmds.h @@ -36,7 +36,7 @@ #include <linux/types.h> #include <linux/ioctl.h> -/* Documentation/userspace-api/ioctl/ioctl-number.rst */ +/* Documentation/ioctl/ioctl-number.rst */ #define RDMA_IOCTL_MAGIC 0x1b #define RDMA_VERBS_IOCTL \ _IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr) diff --git a/original/uapi/rdma/rdma_user_rxe.h b/original/uapi/rdma/rdma_user_rxe.h index 068433e..aae2e69 100644 --- a/original/uapi/rdma/rdma_user_rxe.h +++ b/original/uapi/rdma/rdma_user_rxe.h @@ -39,11 +39,6 @@ #include <linux/in.h> #include <linux/in6.h> -enum { - RXE_NETWORK_TYPE_IPV4 = 1, - RXE_NETWORK_TYPE_IPV6 = 2, -}; - union rxe_gid { __u8 raw[16]; struct { @@ -62,7 +57,6 @@ struct rxe_global_route { struct rxe_av { __u8 port_num; - /* From RXE_NETWORK_TYPE_* */ __u8 network_type; __u8 dmac[6]; struct rxe_global_route grh; @@ -105,8 +99,8 @@ struct rxe_send_wr { struct ib_mr *mr; __aligned_u64 reserved; }; - __u32 key; - __u32 access; + __u32 key; + __u32 access; } reg; } wr; }; @@ -118,7 +112,7 @@ struct rxe_sge { }; struct mminfo { - __aligned_u64 offset; + __aligned_u64 offset; __u32 size; __u32 pad; }; @@ -181,25 +175,4 @@ struct rxe_modify_srq_cmd { __aligned_u64 mmap_info_addr; }; -/* This data structure is stored at the base of work and - * completion queues shared between user space and kernel space. - * It contains the producer and consumer indices. Is also - * contains a copy of the queue size parameters for user space - * to use but the kernel must use the parameters in the - * rxe_queue struct. For performance reasons arrange to have - * producer and consumer indices in separate cache lines - * the kernel should always mask the indices to avoid accessing - * memory outside of the data area - */ -struct rxe_queue_buf { - __u32 log2_elem_size; - __u32 index_mask; - __u32 pad_1[30]; - __u32 producer_index; - __u32 pad_2[31]; - __u32 consumer_index; - __u32 pad_3[31]; - __u8 data[]; -}; - #endif /* RDMA_USER_RXE_H */ diff --git a/original/uapi/rdma/vmw_pvrdma-abi.h b/original/uapi/rdma/vmw_pvrdma-abi.h index 901a4fd..f8b638c 100644 --- a/original/uapi/rdma/vmw_pvrdma-abi.h +++ b/original/uapi/rdma/vmw_pvrdma-abi.h @@ -133,13 +133,6 @@ enum pvrdma_wc_flags { PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_NETWORK_HDR_TYPE, }; -enum pvrdma_network_type { - PVRDMA_NETWORK_IB, - PVRDMA_NETWORK_ROCE_V1 = PVRDMA_NETWORK_IB, - PVRDMA_NETWORK_IPV4, - PVRDMA_NETWORK_IPV6 -}; - struct pvrdma_alloc_ucontext_resp { __u32 qp_tab_size; __u32 reserved; diff --git a/original/uapi/scsi/fc/fc_els.h b/original/uapi/scsi/fc/fc_els.h index 91d4be9..76f627f 100644 --- a/original/uapi/scsi/fc/fc_els.h +++ b/original/uapi/scsi/fc/fc_els.h @@ -9,7 +9,6 @@ #define _FC_ELS_H_ #include <linux/types.h> -#include <asm/byteorder.h> /* * Fibre Channel Switch - Enhanced Link Services definitions. @@ -41,8 +40,6 @@ enum fc_els_cmd { ELS_REC = 0x13, /* read exchange concise */ ELS_SRR = 0x14, /* sequence retransmission request */ ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */ - ELS_RDP = 0x18, /* Read Diagnostic Parameters */ - ELS_RDF = 0x19, /* Register Diagnostic Functions */ ELS_PRLI = 0x20, /* process login */ ELS_PRLO = 0x21, /* process logout */ ELS_SCN = 0x22, /* state change notification */ @@ -111,8 +108,6 @@ enum fc_els_cmd { [ELS_REC] = "REC", \ [ELS_SRR] = "SRR", \ [ELS_FPIN] = "FPIN", \ - [ELS_RDP] = "RDP", \ - [ELS_RDF] = "RDF", \ [ELS_PRLI] = "PRLI", \ [ELS_PRLO] = "PRLO", \ [ELS_SCN] = "SCN", \ @@ -213,99 +208,6 @@ enum fc_els_rjt_explan { }; /* - * Link Service TLV Descriptor Tag Values - */ -enum fc_ls_tlv_dtag { - ELS_DTAG_LS_REQ_INFO = 0x00000001, - /* Link Service Request Information Descriptor */ - ELS_DTAG_LNK_INTEGRITY = 0x00020001, - /* Link Integrity Notification Descriptor */ - ELS_DTAG_DELIVERY = 0x00020002, - /* Delivery Notification Descriptor */ - ELS_DTAG_PEER_CONGEST = 0x00020003, - /* Peer Congestion Notification Descriptor */ - ELS_DTAG_CONGESTION = 0x00020004, - /* Congestion Notification Descriptor */ - ELS_DTAG_FPIN_REGISTER = 0x00030001, - /* FPIN Registration Descriptor */ -}; - -/* - * Initializer useful for decoding table. - * Please keep this in sync with the above definitions. - */ -#define FC_LS_TLV_DTAG_INIT { \ - { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, \ - { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, \ - { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, \ - { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, \ - { ELS_DTAG_CONGESTION, "Congestion Notification" }, \ - { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \ -} - - -/* - * Generic Link Service TLV Descriptor format - * - * This structure, as it defines no payload, will also be referred to - * as the "tlv header" - which contains the tag and len fields. - */ -struct fc_tlv_desc { - __be32 desc_tag; /* Notification Descriptor Tag */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - */ - __u8 desc_value[0]; /* Descriptor Value */ -}; - -/* Descriptor tag and len fields are considered the mandatory header - * for a descriptor - */ -#define FC_TLV_DESC_HDR_SZ sizeof(struct fc_tlv_desc) - -/* - * Macro, used when initializing payloads, to return the descriptor length. - * Length is size of descriptor minus the tag and len fields. - */ -#define FC_TLV_DESC_LENGTH_FROM_SZ(desc) \ - (sizeof(desc) - FC_TLV_DESC_HDR_SZ) - -/* Macro, used on received payloads, to return the descriptor length */ -#define FC_TLV_DESC_SZ_FROM_LENGTH(tlv) \ - (__be32_to_cpu((tlv)->desc_len) + FC_TLV_DESC_HDR_SZ) - -/* - * This helper is used to walk descriptors in a descriptor list. - * Given the address of the current descriptor, which minimally contains a - * tag and len field, calculate the address of the next descriptor based - * on the len field. - */ -static inline void *fc_tlv_next_desc(void *desc) -{ - struct fc_tlv_desc *tlv = desc; - - return (desc + FC_TLV_DESC_SZ_FROM_LENGTH(tlv)); -} - - -/* - * Link Service Request Information Descriptor - */ -struct fc_els_lsri_desc { - __be32 desc_tag; /* descriptor tag (0x0000 0001) */ - __be32 desc_len; /* Length of Descriptor (in bytes) (4). - * Size of descriptor excluding - * desc_tag and desc_len fields. - */ - struct { - __u8 cmd; /* ELS cmd byte */ - __u8 bytes[3]; /* bytes 1..3 */ - } rqst_w0; /* Request word 0 */ -}; - - -/* * Common service parameters (N ports). */ struct fc_els_csp { @@ -916,174 +818,25 @@ enum fc_els_clid_ic { ELS_CLID_IC_LIP = 8, /* receiving LIP */ }; -/* - * Link Integrity event types - */ -enum fc_fpin_li_event_types { - FPIN_LI_UNKNOWN = 0x0, - FPIN_LI_LINK_FAILURE = 0x1, - FPIN_LI_LOSS_OF_SYNC = 0x2, - FPIN_LI_LOSS_OF_SIG = 0x3, - FPIN_LI_PRIM_SEQ_ERR = 0x4, - FPIN_LI_INVALID_TX_WD = 0x5, - FPIN_LI_INVALID_CRC = 0x6, - FPIN_LI_DEVICE_SPEC = 0xF, -}; - -/* - * Initializer useful for decoding table. - * Please keep this in sync with the above definitions. - */ -#define FC_FPIN_LI_EVT_TYPES_INIT { \ - { FPIN_LI_UNKNOWN, "Unknown" }, \ - { FPIN_LI_LINK_FAILURE, "Link Failure" }, \ - { FPIN_LI_LOSS_OF_SYNC, "Loss of Synchronization" }, \ - { FPIN_LI_LOSS_OF_SIG, "Loss of Signal" }, \ - { FPIN_LI_PRIM_SEQ_ERR, "Primitive Sequence Protocol Error" }, \ - { FPIN_LI_INVALID_TX_WD, "Invalid Transmission Word" }, \ - { FPIN_LI_INVALID_CRC, "Invalid CRC" }, \ - { FPIN_LI_DEVICE_SPEC, "Device Specific" }, \ -} - -/* - * Delivery event types - */ -enum fc_fpin_deli_event_types { - FPIN_DELI_UNKNOWN = 0x0, - FPIN_DELI_TIMEOUT = 0x1, - FPIN_DELI_UNABLE_TO_ROUTE = 0x2, - FPIN_DELI_DEVICE_SPEC = 0xF, -}; - -/* - * Initializer useful for decoding table. - * Please keep this in sync with the above definitions. - */ -#define FC_FPIN_DELI_EVT_TYPES_INIT { \ - { FPIN_DELI_UNKNOWN, "Unknown" }, \ - { FPIN_DELI_TIMEOUT, "Timeout" }, \ - { FPIN_DELI_UNABLE_TO_ROUTE, "Unable to Route" }, \ - { FPIN_DELI_DEVICE_SPEC, "Device Specific" }, \ -} - -/* - * Congestion event types - */ -enum fc_fpin_congn_event_types { - FPIN_CONGN_CLEAR = 0x0, - FPIN_CONGN_LOST_CREDIT = 0x1, - FPIN_CONGN_CREDIT_STALL = 0x2, - FPIN_CONGN_OVERSUBSCRIPTION = 0x3, - FPIN_CONGN_DEVICE_SPEC = 0xF, -}; - -/* - * Initializer useful for decoding table. - * Please keep this in sync with the above definitions. - */ -#define FC_FPIN_CONGN_EVT_TYPES_INIT { \ - { FPIN_CONGN_CLEAR, "Clear" }, \ - { FPIN_CONGN_LOST_CREDIT, "Lost Credit" }, \ - { FPIN_CONGN_CREDIT_STALL, "Credit Stall" }, \ - { FPIN_CONGN_OVERSUBSCRIPTION, "Oversubscription" }, \ - { FPIN_CONGN_DEVICE_SPEC, "Device Specific" }, \ -} - -enum fc_fpin_congn_severity_types { - FPIN_CONGN_SEVERITY_WARNING = 0xF1, - FPIN_CONGN_SEVERITY_ERROR = 0xF7, -}; - -/* - * Link Integrity Notification Descriptor - */ -struct fc_fn_li_desc { - __be32 desc_tag; /* Descriptor Tag (0x00020001) */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - */ - __be64 detecting_wwpn; /* Port Name that detected event */ - __be64 attached_wwpn; /* Port Name of device attached to - * detecting Port Name - */ - __be16 event_type; /* see enum fc_fpin_li_event_types */ - __be16 event_modifier; /* Implementation specific value - * describing the event type - */ - __be32 event_threshold;/* duration in ms of the link - * integrity detection cycle - */ - __be32 event_count; /* minimum number of event - * occurrences during the event - * threshold to caause the LI event - */ - __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible - * through the attached port - */ -}; /* - * Delivery Notification Descriptor + * Fabric Notification Descriptor Tag values */ -struct fc_fn_deli_desc { - __be32 desc_tag; /* Descriptor Tag (0x00020002) */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - */ - __be64 detecting_wwpn; /* Port Name that detected event */ - __be64 attached_wwpn; /* Port Name of device attached to - * detecting Port Name - */ - __be32 deli_reason_code;/* see enum fc_fpin_deli_event_types */ +enum fc_fn_dtag { + ELS_FN_DTAG_LNK_INTEGRITY = 0x00020001, /* Link Integrity */ + ELS_FN_DTAG_PEER_CONGEST = 0x00020003, /* Peer Congestion */ + ELS_FN_DTAG_CONGESTION = 0x00020004, /* Congestion */ }; /* - * Peer Congestion Notification Descriptor + * Fabric Notification Descriptor */ -struct fc_fn_peer_congn_desc { - __be32 desc_tag; /* Descriptor Tag (0x00020003) */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - */ - __be64 detecting_wwpn; /* Port Name that detected event */ - __be64 attached_wwpn; /* Port Name of device attached to - * detecting Port Name - */ - __be16 event_type; /* see enum fc_fpin_congn_event_types */ - __be16 event_modifier; /* Implementation specific value - * describing the event type - */ - __be32 event_period; /* duration (ms) of the detected - * congestion event - */ - __be32 pname_count; /* number of portname_list elements */ - __be64 pname_list[0]; /* list of N_Port_Names accessible - * through the attached port - */ -}; - -/* - * Congestion Notification Descriptor - */ -struct fc_fn_congn_desc { - __be32 desc_tag; /* Descriptor Tag (0x00020004) */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - */ - __be16 event_type; /* see enum fc_fpin_congn_event_types */ - __be16 event_modifier; /* Implementation specific value - * describing the event type - */ - __be32 event_period; /* duration (ms) of the detected - * congestion event - */ - __u8 severity; /* command */ - __u8 resv[3]; /* reserved - must be zero */ +struct fc_fn_desc { + __be32 fn_desc_tag; /* Notification Descriptor Tag */ + __be32 fn_desc_value_len; /* Length of Descriptor Value field + * (in bytes) + */ + __u8 fn_desc_value[0]; /* Descriptor Value */ }; /* @@ -1092,56 +845,8 @@ struct fc_fn_congn_desc { struct fc_els_fpin { __u8 fpin_cmd; /* command (0x16) */ __u8 fpin_zero[3]; /* specified as zero - part of cmd */ - __be32 desc_len; /* Length of Descriptor List (in bytes). - * Size of ELS excluding fpin_cmd, - * fpin_zero and desc_len fields. - */ - struct fc_tlv_desc fpin_desc[0]; /* Descriptor list */ -}; - -/* Diagnostic Function Descriptor - FPIN Registration */ -struct fc_df_desc_fpin_reg { - __be32 desc_tag; /* FPIN Registration (0x00030001) */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - */ - __be32 count; /* Number of desc_tags elements */ - __be32 desc_tags[0]; /* Array of Descriptor Tags. - * Each tag indicates a function - * supported by the N_Port (request) - * or by the N_Port and Fabric - * Controller (reply; may be a subset - * of the request). - * See ELS_FN_DTAG_xxx for tag values. - */ + __be32 fpin_desc_cnt; /* count of descriptors */ + struct fc_fn_desc fpin_desc[0]; /* Descriptor list */ }; -/* - * ELS_RDF - Register Diagnostic Functions - */ -struct fc_els_rdf { - __u8 fpin_cmd; /* command (0x19) */ - __u8 fpin_zero[3]; /* specified as zero - part of cmd */ - __be32 desc_len; /* Length of Descriptor List (in bytes). - * Size of ELS excluding fpin_cmd, - * fpin_zero and desc_len fields. - */ - struct fc_tlv_desc desc[0]; /* Descriptor list */ -}; - -/* - * ELS RDF LS_ACC Response. - */ -struct fc_els_rdf_resp { - struct fc_els_ls_acc acc_hdr; - __be32 desc_list_len; /* Length of response (in - * bytes). Excludes acc_hdr - * and desc_list_len fields. - */ - struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; /* Supported Descriptor list */ -}; - - #endif /* _FC_ELS_H_ */ diff --git a/original/uapi/scsi/scsi_bsg_ufs.h b/original/uapi/scsi/scsi_bsg_ufs.h index d55f217..9988db6 100644 --- a/original/uapi/scsi/scsi_bsg_ufs.h +++ b/original/uapi/scsi/scsi_bsg_ufs.h @@ -68,13 +68,14 @@ struct utp_upiu_cmd { * @header:UPIU header structure DW-0 to DW-2 * @sc: fields structure for scsi command DW-3 to DW-7 * @qr: fields structure for query request DW-3 to DW-7 - * @uc: use utp_upiu_query to host the 4 dwords of uic command */ struct utp_upiu_req { struct utp_upiu_header header; union { struct utp_upiu_cmd sc; struct utp_upiu_query qr; + struct utp_upiu_query tr; + /* use utp_upiu_query to host the 4 dwords of uic command */ struct utp_upiu_query uc; }; }; diff --git a/original/uapi/sound/asoc.h b/original/uapi/sound/asoc.h index da61398..a74ca23 100644 --- a/original/uapi/sound/asoc.h +++ b/original/uapi/sound/asoc.h @@ -170,22 +170,16 @@ #define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3) /* DAI topology BCLK parameter - * For the backwards capability, by default codec is bclk provider + * For the backwards capability, by default codec is bclk master */ -#define SND_SOC_TPLG_BCLK_CP 0 /* codec is bclk provider */ -#define SND_SOC_TPLG_BCLK_CC 1 /* codec is bclk consumer */ -/* keep previous definitions for compatibility */ -#define SND_SOC_TPLG_BCLK_CM SND_SOC_TPLG_BCLK_CP -#define SND_SOC_TPLG_BCLK_CS SND_SOC_TPLG_BCLK_CC +#define SND_SOC_TPLG_BCLK_CM 0 /* codec is bclk master */ +#define SND_SOC_TPLG_BCLK_CS 1 /* codec is bclk slave */ /* DAI topology FSYNC parameter - * For the backwards capability, by default codec is fsync provider + * For the backwards capability, by default codec is fsync master */ -#define SND_SOC_TPLG_FSYNC_CP 0 /* codec is fsync provider */ -#define SND_SOC_TPLG_FSYNC_CC 1 /* codec is fsync consumer */ -/* keep previous definitions for compatibility */ -#define SND_SOC_TPLG_FSYNC_CM SND_SOC_TPLG_FSYNC_CP -#define SND_SOC_TPLG_FSYNC_CS SND_SOC_TPLG_FSYNC_CC +#define SND_SOC_TPLG_FSYNC_CM 0 /* codec is fsync master */ +#define SND_SOC_TPLG_FSYNC_CS 1 /* codec is fsync slave */ /* * Block Header. @@ -342,8 +336,8 @@ struct snd_soc_tplg_hw_config { __u8 clock_gated; /* SND_SOC_TPLG_DAI_CLK_GATE_ value */ __u8 invert_bclk; /* 1 for inverted BCLK, 0 for normal */ __u8 invert_fsync; /* 1 for inverted frame clock, 0 for normal */ - __u8 bclk_provider; /* SND_SOC_TPLG_BCLK_ value */ - __u8 fsync_provider; /* SND_SOC_TPLG_FSYNC_ value */ + __u8 bclk_master; /* SND_SOC_TPLG_BCLK_ value */ + __u8 fsync_master; /* SND_SOC_TPLG_FSYNC_ value */ __u8 mclk_direction; /* SND_SOC_TPLG_MCLK_ value */ __le16 reserved; /* for 32bit alignment */ __le32 mclk_rate; /* MCLK or SYSCLK freqency in Hz */ diff --git a/original/uapi/sound/asound.h b/original/uapi/sound/asound.h index 535a722..df1153c 100644 --- a/original/uapi/sound/asound.h +++ b/original/uapi/sound/asound.h @@ -26,9 +26,7 @@ #if defined(__KERNEL__) || defined(__linux__) #include <linux/types.h> -#include <asm/byteorder.h> #else -#include <endian.h> #include <sys/ioctl.h> #endif @@ -156,7 +154,7 @@ struct snd_hwdep_dsp_image { * * *****************************************************************************/ -#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 15) +#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 14) typedef unsigned long snd_pcm_uframes_t; typedef signed long snd_pcm_sframes_t; @@ -303,9 +301,7 @@ typedef int __bitwise snd_pcm_subformat_t; #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */ #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */ -#if (__BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)) || defined __KERNEL__ -#define __SND_STRUCT_TIME64 -#endif + typedef int __bitwise snd_pcm_state_t; #define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */ @@ -321,17 +317,8 @@ typedef int __bitwise snd_pcm_state_t; enum { SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000, - SNDRV_PCM_MMAP_OFFSET_STATUS_OLD = 0x80000000, - SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD = 0x81000000, - SNDRV_PCM_MMAP_OFFSET_STATUS_NEW = 0x82000000, - SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW = 0x83000000, -#ifdef __SND_STRUCT_TIME64 - SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_NEW, - SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW, -#else - SNDRV_PCM_MMAP_OFFSET_STATUS = SNDRV_PCM_MMAP_OFFSET_STATUS_OLD, - SNDRV_PCM_MMAP_OFFSET_CONTROL = SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD, -#endif + SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000, + SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000, }; union snd_pcm_sync_id { @@ -469,13 +456,8 @@ enum { SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED }; -#ifndef __KERNEL__ -/* explicit padding avoids incompatibility between i386 and x86-64 */ -typedef struct { unsigned char pad[sizeof(time_t) - sizeof(int)]; } __time_pad; - struct snd_pcm_status { snd_pcm_state_t state; /* stream state */ - __time_pad pad1; /* align to timespec */ struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */ struct timespec tstamp; /* reference timestamp */ snd_pcm_uframes_t appl_ptr; /* appl ptr */ @@ -491,48 +473,17 @@ struct snd_pcm_status { __u32 audio_tstamp_accuracy; /* in ns units, only valid if indicated in audio_tstamp_data */ unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */ }; -#endif - -/* - * For mmap operations, we need the 64-bit layout, both for compat mode, - * and for y2038 compatibility. For 64-bit applications, the two definitions - * are identical, so we keep the traditional version. - */ -#ifdef __SND_STRUCT_TIME64 -#define __snd_pcm_mmap_status64 snd_pcm_mmap_status -#define __snd_pcm_mmap_control64 snd_pcm_mmap_control -#define __snd_pcm_sync_ptr64 snd_pcm_sync_ptr -#ifdef __KERNEL__ -#define __snd_timespec64 __kernel_timespec -#else -#define __snd_timespec64 timespec -#endif -struct __snd_timespec { - __s32 tv_sec; - __s32 tv_nsec; -}; -#else -#define __snd_pcm_mmap_status snd_pcm_mmap_status -#define __snd_pcm_mmap_control snd_pcm_mmap_control -#define __snd_pcm_sync_ptr snd_pcm_sync_ptr -#define __snd_timespec timespec -struct __snd_timespec64 { - __s64 tv_sec; - __s64 tv_nsec; -}; -#endif - -struct __snd_pcm_mmap_status { +struct snd_pcm_mmap_status { snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */ int pad1; /* Needed for 64 bit alignment */ snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */ - struct __snd_timespec tstamp; /* Timestamp */ + struct timespec tstamp; /* Timestamp */ snd_pcm_state_t suspended_state; /* RO: suspended stream state */ - struct __snd_timespec audio_tstamp; /* from sample counter or wall clock */ + struct timespec audio_tstamp; /* from sample counter or wall clock */ }; -struct __snd_pcm_mmap_control { +struct snd_pcm_mmap_control { snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */ snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */ }; @@ -541,59 +492,14 @@ struct __snd_pcm_mmap_control { #define SNDRV_PCM_SYNC_PTR_APPL (1<<1) /* get appl_ptr from driver (r/w op) */ #define SNDRV_PCM_SYNC_PTR_AVAIL_MIN (1<<2) /* get avail_min from driver */ -struct __snd_pcm_sync_ptr { +struct snd_pcm_sync_ptr { unsigned int flags; union { - struct __snd_pcm_mmap_status status; - unsigned char reserved[64]; - } s; - union { - struct __snd_pcm_mmap_control control; - unsigned char reserved[64]; - } c; -}; - -#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN) -typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)]; -typedef char __pad_after_uframe[0]; -#endif - -#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN) -typedef char __pad_before_uframe[0]; -typedef char __pad_after_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)]; -#endif - -struct __snd_pcm_mmap_status64 { - snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */ - __u32 pad1; /* Needed for 64 bit alignment */ - __pad_before_uframe __pad1; - snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */ - __pad_after_uframe __pad2; - struct __snd_timespec64 tstamp; /* Timestamp */ - snd_pcm_state_t suspended_state;/* RO: suspended stream state */ - __u32 pad3; /* Needed for 64 bit alignment */ - struct __snd_timespec64 audio_tstamp; /* sample counter or wall clock */ -}; - -struct __snd_pcm_mmap_control64 { - __pad_before_uframe __pad1; - snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */ - __pad_before_uframe __pad2; - - __pad_before_uframe __pad3; - snd_pcm_uframes_t avail_min; /* RW: min available frames for wakeup */ - __pad_after_uframe __pad4; -}; - -struct __snd_pcm_sync_ptr64 { - __u32 flags; - __u32 pad1; - union { - struct __snd_pcm_mmap_status64 status; + struct snd_pcm_mmap_status status; unsigned char reserved[64]; } s; union { - struct __snd_pcm_mmap_control64 control; + struct snd_pcm_mmap_control control; unsigned char reserved[64]; } c; }; @@ -678,8 +584,6 @@ enum { #define SNDRV_PCM_IOCTL_STATUS _IOR('A', 0x20, struct snd_pcm_status) #define SNDRV_PCM_IOCTL_DELAY _IOR('A', 0x21, snd_pcm_sframes_t) #define SNDRV_PCM_IOCTL_HWSYNC _IO('A', 0x22) -#define __SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct __snd_pcm_sync_ptr) -#define __SNDRV_PCM_IOCTL_SYNC_PTR64 _IOWR('A', 0x23, struct __snd_pcm_sync_ptr64) #define SNDRV_PCM_IOCTL_SYNC_PTR _IOWR('A', 0x23, struct snd_pcm_sync_ptr) #define SNDRV_PCM_IOCTL_STATUS_EXT _IOWR('A', 0x24, struct snd_pcm_status) #define SNDRV_PCM_IOCTL_CHANNEL_INFO _IOR('A', 0x32, struct snd_pcm_channel_info) @@ -710,7 +614,7 @@ enum { * Raw MIDI section - /dev/snd/midi?? */ -#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1) +#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 0) enum { SNDRV_RAWMIDI_STREAM_OUTPUT = 0, @@ -744,16 +648,13 @@ struct snd_rawmidi_params { unsigned char reserved[16]; /* reserved for future use */ }; -#ifndef __KERNEL__ struct snd_rawmidi_status { int stream; - __time_pad pad1; struct timespec tstamp; /* Timestamp */ size_t avail; /* available bytes */ size_t xruns; /* count of overruns since last status (in bytes) */ unsigned char reserved[16]; /* reserved for future use */ }; -#endif #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int) #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info) @@ -766,7 +667,7 @@ struct snd_rawmidi_status { * Timer section - /dev/snd/timer */ -#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7) +#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 6) enum { SNDRV_TIMER_CLASS_NONE = -1, @@ -860,7 +761,6 @@ struct snd_timer_params { unsigned char reserved[60]; /* reserved */ }; -#ifndef __KERNEL__ struct snd_timer_status { struct timespec tstamp; /* Timestamp - last update */ unsigned int resolution; /* current period resolution in ns */ @@ -869,11 +769,10 @@ struct snd_timer_status { unsigned int queue; /* used queue size */ unsigned char reserved[64]; /* reserved */ }; -#endif #define SNDRV_TIMER_IOCTL_PVERSION _IOR('T', 0x00, int) #define SNDRV_TIMER_IOCTL_NEXT_DEVICE _IOWR('T', 0x01, struct snd_timer_id) -#define SNDRV_TIMER_IOCTL_TREAD_OLD _IOW('T', 0x02, int) +#define SNDRV_TIMER_IOCTL_TREAD _IOW('T', 0x02, int) #define SNDRV_TIMER_IOCTL_GINFO _IOWR('T', 0x03, struct snd_timer_ginfo) #define SNDRV_TIMER_IOCTL_GPARAMS _IOW('T', 0x04, struct snd_timer_gparams) #define SNDRV_TIMER_IOCTL_GSTATUS _IOWR('T', 0x05, struct snd_timer_gstatus) @@ -886,15 +785,6 @@ struct snd_timer_status { #define SNDRV_TIMER_IOCTL_STOP _IO('T', 0xa1) #define SNDRV_TIMER_IOCTL_CONTINUE _IO('T', 0xa2) #define SNDRV_TIMER_IOCTL_PAUSE _IO('T', 0xa3) -#define SNDRV_TIMER_IOCTL_TREAD64 _IOW('T', 0xa4, int) - -#if __BITS_PER_LONG == 64 -#define SNDRV_TIMER_IOCTL_TREAD SNDRV_TIMER_IOCTL_TREAD_OLD -#else -#define SNDRV_TIMER_IOCTL_TREAD ((sizeof(__kernel_long_t) >= sizeof(time_t)) ? \ - SNDRV_TIMER_IOCTL_TREAD_OLD : \ - SNDRV_TIMER_IOCTL_TREAD64) -#endif struct snd_timer_read { unsigned int resolution; @@ -920,15 +810,11 @@ enum { SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10, }; -#ifndef __KERNEL__ struct snd_timer_tread { int event; - __time_pad pad1; struct timespec tstamp; unsigned int val; - __time_pad pad2; }; -#endif /**************************************************************************** * * @@ -936,7 +822,7 @@ struct snd_timer_tread { * * ****************************************************************************/ -#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 8) +#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 7) struct snd_ctl_card_info { int card; /* card number */ @@ -974,7 +860,7 @@ typedef int __bitwise snd_ctl_elem_iface_t; #define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1) #define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE) #define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */ -// (1 << 3) is unused. +#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP (1<<3) /* when was control changed */ #define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */ #define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */ #define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE) @@ -1040,7 +926,11 @@ struct snd_ctl_elem_info { } enumerated; unsigned char reserved[128]; } value; - unsigned char reserved[64]; + union { + unsigned short d[4]; /* dimensions */ + unsigned short *d_ptr; /* indirect - obsoleted */ + } dimen; + unsigned char reserved[64-4*sizeof(unsigned short)]; }; struct snd_ctl_elem_value { @@ -1065,7 +955,8 @@ struct snd_ctl_elem_value { } bytes; struct snd_aes_iec958 iec958; } value; /* RO */ - unsigned char reserved[128]; + struct timespec tstamp; + unsigned char reserved[128-sizeof(struct timespec)]; }; struct snd_ctl_tlv { diff --git a/original/uapi/sound/compress_offload.h b/original/uapi/sound/compress_offload.h index 9555f31..56d9567 100644 --- a/original/uapi/sound/compress_offload.h +++ b/original/uapi/sound/compress_offload.h @@ -31,7 +31,7 @@ #include <sound/compress_params.h> -#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 2, 0) +#define SNDRV_COMPRESS_VERSION SNDRV_PROTOCOL_VERSION(0, 1, 2) /** * struct snd_compressed_buffer - compressed buffer * @fragment_size: size of buffer fragment in bytes @@ -144,7 +144,7 @@ struct snd_compr_metadata { __u32 value[8]; } __attribute__((packed, aligned(4))); -/* +/** * compress path ioctl definitions * SNDRV_COMPRESS_GET_CAPS: Query capability of DSP * SNDRV_COMPRESS_GET_CODEC_CAPS: Query capability of a codec diff --git a/original/uapi/sound/compress_params.h b/original/uapi/sound/compress_params.h index 79b1438..9c96fb0 100644 --- a/original/uapi/sound/compress_params.h +++ b/original/uapi/sound/compress_params.h @@ -75,9 +75,7 @@ #define SND_AUDIOCODEC_G723_1 ((__u32) 0x0000000C) #define SND_AUDIOCODEC_G729 ((__u32) 0x0000000D) #define SND_AUDIOCODEC_BESPOKE ((__u32) 0x0000000E) -#define SND_AUDIOCODEC_ALAC ((__u32) 0x0000000F) -#define SND_AUDIOCODEC_APE ((__u32) 0x00000010) -#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_APE +#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_BESPOKE /* * Profile and modes are listed with bit masks. This allows for a @@ -144,9 +142,6 @@ #define SND_AUDIOPROFILE_WMA8 ((__u32) 0x00000002) #define SND_AUDIOPROFILE_WMA9 ((__u32) 0x00000004) #define SND_AUDIOPROFILE_WMA10 ((__u32) 0x00000008) -#define SND_AUDIOPROFILE_WMA9_PRO ((__u32) 0x00000010) -#define SND_AUDIOPROFILE_WMA9_LOSSLESS ((__u32) 0x00000020) -#define SND_AUDIOPROFILE_WMA10_LOSSLESS ((__u32) 0x00000040) #define SND_AUDIOMODE_WMA_LEVEL1 ((__u32) 0x00000001) #define SND_AUDIOMODE_WMA_LEVEL2 ((__u32) 0x00000002) @@ -331,33 +326,6 @@ struct snd_dec_flac { __u16 reserved; } __attribute__((packed, aligned(4))); -struct snd_dec_wma { - __u32 encoder_option; - __u32 adv_encoder_option; - __u32 adv_encoder_option2; - __u32 reserved; -} __attribute__((packed, aligned(4))); - -struct snd_dec_alac { - __u32 frame_length; - __u8 compatible_version; - __u8 pb; - __u8 mb; - __u8 kb; - __u32 max_run; - __u32 max_frame_bytes; -} __attribute__((packed, aligned(4))); - -struct snd_dec_ape { - __u16 compatible_version; - __u16 compression_level; - __u32 format_flags; - __u32 blocks_per_frame; - __u32 final_frame_blocks; - __u32 total_frames; - __u32 seek_table_present; -} __attribute__((packed, aligned(4))); - union snd_codec_options { struct snd_enc_wma wma; struct snd_enc_vorbis vorbis; @@ -365,9 +333,6 @@ union snd_codec_options { struct snd_enc_flac flac; struct snd_enc_generic generic; struct snd_dec_flac flac_d; - struct snd_dec_wma wma_d; - struct snd_dec_alac alac_d; - struct snd_dec_ape ape_d; } __attribute__((packed, aligned(4))); /** struct snd_codec_desc - description of codec capabilities diff --git a/original/uapi/sound/emu10k1.h b/original/uapi/sound/emu10k1.h index 88609cc..042c5a6 100644 --- a/original/uapi/sound/emu10k1.h +++ b/original/uapi/sound/emu10k1.h @@ -23,9 +23,8 @@ #ifndef _UAPI__SOUND_EMU10K1_H #define _UAPI__SOUND_EMU10K1_H -#ifdef __linux__ #include <linux/types.h> -#endif +#include <sound/asound.h> /* * ---- FX8010 ---- @@ -283,22 +282,8 @@ struct snd_emu10k1_fx8010_info { #define EMU10K1_GPR_TRANSLATION_TREBLE 3 #define EMU10K1_GPR_TRANSLATION_ONOFF 4 -enum emu10k1_ctl_elem_iface { - EMU10K1_CTL_ELEM_IFACE_MIXER = 2, /* virtual mixer device */ - EMU10K1_CTL_ELEM_IFACE_PCM = 3, /* PCM device */ -}; - -struct emu10k1_ctl_elem_id { - unsigned int pad; /* don't use */ - int iface; /* interface identifier */ - unsigned int device; /* device/client number */ - unsigned int subdevice; /* subdevice (substream) number */ - unsigned char name[44]; /* ASCII name of item */ - unsigned int index; /* index of item */ -}; - struct snd_emu10k1_fx8010_control_gpr { - struct emu10k1_ctl_elem_id id; /* full control ID definition */ + struct snd_ctl_elem_id id; /* full control ID definition */ unsigned int vcount; /* visible count */ unsigned int count; /* count of GPR (1..16) */ unsigned short gpr[32]; /* GPR number(s) */ @@ -311,7 +296,7 @@ struct snd_emu10k1_fx8010_control_gpr { /* old ABI without TLV support */ struct snd_emu10k1_fx8010_control_old_gpr { - struct emu10k1_ctl_elem_id id; + struct snd_ctl_elem_id id; unsigned int vcount; unsigned int count; unsigned short gpr[32]; @@ -325,24 +310,24 @@ struct snd_emu10k1_fx8010_code { char name[128]; __EMU10K1_DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */ - __u32 *gpr_map; /* initializers */ + __u32 __user *gpr_map; /* initializers */ unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */ - struct snd_emu10k1_fx8010_control_gpr *gpr_add_controls; /* GPR controls to add/replace */ + struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */ unsigned int gpr_del_control_count; /* count of GPR controls to remove */ - struct emu10k1_ctl_elem_id *gpr_del_controls; /* IDs of GPR controls to remove */ + struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */ unsigned int gpr_list_control_count; /* count of GPR controls to list */ unsigned int gpr_list_control_total; /* total count of GPR controls */ - struct snd_emu10k1_fx8010_control_gpr *gpr_list_controls; /* listed GPR controls */ + struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */ __EMU10K1_DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */ - __u32 *tram_data_map; /* data initializers */ - __u32 *tram_addr_map; /* map initializers */ + __u32 __user *tram_data_map; /* data initializers */ + __u32 __user *tram_addr_map; /* map initializers */ __EMU10K1_DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */ - __u32 *code; /* one instruction - 64 bits */ + __u32 __user *code; /* one instruction - 64 bits */ }; struct snd_emu10k1_fx8010_tram { @@ -386,4 +371,11 @@ struct snd_emu10k1_fx8010_pcm_rec { #define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int) #define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int) +/* typedefs for compatibility to user-space */ +typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t; +typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t; +typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t; +typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t; +typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t; + #endif /* _UAPI__SOUND_EMU10K1_H */ diff --git a/original/uapi/sound/hdsp.h b/original/uapi/sound/hdsp.h index b8df62b..5dc0c3d 100644 --- a/original/uapi/sound/hdsp.h +++ b/original/uapi/sound/hdsp.h @@ -20,9 +20,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#ifdef __linux__ #include <linux/types.h> -#endif #define HDSP_MATRIX_MIXER_SIZE 2048 @@ -76,7 +74,7 @@ struct hdsp_config_info { #define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info) struct hdsp_firmware { - void *firmware_data; /* 24413 x 4 bytes */ + void __user *firmware_data; /* 24413 x 4 bytes */ }; #define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware) @@ -101,4 +99,13 @@ struct hdsp_9632_aeb { #define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb) +/* typedefs for compatibility to user-space */ +typedef enum HDSP_IO_Type HDSP_IO_Type; +typedef struct hdsp_peak_rms hdsp_peak_rms_t; +typedef struct hdsp_config_info hdsp_config_info_t; +typedef struct hdsp_firmware hdsp_firmware_t; +typedef struct hdsp_version hdsp_version_t; +typedef struct hdsp_mixer hdsp_mixer_t; +typedef struct hdsp_9632_aeb hdsp_9632_aeb_t; + #endif /* __SOUND_HDSP_H */ diff --git a/original/uapi/sound/hdspm.h b/original/uapi/sound/hdspm.h index 14af3d0..a38f3f7 100644 --- a/original/uapi/sound/hdspm.h +++ b/original/uapi/sound/hdspm.h @@ -21,9 +21,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#ifdef __linux__ #include <linux/types.h> -#endif /* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */ #define HDSPM_MAX_CHANNELS 64 @@ -223,4 +221,12 @@ struct hdspm_mixer_ioctl { /* use indirect access due to the limit of ioctl bit size */ #define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl) +/* typedefs for compatibility to user-space */ +typedef struct hdspm_peak_rms hdspm_peak_rms_t; +typedef struct hdspm_config_info hdspm_config_info_t; +typedef struct hdspm_version hdspm_version_t; +typedef struct hdspm_channelfader snd_hdspm_channelfader_t; +typedef struct hdspm_mixer hdspm_mixer_t; + + #endif diff --git a/original/uapi/sound/skl-tplg-interface.h b/original/uapi/sound/skl-tplg-interface.h index a93c0de..9eee32f 100644 --- a/original/uapi/sound/skl-tplg-interface.h +++ b/original/uapi/sound/skl-tplg-interface.h @@ -18,8 +18,6 @@ */ #define SKL_CONTROL_TYPE_BYTE_TLV 0x100 #define SKL_CONTROL_TYPE_MIC_SELECT 0x102 -#define SKL_CONTROL_TYPE_MULTI_IO_SELECT 0x103 -#define SKL_CONTROL_TYPE_MULTI_IO_SELECT_DMIC 0x104 #define HDA_SST_CFG_MAX 900 /* size of copier cfg*/ #define MAX_IN_QUEUE 8 diff --git a/original/uapi/sound/sof/abi.h b/original/uapi/sound/sof/abi.h index fe2cfae..ebfdc20 100644 --- a/original/uapi/sound/sof/abi.h +++ b/original/uapi/sound/sof/abi.h @@ -26,7 +26,7 @@ /* SOF ABI version major, minor and patch numbers */ #define SOF_ABI_MAJOR 3 -#define SOF_ABI_MINOR 18 +#define SOF_ABI_MINOR 11 #define SOF_ABI_PATCH 0 /* SOF ABI version number. Format within 32bit word is MMmmmppp */ diff --git a/original/uapi/sound/sof/tokens.h b/original/uapi/sound/sof/tokens.h index a642bf3..76883e6 100644 --- a/original/uapi/sound/sof/tokens.h +++ b/original/uapi/sound/sof/tokens.h @@ -24,9 +24,6 @@ #define SOF_TPLG_KCTL_ENUM_ID 257 #define SOF_TPLG_KCTL_BYTES_ID 258 #define SOF_TPLG_KCTL_SWITCH_ID 259 -#define SOF_TPLG_KCTL_BYTES_VOLATILE_RO 260 -#define SOF_TPLG_KCTL_BYTES_VOLATILE_RW 261 -#define SOF_TPLG_KCTL_BYTES_WO_ID 262 /* * Tokens - must match values in topology configurations @@ -60,12 +57,6 @@ #define SOF_TKN_SRC_RATE_IN 300 #define SOF_TKN_SRC_RATE_OUT 301 -/* ASRC */ -#define SOF_TKN_ASRC_RATE_IN 320 -#define SOF_TKN_ASRC_RATE_OUT 321 -#define SOF_TKN_ASRC_ASYNCHRONOUS_MODE 322 -#define SOF_TKN_ASRC_OPERATION_MODE 323 - /* PCM */ #define SOF_TKN_PCM_DMAC_CONFIG 353 @@ -76,8 +67,6 @@ /* Token retired with ABI 3.2, do not use for new capabilities * #define SOF_TKN_COMP_PRELOAD_COUNT 403 */ -#define SOF_TKN_COMP_CORE_ID 404 -#define SOF_TKN_COMP_UUID 405 /* SSP */ #define SOF_TKN_INTEL_SSP_CLKS_CONTROL 500 @@ -118,7 +107,8 @@ #define SOF_TKN_EFFECT_TYPE SOF_TKN_PROCESS_TYPE /* SAI */ -#define SOF_TKN_IMX_SAI_MCLK_ID 1000 +#define SOF_TKN_IMX_SAI_FIRST_TOKEN 1000 +/* TODO: Add SAI tokens */ /* ESAI */ #define SOF_TKN_IMX_ESAI_MCLK_ID 1100 @@ -131,12 +121,4 @@ #define SOF_TKN_MUTE_LED_USE 1300 #define SOF_TKN_MUTE_LED_DIRECTION 1301 -/* ALH */ -#define SOF_TKN_INTEL_ALH_RATE 1400 -#define SOF_TKN_INTEL_ALH_CH 1401 - -/* HDA */ -#define SOF_TKN_INTEL_HDA_RATE 1500 -#define SOF_TKN_INTEL_HDA_CH 1501 - #endif diff --git a/original/uapi/xen/gntdev.h b/original/uapi/xen/gntdev.h index 9ac5515..fe4423e 100644 --- a/original/uapi/xen/gntdev.h +++ b/original/uapi/xen/gntdev.h @@ -66,7 +66,7 @@ struct ioctl_gntdev_map_grant_ref { /* * Removes the grant references from the mapping table of an instance of - * gntdev. N.B. munmap() must be called on the relevant virtual address(es) + * of gntdev. N.B. munmap() must be called on the relevant virtual address(es) * before this ioctl is called, or an error will result. */ #define IOCTL_GNTDEV_UNMAP_GRANT_REF \ |