Re: [PATCH v2 1/3] hw/arm/sbsa-ref: Do not open-code ahci_ide_create_devs()
On 25/02/2024 18.21, Philippe Mathieu-Daudé wrote: On 25/2/24 18:16, Philippe Mathieu-Daudé wrote: Use ahci_ide_create_devs() instead of open-coding it. Not accessing AHCIDevice internals anymore allows to remove "hw/ide/ahci_internal.h" (which isn't really a public header). Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/sbsa-ref.c | 9 + 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c index 5d3a574664..995c7be23e 100644 --- a/hw/arm/sbsa-ref.c +++ b/hw/arm/sbsa-ref.c @@ -37,7 +37,6 @@ #include "hw/block/flash.h" #include "hw/boards.h" #include "hw/ide/internal.h" -#include "hw/ide/ahci_internal.h" #include "hw/ide/ahci-sysbus.h" #include "hw/intc/arm_gicv3_common.h" #include "hw/intc/arm_gicv3_its_common.h" @@ -572,7 +571,6 @@ static void create_ahci(const SBSAMachineState *sms) DriveInfo *hd[NUM_SATA_PORTS]; SysbusAHCIState *sysahci; AHCIState *ahci; - int i; dev = qdev_new("sysbus-ahci"); qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS); @@ -583,12 +581,7 @@ static void create_ahci(const SBSAMachineState *sms) sysahci = SYSBUS_AHCI(dev); ahci = >ahci; Bah, we can even remove that 'ahci' variable. ide_drive_get(hd, ARRAY_SIZE(hd)); - for (i = 0; i < ahci->ports; i++) { - if (hd[i] == NULL) { - continue; - } - ide_bus_create_drive(>dev[i].port, 0, hd[i]); - } + ahci_ide_create_devs(ahci, hd); } -- >8 -- @@ -571,8 +570,6 @@ static void create_ahci(const SBSAMachineState *sms) DeviceState *dev; DriveInfo *hd[NUM_SATA_PORTS]; SysbusAHCIState *sysahci; - AHCIState *ahci; - int i; dev = qdev_new("sysbus-ahci"); qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS); @@ -581,14 +578,8 @@ static void create_ahci(const SBSAMachineState *sms) sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(sms->gic, irq)); sysahci = SYSBUS_AHCI(dev); - ahci = >ahci; ide_drive_get(hd, ARRAY_SIZE(hd)); - for (i = 0; i < ahci->ports; i++) { - if (hd[i] == NULL) { - continue; - } - ide_bus_create_drive(>dev[i].port, 0, hd[i]); - } + ahci_ide_create_devs(>ahci, hd); } Reviewed-by: Thomas Huth
Re: [PATCH v2 1/3] hw/arm/sbsa-ref: Do not open-code ahci_ide_create_devs()
On 25/2/24 18:16, Philippe Mathieu-Daudé wrote: Use ahci_ide_create_devs() instead of open-coding it. Not accessing AHCIDevice internals anymore allows to remove "hw/ide/ahci_internal.h" (which isn't really a public header). Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/sbsa-ref.c | 9 + 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c index 5d3a574664..995c7be23e 100644 --- a/hw/arm/sbsa-ref.c +++ b/hw/arm/sbsa-ref.c @@ -37,7 +37,6 @@ #include "hw/block/flash.h" #include "hw/boards.h" #include "hw/ide/internal.h" -#include "hw/ide/ahci_internal.h" #include "hw/ide/ahci-sysbus.h" #include "hw/intc/arm_gicv3_common.h" #include "hw/intc/arm_gicv3_its_common.h" @@ -572,7 +571,6 @@ static void create_ahci(const SBSAMachineState *sms) DriveInfo *hd[NUM_SATA_PORTS]; SysbusAHCIState *sysahci; AHCIState *ahci; -int i; dev = qdev_new("sysbus-ahci"); qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS); @@ -583,12 +581,7 @@ static void create_ahci(const SBSAMachineState *sms) sysahci = SYSBUS_AHCI(dev); ahci = >ahci; Bah, we can even remove that 'ahci' variable. ide_drive_get(hd, ARRAY_SIZE(hd)); -for (i = 0; i < ahci->ports; i++) { -if (hd[i] == NULL) { -continue; -} -ide_bus_create_drive(>dev[i].port, 0, hd[i]); -} +ahci_ide_create_devs(ahci, hd); } -- >8 -- @@ -571,8 +570,6 @@ static void create_ahci(const SBSAMachineState *sms) DeviceState *dev; DriveInfo *hd[NUM_SATA_PORTS]; SysbusAHCIState *sysahci; -AHCIState *ahci; -int i; dev = qdev_new("sysbus-ahci"); qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS); @@ -581,14 +578,8 @@ static void create_ahci(const SBSAMachineState *sms) sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, qdev_get_gpio_in(sms->gic, irq)); sysahci = SYSBUS_AHCI(dev); -ahci = >ahci; ide_drive_get(hd, ARRAY_SIZE(hd)); -for (i = 0; i < ahci->ports; i++) { -if (hd[i] == NULL) { -continue; -} -ide_bus_create_drive(>dev[i].port, 0, hd[i]); -} +ahci_ide_create_devs(>ahci, hd); } ---
[PATCH v2 1/3] hw/arm/sbsa-ref: Do not open-code ahci_ide_create_devs()
Use ahci_ide_create_devs() instead of open-coding it. Not accessing AHCIDevice internals anymore allows to remove "hw/ide/ahci_internal.h" (which isn't really a public header). Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/sbsa-ref.c | 9 + 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/hw/arm/sbsa-ref.c b/hw/arm/sbsa-ref.c index 5d3a574664..995c7be23e 100644 --- a/hw/arm/sbsa-ref.c +++ b/hw/arm/sbsa-ref.c @@ -37,7 +37,6 @@ #include "hw/block/flash.h" #include "hw/boards.h" #include "hw/ide/internal.h" -#include "hw/ide/ahci_internal.h" #include "hw/ide/ahci-sysbus.h" #include "hw/intc/arm_gicv3_common.h" #include "hw/intc/arm_gicv3_its_common.h" @@ -572,7 +571,6 @@ static void create_ahci(const SBSAMachineState *sms) DriveInfo *hd[NUM_SATA_PORTS]; SysbusAHCIState *sysahci; AHCIState *ahci; -int i; dev = qdev_new("sysbus-ahci"); qdev_prop_set_uint32(dev, "num-ports", NUM_SATA_PORTS); @@ -583,12 +581,7 @@ static void create_ahci(const SBSAMachineState *sms) sysahci = SYSBUS_AHCI(dev); ahci = >ahci; ide_drive_get(hd, ARRAY_SIZE(hd)); -for (i = 0; i < ahci->ports; i++) { -if (hd[i] == NULL) { -continue; -} -ide_bus_create_drive(>dev[i].port, 0, hd[i]); -} +ahci_ide_create_devs(ahci, hd); } static void create_xhci(const SBSAMachineState *sms) -- 2.41.0