diff options
| author | Marc Zyngier <marc.zyngier@arm.com> | 2013-05-30 05:20:36 -0400 |
|---|---|---|
| committer | Christoffer Dall <christoffer.dall@linaro.org> | 2014-07-11 07:57:31 -0400 |
| commit | eede821dbfd58df89edb072da64e006321eaef58 (patch) | |
| tree | 704cb415f76f70f2c55f45800dbfe48a8fb75695 /include | |
| parent | 63f8344cb4917e5219d07cfd6fcd50860bcf5360 (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')
| -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 | ||
