[prev in list] [next in list] [prev in thread] [next in thread]
List: qemu-ppc
Subject: [PATCH v2 02/16] ppc/pnv: add pnv_get_phb3_child()
From: Daniel Henrique Barboza <danielhb413 () gmail ! com>
Date: 2022-05-31 21:49:03
Message-ID: 20220531214917.31668-3-danielhb413 () gmail ! com
[Download RAW message or body]
The ics and pic related functions in pnv.c relies in the fact that the
child device of the chip is always a PnvPHB3 object. This will change in
the next patches, and the PHB3 will be a child of another device that
will be attached to the pnv8 chip.
To ease the amount of changes done later, on let's create a helper that
retrieves the PnvPHB3 pointer from the child object in these functions.
After that we'll have a single place to change when the chip starts
using the upcoming device instead.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
hw/ppc/pnv.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 7c08a78d6c..aaf4d241c3 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -652,10 +652,15 @@ static ISABus *pnv_isa_create(PnvChip *chip, Error **errp)
return PNV_CHIP_GET_CLASS(chip)->isa_create(chip, errp);
}
+static PnvPHB3 *pnv_get_phb3_child(Object *child)
+{
+ return (PnvPHB3 *)object_dynamic_cast(child, TYPE_PNV_PHB3);
+}
+
static int pnv_chip_power8_pic_print_info_child(Object *child, void *opaque)
{
Monitor *mon = opaque;
- PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3);
+ PnvPHB3 *phb3 = pnv_get_phb3_child(child);
if (phb3) {
pnv_phb3_msi_pic_print_info(&phb3->msis, mon);
@@ -1942,7 +1947,7 @@ typedef struct ForeachPhb3Args {
static int pnv_ics_get_child(Object *child, void *opaque)
{
ForeachPhb3Args *args = opaque;
- PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3);
+ PnvPHB3 *phb3 = pnv_get_phb3_child(child);
if (phb3) {
if (ics_valid_irq(&phb3->lsis, args->irq)) {
@@ -1992,7 +1997,7 @@ PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id)
static int pnv_ics_resend_child(Object *child, void *opaque)
{
- PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3);
+ PnvPHB3 *phb3 = pnv_get_phb3_child(child);
if (phb3) {
ics_resend(&phb3->lsis);
--
2.36.1
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic