mirror of
https://github.com/xemu-project/xemu.git
synced 2026-07-11 01:24:41 +02:00
linux-headers: Update to Linux v6.18-rc3
Update headers to retrieve the latest KVM caps for LoongArch. It is added to the tree by running `update-linux-headers.sh` on linux v6.18-rc3. Signed-off-by: Bibo Mao <maobibo@loongson.cn> Reviewed-by: Song Gao <gaosong@loongson.cn>
This commit is contained in:
@@ -103,6 +103,7 @@ struct kvm_fpu {
|
||||
#define KVM_LOONGARCH_VM_FEAT_PMU 5
|
||||
#define KVM_LOONGARCH_VM_FEAT_PV_IPI 6
|
||||
#define KVM_LOONGARCH_VM_FEAT_PV_STEALTIME 7
|
||||
#define KVM_LOONGARCH_VM_FEAT_PTW 8
|
||||
|
||||
/* Device Control API on vcpu fd */
|
||||
#define KVM_LOONGARCH_VCPU_CPUCFG 0
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef __LINUX_KVM_RISCV_H
|
||||
#define __LINUX_KVM_RISCV_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/bitsperlong.h>
|
||||
@@ -56,6 +56,7 @@ struct kvm_riscv_config {
|
||||
unsigned long mimpid;
|
||||
unsigned long zicboz_block_size;
|
||||
unsigned long satp_mode;
|
||||
unsigned long zicbop_block_size;
|
||||
};
|
||||
|
||||
/* CORE registers for KVM_GET_ONE_REG and KVM_SET_ONE_REG */
|
||||
@@ -185,6 +186,10 @@ enum KVM_RISCV_ISA_EXT_ID {
|
||||
KVM_RISCV_ISA_EXT_ZICCRSE,
|
||||
KVM_RISCV_ISA_EXT_ZAAMO,
|
||||
KVM_RISCV_ISA_EXT_ZALRSC,
|
||||
KVM_RISCV_ISA_EXT_ZICBOP,
|
||||
KVM_RISCV_ISA_EXT_ZFBFMIN,
|
||||
KVM_RISCV_ISA_EXT_ZVFBFMIN,
|
||||
KVM_RISCV_ISA_EXT_ZVFBFWMA,
|
||||
KVM_RISCV_ISA_EXT_MAX,
|
||||
};
|
||||
|
||||
@@ -205,6 +210,7 @@ enum KVM_RISCV_SBI_EXT_ID {
|
||||
KVM_RISCV_SBI_EXT_DBCN,
|
||||
KVM_RISCV_SBI_EXT_STA,
|
||||
KVM_RISCV_SBI_EXT_SUSP,
|
||||
KVM_RISCV_SBI_EXT_FWFT,
|
||||
KVM_RISCV_SBI_EXT_MAX,
|
||||
};
|
||||
|
||||
@@ -214,6 +220,18 @@ struct kvm_riscv_sbi_sta {
|
||||
unsigned long shmem_hi;
|
||||
};
|
||||
|
||||
struct kvm_riscv_sbi_fwft_feature {
|
||||
unsigned long enable;
|
||||
unsigned long flags;
|
||||
unsigned long value;
|
||||
};
|
||||
|
||||
/* SBI FWFT extension registers for KVM_GET_ONE_REG and KVM_SET_ONE_REG */
|
||||
struct kvm_riscv_sbi_fwft {
|
||||
struct kvm_riscv_sbi_fwft_feature misaligned_deleg;
|
||||
struct kvm_riscv_sbi_fwft_feature pointer_masking;
|
||||
};
|
||||
|
||||
/* Possible states for kvm_riscv_timer */
|
||||
#define KVM_RISCV_TIMER_STATE_OFF 0
|
||||
#define KVM_RISCV_TIMER_STATE_ON 1
|
||||
@@ -297,6 +315,9 @@ struct kvm_riscv_sbi_sta {
|
||||
#define KVM_REG_RISCV_SBI_STA (0x0 << KVM_REG_RISCV_SUBTYPE_SHIFT)
|
||||
#define KVM_REG_RISCV_SBI_STA_REG(name) \
|
||||
(offsetof(struct kvm_riscv_sbi_sta, name) / sizeof(unsigned long))
|
||||
#define KVM_REG_RISCV_SBI_FWFT (0x1 << KVM_REG_RISCV_SUBTYPE_SHIFT)
|
||||
#define KVM_REG_RISCV_SBI_FWFT_REG(name) \
|
||||
(offsetof(struct kvm_riscv_sbi_fwft, name) / sizeof(unsigned long))
|
||||
|
||||
/* Device Control API: RISC-V AIA */
|
||||
#define KVM_DEV_RISCV_APLIC_ALIGN 0x1000
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#ifndef _ASM_RISCV_PTRACE_H
|
||||
#define _ASM_RISCV_PTRACE_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
@@ -127,6 +127,6 @@ struct __riscv_v_regset_state {
|
||||
*/
|
||||
#define RISCV_MAX_VLENB (8192)
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __ASSEMBLER__ */
|
||||
|
||||
#endif /* _ASM_RISCV_PTRACE_H */
|
||||
|
||||
@@ -35,6 +35,11 @@
|
||||
#define MC_VECTOR 18
|
||||
#define XM_VECTOR 19
|
||||
#define VE_VECTOR 20
|
||||
#define CP_VECTOR 21
|
||||
|
||||
#define HV_VECTOR 28
|
||||
#define VC_VECTOR 29
|
||||
#define SX_VECTOR 30
|
||||
|
||||
/* Select x86 specific features in <linux/kvm.h> */
|
||||
#define __KVM_HAVE_PIT
|
||||
@@ -409,6 +414,35 @@ struct kvm_xcrs {
|
||||
__u64 padding[16];
|
||||
};
|
||||
|
||||
#define KVM_X86_REG_TYPE_MSR 2
|
||||
#define KVM_X86_REG_TYPE_KVM 3
|
||||
|
||||
#define KVM_X86_KVM_REG_SIZE(reg) \
|
||||
({ \
|
||||
reg == KVM_REG_GUEST_SSP ? KVM_REG_SIZE_U64 : 0; \
|
||||
})
|
||||
|
||||
#define KVM_X86_REG_TYPE_SIZE(type, reg) \
|
||||
({ \
|
||||
__u64 type_size = (__u64)type << 32; \
|
||||
\
|
||||
type_size |= type == KVM_X86_REG_TYPE_MSR ? KVM_REG_SIZE_U64 : \
|
||||
type == KVM_X86_REG_TYPE_KVM ? KVM_X86_KVM_REG_SIZE(reg) : \
|
||||
0; \
|
||||
type_size; \
|
||||
})
|
||||
|
||||
#define KVM_X86_REG_ID(type, index) \
|
||||
(KVM_REG_X86 | KVM_X86_REG_TYPE_SIZE(type, index) | index)
|
||||
|
||||
#define KVM_X86_REG_MSR(index) \
|
||||
KVM_X86_REG_ID(KVM_X86_REG_TYPE_MSR, index)
|
||||
#define KVM_X86_REG_KVM(index) \
|
||||
KVM_X86_REG_ID(KVM_X86_REG_TYPE_KVM, index)
|
||||
|
||||
/* KVM-defined registers starting from 0 */
|
||||
#define KVM_REG_GUEST_SSP 0
|
||||
|
||||
#define KVM_SYNC_X86_REGS (1UL << 0)
|
||||
#define KVM_SYNC_X86_SREGS (1UL << 1)
|
||||
#define KVM_SYNC_X86_EVENTS (1UL << 2)
|
||||
|
||||
@@ -337,6 +337,7 @@
|
||||
#define __NR_io_pgetevents 333
|
||||
#define __NR_rseq 334
|
||||
#define __NR_uretprobe 335
|
||||
#define __NR_uprobe 336
|
||||
#define __NR_pidfd_send_signal 424
|
||||
#define __NR_io_uring_setup 425
|
||||
#define __NR_io_uring_enter 426
|
||||
|
||||
@@ -290,6 +290,7 @@
|
||||
#define __NR_io_pgetevents (__X32_SYSCALL_BIT + 333)
|
||||
#define __NR_rseq (__X32_SYSCALL_BIT + 334)
|
||||
#define __NR_uretprobe (__X32_SYSCALL_BIT + 335)
|
||||
#define __NR_uprobe (__X32_SYSCALL_BIT + 336)
|
||||
#define __NR_pidfd_send_signal (__X32_SYSCALL_BIT + 424)
|
||||
#define __NR_io_uring_setup (__X32_SYSCALL_BIT + 425)
|
||||
#define __NR_io_uring_enter (__X32_SYSCALL_BIT + 426)
|
||||
|
||||
@@ -954,6 +954,7 @@ struct kvm_enable_cap {
|
||||
#define KVM_CAP_ARM_EL2_E2H0 241
|
||||
#define KVM_CAP_RISCV_MP_STATE_RESET 242
|
||||
#define KVM_CAP_ARM_CACHEABLE_PFNMAP_SUPPORTED 243
|
||||
#define KVM_CAP_GUEST_MEMFD_FLAGS 244
|
||||
|
||||
struct kvm_irq_routing_irqchip {
|
||||
__u32 irqchip;
|
||||
@@ -1590,6 +1591,8 @@ struct kvm_memory_attributes {
|
||||
#define KVM_MEMORY_ATTRIBUTE_PRIVATE (1ULL << 3)
|
||||
|
||||
#define KVM_CREATE_GUEST_MEMFD _IOWR(KVMIO, 0xd4, struct kvm_create_guest_memfd)
|
||||
#define GUEST_MEMFD_FLAG_MMAP (1ULL << 0)
|
||||
#define GUEST_MEMFD_FLAG_INIT_SHARED (1ULL << 1)
|
||||
|
||||
struct kvm_create_guest_memfd {
|
||||
__u64 size;
|
||||
|
||||
@@ -185,6 +185,10 @@ struct sev_user_data_get_id2 {
|
||||
* @mask_chip_id: whether chip id is present in attestation reports or not
|
||||
* @mask_chip_key: whether attestation reports are signed or not
|
||||
* @vlek_en: VLEK (Version Loaded Endorsement Key) hashstick is loaded
|
||||
* @feature_info: whether SNP_FEATURE_INFO command is available
|
||||
* @rapl_dis: whether RAPL is disabled
|
||||
* @ciphertext_hiding_cap: whether platform has ciphertext hiding capability
|
||||
* @ciphertext_hiding_en: whether ciphertext hiding is enabled
|
||||
* @rsvd1: reserved
|
||||
* @guest_count: the number of guest currently managed by the firmware
|
||||
* @current_tcb_version: current TCB version
|
||||
@@ -200,7 +204,11 @@ struct sev_user_data_snp_status {
|
||||
__u32 mask_chip_id:1; /* Out */
|
||||
__u32 mask_chip_key:1; /* Out */
|
||||
__u32 vlek_en:1; /* Out */
|
||||
__u32 rsvd1:29;
|
||||
__u32 feature_info:1; /* Out */
|
||||
__u32 rapl_dis:1; /* Out */
|
||||
__u32 ciphertext_hiding_cap:1; /* Out */
|
||||
__u32 ciphertext_hiding_en:1; /* Out */
|
||||
__u32 rsvd1:25;
|
||||
__u32 guest_count; /* Out */
|
||||
__u64 current_tcb_version; /* Out */
|
||||
__u64 reported_tcb_version; /* Out */
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#define _LINUX_STDDEF_H
|
||||
|
||||
|
||||
|
||||
#ifndef __always_inline
|
||||
#define __always_inline __inline__
|
||||
#endif
|
||||
|
||||
@@ -237,7 +237,7 @@ struct vduse_iova_umem {
|
||||
* struct vduse_iova_info - information of one IOVA region
|
||||
* @start: start of the IOVA region
|
||||
* @last: last of the IOVA region
|
||||
* @capability: capability of the IOVA regsion
|
||||
* @capability: capability of the IOVA region
|
||||
* @reserved: for future use, needs to be initialized to zero
|
||||
*
|
||||
* Structure used by VDUSE_IOTLB_GET_INFO ioctl to get information of
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
* When fork_owner is set to VHOST_FORK_OWNER_KTHREAD:
|
||||
* - Vhost will create vhost workers as kernel threads.
|
||||
*/
|
||||
#define VHOST_SET_FORK_FROM_OWNER _IOW(VHOST_VIRTIO, 0x83, __u8)
|
||||
#define VHOST_SET_FORK_FROM_OWNER _IOW(VHOST_VIRTIO, 0x84, __u8)
|
||||
|
||||
/**
|
||||
* VHOST_GET_FORK_OWNER - Get the current fork_owner flag for the vhost device.
|
||||
@@ -268,6 +268,6 @@
|
||||
*
|
||||
* @return: An 8-bit value indicating the current thread mode.
|
||||
*/
|
||||
#define VHOST_GET_FORK_FROM_OWNER _IOR(VHOST_VIRTIO, 0x84, __u8)
|
||||
#define VHOST_GET_FORK_FROM_OWNER _IOR(VHOST_VIRTIO, 0x85, __u8)
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user