diff options
author | Andre Przywara <andre.przywara@arm.com> | 2015-03-26 14:39:34 +0000 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2015-03-26 21:43:14 +0000 |
commit | 6777f77f0f544f686ee3158ff0db6a7d81b7d3a2 (patch) | |
tree | 6000815254750f2d1f85d3308ffee420af9844a9 /include/kvm | |
parent | 9f199d0a0eeb8efb564ff41a6b9f819c4c0285ea (diff) | |
download | linux-6777f77f0f544f686ee3158ff0db6a7d81b7d3a2.tar.gz linux-6777f77f0f544f686ee3158ff0db6a7d81b7d3a2.tar.bz2 linux-6777f77f0f544f686ee3158ff0db6a7d81b7d3a2.zip |
KVM: arm/arm64: implement kvm_io_bus MMIO handling for the VGIC
Currently we use a lot of VGIC specific code to do the MMIO
dispatching.
Use the previous reworks to add kvm_io_bus style MMIO handlers.
Those are not yet called by the MMIO abort handler, also the actual
VGIC emulator function do not make use of it yet, but will be enabled
with the following patches.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'include/kvm')
-rw-r--r-- | include/kvm/arm_vgic.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h index 9092fad3c141..f90140caed8f 100644 --- a/include/kvm/arm_vgic.h +++ b/include/kvm/arm_vgic.h @@ -24,6 +24,7 @@ #include <linux/irqreturn.h> #include <linux/spinlock.h> #include <linux/types.h> +#include <kvm/iodev.h> #define VGIC_NR_IRQS_LEGACY 256 #define VGIC_NR_SGIS 16 @@ -147,6 +148,14 @@ struct vgic_vm_ops { int (*map_resources)(struct kvm *, const struct vgic_params *); }; +struct vgic_io_device { + gpa_t addr; + int len; + const struct vgic_io_range *reg_ranges; + struct kvm_vcpu *redist_vcpu; + struct kvm_io_device dev; +}; + struct vgic_dist { spinlock_t lock; bool in_kernel; |