@@ -246,6 +246,26 @@ struct vgic_cpu {
unsigned int used_lrs;
struct vgic_irq private_irqs[VGIC_NR_PRIVATE_IRQS];
+ /* CPU vif control registers for the virtual GICH interface */
+ union {
+ struct vgic_v2_cpu_if nested_vgic_v2;
+ struct vgic_v3_cpu_if nested_vgic_v3;
+ };
+
+ /*
+ * The shadow vif control register loaded to the hardware when
+ * running a sted L2 guest with the virtual IMO bit set.
+ */
+ union {
+ struct vgic_v2_cpu_if shadow_vgic_v2;
+ struct vgic_v3_cpu_if shadow_vgic_v3;
+ };
+
+ union {
+ struct vgic_v2_cpu_if *hw_v2_cpu_if;
+ struct vgic_v3_cpu_if *hw_v3_cpu_if;
+ };
+
spinlock_t ap_list_lock; /* Protects the ap_list */
/*