]> git.proxmox.com Git - mirror_qemu.git/commit
hw/intc/arm_gicv3_its: Pass ITE values back from get_ite() via a struct
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 1 Feb 2022 19:32:02 +0000 (19:32 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 8 Feb 2022 10:56:29 +0000 (10:56 +0000)
commit244194fe24dbaf1aa820a9ac5a9d7a8373288389
treeadad518535c2b106a8c1a03a265d1e20c428221f
parent2954b93fe6e6173afbda124469af31c58e266ca1
hw/intc/arm_gicv3_its: Pass ITE values back from get_ite() via a struct

In get_ite() we currently return the caller some of the fields of an
Interrupt Table Entry via a set of pointer arguments, and validate
some of them internally (interrupt type and valid bit) to return a
simple true/false 'valid' indication. Define a new ITEntry struct
which has all the fields that the in-memory ITE has, and bring the
get_ite() function in to line with get_dte() and get_cte().

This paves the way for handling virtual interrupts, which will want
a different subset of the fields in the ITE. Handling them under
the old "lots of pointer arguments" scheme would have meant a
confusingly large set of arguments for this function.

The new struct ITEntry is obviously confusably similar to the
existing IteEntry struct, whose fields are the raw 12 bytes
of the in-memory ITE. In the next commit we will make update_ite()
use ITEntry instead of IteEntry, which will allow us to delete
the IteEntry struct and remove the confusion.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220201193207.2771604-9-peter.maydell@linaro.org
hw/intc/arm_gicv3_its.c