qemu-e2k/include/hw
Peter Maydell 7c087bd330 hw/intc/arm_gicv3: Keep pointers to every connected ITS
The GICv4 ITS VMOVP command's semantics require it to perform the
operation on every ITS connected to the same GIC that the ITS that
received the command is attached to.  This means that the GIC object
needs to keep a pointer to every ITS that is connected to it
(previously it was sufficient for the ITS to have a pointer to its
GIC).

Add a glib ptrarray to the GICv3 object which holds pointers to every
connected ITS, and make the ITS add itself to the array for the GIC
it is connected to when it is realized.

Note that currently all QEMU machine types with an ITS have exactly
one ITS in the system, so typically the length of this ptrarray will
be 1.  Multiple ITSes are typically used to improve performance on
real hardware, so we wouldn't need to have more than one unless we
were modelling a real machine type that had multile ITSes.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
[PMM: Moved gicv3_add_its() to arm_gicv3_its_common.h to avoid
 compilation error building the KVM ITS]
Message-id: 20220408141550.1271295-16-peter.maydell@linaro.org
2022-04-22 09:24:44 +01:00
..
acpi acpi: fix acpi_index migration 2022-04-06 20:03:26 +01:00
adc
arm hw/arm/exynos4210: Drop Exynos4210Irq struct 2022-04-21 11:37:04 +01:00
audio
block
char
core compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
cpu
cris
display macfb: increase number of registers saved in MacfbState 2022-03-09 09:29:10 +00:00
dma
firmware
gpio
hyperv hyperv: Add support to process syndbg commands 2022-04-06 14:31:56 +02:00
i2c hw/i2c: Added linear mode translation for pmbus devices 2022-03-08 18:46:48 +01:00
i386 hw: Add compat machines for 7.1 2022-04-20 09:36:24 +02:00
ide
input hw/acpi: add indication for i8042 in IA-PC boot flags of the FADT table 2022-03-06 16:06:16 -05:00
intc hw/intc/arm_gicv3: Keep pointers to every connected ITS 2022-04-22 09:24:44 +01:00
ipack
ipmi
isa hw/isa: Inline and remove one-line isa_init_irq() 2022-03-08 19:38:17 +01:00
kvm
m68k
mem
mips Replace TARGET_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
misc hw/misc: Add PWRON STRAP bit fields in GCR module 2022-04-21 11:37:05 +01:00
net
nubus
nvram
pci acpi: pcihp: pcie: set power on cap on parent slot 2022-03-06 05:08:23 -05:00
pci-bridge pci: expose TYPE_XIO3130_DOWNSTREAM name 2022-03-06 05:08:23 -05:00
pci-host ppc/pnv: Fix number of registers in the PCIe controller on POWER9 2022-04-04 08:49:06 +02:00
ppc hw/ppc: change indentation to spaces from TABs 2022-04-20 18:00:30 -03:00
rdma
remote
riscv hw: riscv: opentitan: fixup SPI addresses 2022-03-03 13:14:50 +10:00
rtc hw/rtc/mc146818rtc: QOM'ify IRQ number 2022-03-08 19:38:17 +01:00
rx
s390x
scsi esp: convert ESPState pdma_cb from a function pointer to an integer 2022-03-09 09:29:10 +00:00
sd
sensor hw/sensor: add Renesas raa228000 device 2022-03-08 18:46:48 +01:00
sh4
southbridge hw/isa/piix4: Resolve global instance variable 2022-03-08 19:38:05 +01:00
sparc
ssi aspeed/smc: Rename 'max_peripherals' to 'cs_num_max' 2022-03-08 09:18:11 +01:00
timer timer: cadence_ttc: Break out header file to allow embedding 2022-04-21 11:37:03 +01:00
tricore
usb
vfio
virtio Replace TARGET_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
watchdog
xen Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
xtensa
boards.h hw: Add compat machines for 7.1 2022-04-20 09:36:24 +02:00
clock.h
elf_ops.h
fw-path-provider.h
hotplug.h
hw.h compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
ide.h
irq.h hw/core/irq: remove unused 'qemu_irq_split' function 2022-04-21 11:37:04 +01:00
loader-fit.h
loader.h
nmi.h
or-irq.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-clock.h
qdev-core.h
qdev-dma.h
qdev-properties-system.h
qdev-properties.h
register.h
registerfields.h hw/registerfields: Add FIELD_SEX<N> and FIELD_SDP<N> 2022-03-02 19:27:36 +00:00
resettable.h
stream.h
sysbus.h
usb.h
vmstate-if.h