aboutsummaryrefslogtreecommitdiffstats
path: root/include/kvm
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2013-05-30 05:20:36 -0400
committerChristoffer Dall <christoffer.dall@linaro.org>2014-07-11 07:57:31 -0400
commiteede821dbfd58df89edb072da64e006321eaef58 (patch)
tree704cb415f76f70f2c55f45800dbfe48a8fb75695 /include/kvm
parent63f8344cb4917e5219d07cfd6fcd50860bcf5360 (diff)
KVM: arm/arm64: vgic: move GICv2 registers to their own structure
In order to make way for the GICv3 registers, move the v2-specific registers to their own structure. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'include/kvm')
-rw-r--r--include/kvm/arm_vgic.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
index f27000f55a83..f738e5a69ee9 100644
--- a/include/kvm/arm_vgic.h
+++ b/include/kvm/arm_vgic.h
@@ -110,6 +110,16 @@ struct vgic_dist {
110#endif 110#endif
111}; 111};
112 112
113struct vgic_v2_cpu_if {
114 u32 vgic_hcr;
115 u32 vgic_vmcr;
116 u32 vgic_misr; /* Saved only */
117 u32 vgic_eisr[2]; /* Saved only */
118 u32 vgic_elrsr[2]; /* Saved only */
119 u32 vgic_apr;
120 u32 vgic_lr[VGIC_MAX_LRS];
121};
122
113struct vgic_cpu { 123struct vgic_cpu {
114#ifdef CONFIG_KVM_ARM_VGIC 124#ifdef CONFIG_KVM_ARM_VGIC
115 /* per IRQ to LR mapping */ 125 /* per IRQ to LR mapping */
@@ -126,13 +136,9 @@ struct vgic_cpu {
126 int nr_lr; 136 int nr_lr;
127 137
128 /* CPU vif control registers for world switch */ 138 /* CPU vif control registers for world switch */
129 u32 vgic_hcr; 139 union {
130 u32 vgic_vmcr; 140 struct vgic_v2_cpu_if vgic_v2;
131 u32 vgic_misr; /* Saved only */ 141 };
132 u32 vgic_eisr[2]; /* Saved only */
133 u32 vgic_elrsr[2]; /* Saved only */
134 u32 vgic_apr;
135 u32 vgic_lr[VGIC_MAX_LRS];
136#endif 142#endif
137}; 143};
138 144