@@ -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
@@ -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 */