aboutsummaryrefslogtreecommitdiffstats
path: root/include/kvm
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2014-06-03 03:33:10 -0400
committerChristoffer Dall <christoffer.dall@linaro.org>2015-01-20 12:25:25 -0500
commit59892136c40d6735e627dcea6a056380dfd6721d (patch)
tree1e6f37ba718a4e6d57d6b202fc611f09f7525718 /include/kvm
parent4429fc64b90368e9bc93f933ea8b011d8db3a2f2 (diff)
arm/arm64: KVM: pass down user space provided GIC type into vGIC code
With the introduction of a second emulated GIC model we need to let userspace specify the GIC model to use for each VM. Pass the userspace provided value down into the vGIC code and store it there to differentiate later. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Christoffer Dall <christoffer.dall@linaro.org> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'include/kvm')
-rw-r--r--include/kvm/arm_vgic.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
index ac4888dc86bc..525ce4228495 100644
--- a/include/kvm/arm_vgic.h
+++ b/include/kvm/arm_vgic.h
@@ -140,6 +140,9 @@ struct vgic_dist {
140 bool in_kernel; 140 bool in_kernel;
141 bool ready; 141 bool ready;
142 142
143 /* vGIC model the kernel emulates for the guest (GICv2 or GICv3) */
144 u32 vgic_model;
145
143 int nr_cpus; 146 int nr_cpus;
144 int nr_irqs; 147 int nr_irqs;
145 148
@@ -275,7 +278,7 @@ struct kvm_exit_mmio;
275int kvm_vgic_addr(struct kvm *kvm, unsigned long type, u64 *addr, bool write); 278int kvm_vgic_addr(struct kvm *kvm, unsigned long type, u64 *addr, bool write);
276int kvm_vgic_hyp_init(void); 279int kvm_vgic_hyp_init(void);
277int kvm_vgic_map_resources(struct kvm *kvm); 280int kvm_vgic_map_resources(struct kvm *kvm);
278int kvm_vgic_create(struct kvm *kvm); 281int kvm_vgic_create(struct kvm *kvm, u32 type);
279void kvm_vgic_destroy(struct kvm *kvm); 282void kvm_vgic_destroy(struct kvm *kvm);
280void kvm_vgic_vcpu_destroy(struct kvm_vcpu *vcpu); 283void kvm_vgic_vcpu_destroy(struct kvm_vcpu *vcpu);
281void kvm_vgic_flush_hwstate(struct kvm_vcpu *vcpu); 284void kvm_vgic_flush_hwstate(struct kvm_vcpu *vcpu);
@@ -327,7 +330,7 @@ static inline int kvm_vgic_map_resources(struct kvm *kvm)
327 return 0; 330 return 0;
328} 331}
329 332
330static inline int kvm_vgic_create(struct kvm *kvm) 333static inline int kvm_vgic_create(struct kvm *kvm, u32 type)
331{ 334{
332 return 0; 335 return 0;
333} 336}