diff options
author | Andre Przywara <andre.przywara@arm.com> | 2014-06-03 03:33:10 -0400 |
---|---|---|
committer | Christoffer Dall <christoffer.dall@linaro.org> | 2015-01-20 12:25:25 -0500 |
commit | 59892136c40d6735e627dcea6a056380dfd6721d (patch) | |
tree | 1e6f37ba718a4e6d57d6b202fc611f09f7525718 /include/kvm | |
parent | 4429fc64b90368e9bc93f933ea8b011d8db3a2f2 (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.h | 7 |
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; | |||
275 | int kvm_vgic_addr(struct kvm *kvm, unsigned long type, u64 *addr, bool write); | 278 | int kvm_vgic_addr(struct kvm *kvm, unsigned long type, u64 *addr, bool write); |
276 | int kvm_vgic_hyp_init(void); | 279 | int kvm_vgic_hyp_init(void); |
277 | int kvm_vgic_map_resources(struct kvm *kvm); | 280 | int kvm_vgic_map_resources(struct kvm *kvm); |
278 | int kvm_vgic_create(struct kvm *kvm); | 281 | int kvm_vgic_create(struct kvm *kvm, u32 type); |
279 | void kvm_vgic_destroy(struct kvm *kvm); | 282 | void kvm_vgic_destroy(struct kvm *kvm); |
280 | void kvm_vgic_vcpu_destroy(struct kvm_vcpu *vcpu); | 283 | void kvm_vgic_vcpu_destroy(struct kvm_vcpu *vcpu); |
281 | void kvm_vgic_flush_hwstate(struct kvm_vcpu *vcpu); | 284 | void 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 | ||
330 | static inline int kvm_vgic_create(struct kvm *kvm) | 333 | static inline int kvm_vgic_create(struct kvm *kvm, u32 type) |
331 | { | 334 | { |
332 | return 0; | 335 | return 0; |
333 | } | 336 | } |