aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-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