xemu/include/hw/intc
Luc Michel 5773c0494a intc/arm_gic: Add the virtualization extensions to the GIC state
Add the necessary parts of the virtualization extensions state to the
GIC state. We choose to increase the size of the CPU interfaces state to
add space for the vCPU interfaces (the GIC_NCPU_VCPU macro). This way,
we'll be able to reuse most of the CPU interface code for the vCPUs.

The only exception is the APR value, which is stored in h_apr in the
virtual interface state for vCPUs. This is due to some complications
with the GIC VMState, for which we don't want to break backward
compatibility. APRs being stored in 2D arrays, increasing the second
dimension would lead to some ugly VMState description. To avoid
that, we keep it in h_apr for vCPUs.

The vCPUs are numbered from GIC_NCPU to (GIC_NCPU * 2) - 1. The
`gic_is_vcpu` function help to determine if a given CPU id correspond to
a physical CPU or a virtual one.

For the in-kernel KVM VGIC, since the exposed VGIC does not implement
the virtualization extensions, we report an error if the corresponding
property is set to true.

Signed-off-by: Luc Michel <luc.michel@greensocs.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20180727095421.386-6-luc.michel@greensocs.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-08-14 17:17:20 +01:00
..
allwinner-a10-pic.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
arm_gic_common.h intc/arm_gic: Add the virtualization extensions to the GIC state 2018-08-14 17:17:20 +01:00
arm_gic.h gic: provide defines for v2/v3 targetlist sizes 2016-07-14 16:51:37 +01:00
arm_gicv3_common.h hw/intc/arm_gicv3: Introduce redist-region-count array property 2018-06-22 13:28:36 +01:00
arm_gicv3_its_common.h hw/intc/arm_gicv3_its: Implement state save/restore 2017-06-13 14:57:00 +01:00
arm_gicv3.h hw/intc/arm_gicv3: ARM GICv3 device framework 2016-06-17 15:23:51 +01:00
armv7m_nvic.h nvic: Change NVIC to support ARMv6-M 2018-08-14 17:17:19 +01:00
aspeed_vic.h hw/intc: Add (new) ASPEED VIC device model 2016-03-16 17:42:18 +00:00
bcm2835_ic.h bcm2835_ic: add bcm2835 interrupt controller 2016-02-03 15:00:44 +00:00
bcm2836_control.h bcm2836_control: add bcm2836 ARM control logic 2016-02-03 15:00:45 +00:00
heathrow_pic.h heathrow: remove obsolete heathow_init() function 2018-04-27 18:05:22 +10:00
imx_avic.h i.MX: Split AVIC emulator in a header file and a source file 2015-08-13 11:26:19 +01:00
imx_gpcv2.h i.MX: Add code to emulate GPCv2 IP block 2018-02-09 10:40:30 +00:00
intc.h intc: add an interface to gather statistics/informations on interrupt controllers 2016-10-04 10:00:25 +02:00
mips_gic.h hw/mips: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
realview_gic.h realview_gic: Prepare for QOM embedding 2013-11-05 17:47:30 +01:00
xlnx-pmu-iomod-intc.h Clean up includes 2018-02-09 05:05:11 +01:00
xlnx-zynqmp-ipi.h Clean up includes 2018-02-09 05:05:11 +01:00