diff options
Diffstat (limited to 'include/kvm')
| -rw-r--r-- | include/kvm/arm_vgic.h | 20 |
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 | ||
| 113 | struct 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 | |||
| 113 | struct vgic_cpu { | 123 | struct 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 | ||
