From: Sudeep Holla <sudeep.holla@xxxxxxx> Define basic struct for supporting SPE for guest VCPUs. [Andrew M: Add irq_level, rename irq to irq_num for kvm_spe ] [Alexandru E: Reworked patch ] Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx> Signed-off-by: Andrew Murray <andrew.murray@xxxxxxx> Signed-off-by: Alexandru Elisei <alexandru.elisei@xxxxxxx> --- arch/arm64/include/asm/kvm_host.h | 2 ++ include/kvm/arm_spe.h | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index 43eee197764f..5b68c06930c6 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -35,6 +35,7 @@ #include <kvm/arm_vgic.h> #include <kvm/arm_arch_timer.h> #include <kvm/arm_pmu.h> +#include <kvm/arm_spe.h> #define KVM_MAX_VCPUS VGIC_V3_MAX_CPUS @@ -329,6 +330,7 @@ struct kvm_vcpu_arch { struct vgic_cpu vgic_cpu; struct arch_timer_cpu timer_cpu; struct kvm_pmu pmu; + struct kvm_spe_cpu spe_cpu; /* * Anything that is not used directly from assembly code goes diff --git a/include/kvm/arm_spe.h b/include/kvm/arm_spe.h index db51ef15bf45..46ec447ed013 100644 --- a/include/kvm/arm_spe.h +++ b/include/kvm/arm_spe.h @@ -12,8 +12,17 @@ static inline bool kvm_arm_supports_spe(void) return cpus_have_final_cap(ARM64_SPE); } +struct kvm_spe_cpu { + int irq_num; /* Guest visibile INTID */ + bool irq_level; /* 'true' if interrupt is asserted to the VGIC */ + bool initialized; /* Feature is initialized on VCPU */ +}; + #else #define kvm_arm_supports_spe() false +struct kvm_spe_cpu { +}; + #endif /* CONFIG_KVM_ARM_SPE */ #endif /* __ASM_ARM_KVM_SPE_H */ -- 2.29.1 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm