Message ID | 20230215112712.23110-5-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | hw/ide: QOM/QDev housekeeping | expand |
On 2/15/23 01:26, Philippe Mathieu-Daudé wrote: > "hw/ide.h" is a mixed bag of lost IDE declarations. > > Extract isa_ide_init() and the TYPE_ISA_IDE QOM declarations > to a new "hw/ide/isa.h" header. > > Rename ISAIDEState::isairq as 'irqnum' to emphasize this is > not a qemu_irq object but the number (index) of an ISA IRQ. This is fine, but should be separate from the header creation. With the split, for both patches, Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
Am 15. Februar 2023 11:26:56 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>: >"hw/ide.h" is a mixed bag of lost IDE declarations. > >Extract isa_ide_init() and the TYPE_ISA_IDE QOM declarations >to a new "hw/ide/isa.h" header. > >Rename ISAIDEState::isairq as 'irqnum' to emphasize this is >not a qemu_irq object but the number (index) of an ISA IRQ. > >Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >--- > hw/i386/pc_piix.c | 1 + > hw/ide/isa.c | 14 ++++++-------- > include/hw/ide.h | 5 ----- > include/hw/ide/isa.h | 20 ++++++++++++++++++++ > 4 files changed, 27 insertions(+), 13 deletions(-) > create mode 100644 include/hw/ide/isa.h > >diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c >index df64dd8dcc..7085b4bc58 100644 >--- a/hw/i386/pc_piix.c >+++ b/hw/i386/pc_piix.c >@@ -39,6 +39,7 @@ > #include "hw/pci/pci_ids.h" > #include "hw/usb.h" > #include "net/net.h" >+#include "hw/ide/isa.h" > #include "hw/ide/pci.h" > #include "hw/ide/piix.h" > #include "hw/irq.h" >diff --git a/hw/ide/isa.c b/hw/ide/isa.c >index 8bedbd13f1..5c3e83a0fc 100644 >--- a/hw/ide/isa.c >+++ b/hw/ide/isa.c >@@ -31,22 +31,20 @@ > #include "qemu/module.h" > #include "sysemu/dma.h" > >+#include "hw/ide/isa.h" > #include "hw/ide/internal.h" > #include "qom/object.h" > > /***********************************************************/ > /* ISA IDE definitions */ > >-#define TYPE_ISA_IDE "isa-ide" >-OBJECT_DECLARE_SIMPLE_TYPE(ISAIDEState, ISA_IDE) >- > struct ISAIDEState { > ISADevice parent_obj; > > IDEBus bus; > uint32_t iobase; > uint32_t iobase2; >- uint32_t isairq; >+ uint32_t irqnum; > qemu_irq irq; > }; > >@@ -75,13 +73,13 @@ static void isa_ide_realizefn(DeviceState *dev, Error **errp) > > ide_bus_init(&s->bus, sizeof(s->bus), dev, 0, 2); > ide_init_ioport(&s->bus, isadev, s->iobase, s->iobase2); >- s->irq = isa_get_irq(isadev, s->isairq); >+ s->irq = isa_get_irq(isadev, s->irqnum); > ide_init2(&s->bus, s->irq); > vmstate_register(VMSTATE_IF(dev), 0, &vmstate_ide_isa, s); > ide_register_restart_cb(&s->bus); > } > >-ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, >+ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int irqnum, > DriveInfo *hd0, DriveInfo *hd1) > { > DeviceState *dev; >@@ -92,7 +90,7 @@ ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, > dev = DEVICE(isadev); > qdev_prop_set_uint32(dev, "iobase", iobase); > qdev_prop_set_uint32(dev, "iobase2", iobase2); >- qdev_prop_set_uint32(dev, "irq", isairq); >+ qdev_prop_set_uint32(dev, "irq", irqnum); > isa_realize_and_unref(isadev, bus, &error_fatal); > > s = ISA_IDE(dev); >@@ -108,7 +106,7 @@ ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, > static Property isa_ide_properties[] = { > DEFINE_PROP_UINT32("iobase", ISAIDEState, iobase, 0x1f0), > DEFINE_PROP_UINT32("iobase2", ISAIDEState, iobase2, 0x3f6), >- DEFINE_PROP_UINT32("irq", ISAIDEState, isairq, 14), >+ DEFINE_PROP_UINT32("irq", ISAIDEState, irqnum, 14), > DEFINE_PROP_END_OF_LIST(), > }; > >diff --git a/include/hw/ide.h b/include/hw/ide.h >index 5f8c36b2aa..24a7aa2925 100644 >--- a/include/hw/ide.h >+++ b/include/hw/ide.h >@@ -1,13 +1,8 @@ > #ifndef HW_IDE_H > #define HW_IDE_H > >-#include "hw/isa/isa.h" > #include "exec/memory.h" > >-/* ide-isa.c */ >-ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, >- DriveInfo *hd0, DriveInfo *hd1); >- > int ide_get_geometry(BusState *bus, int unit, > int16_t *cyls, int8_t *heads, int8_t *secs); > int ide_get_bios_chs_trans(BusState *bus, int unit); >diff --git a/include/hw/ide/isa.h b/include/hw/ide/isa.h >new file mode 100644 >index 0000000000..1cd0ff1fa6 >--- /dev/null >+++ b/include/hw/ide/isa.h >@@ -0,0 +1,20 @@ >+/* >+ * QEMU IDE Emulation: ISA Bus support. >+ * >+ * Copyright (c) 2003 Fabrice Bellard >+ * Copyright (c) 2006 Openedhand Ltd. >+ * >+ * SPDX-License-Identifier: MIT >+ */ >+#ifndef HW_IDE_ISA_H >+#define HW_IDE_ISA_H >+ >+#include "qom/object.h" >+ >+#define TYPE_ISA_IDE "isa-ide" >+OBJECT_DECLARE_SIMPLE_TYPE(ISAIDEState, ISA_IDE) >+ >+ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int irqnum, >+ DriveInfo *hd0, DriveInfo *hd1); >+ >+#endif Reviewed-by: Bernhard Beschow <shentey@gmail.com>
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index df64dd8dcc..7085b4bc58 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -39,6 +39,7 @@ #include "hw/pci/pci_ids.h" #include "hw/usb.h" #include "net/net.h" +#include "hw/ide/isa.h" #include "hw/ide/pci.h" #include "hw/ide/piix.h" #include "hw/irq.h" diff --git a/hw/ide/isa.c b/hw/ide/isa.c index 8bedbd13f1..5c3e83a0fc 100644 --- a/hw/ide/isa.c +++ b/hw/ide/isa.c @@ -31,22 +31,20 @@ #include "qemu/module.h" #include "sysemu/dma.h" +#include "hw/ide/isa.h" #include "hw/ide/internal.h" #include "qom/object.h" /***********************************************************/ /* ISA IDE definitions */ -#define TYPE_ISA_IDE "isa-ide" -OBJECT_DECLARE_SIMPLE_TYPE(ISAIDEState, ISA_IDE) - struct ISAIDEState { ISADevice parent_obj; IDEBus bus; uint32_t iobase; uint32_t iobase2; - uint32_t isairq; + uint32_t irqnum; qemu_irq irq; }; @@ -75,13 +73,13 @@ static void isa_ide_realizefn(DeviceState *dev, Error **errp) ide_bus_init(&s->bus, sizeof(s->bus), dev, 0, 2); ide_init_ioport(&s->bus, isadev, s->iobase, s->iobase2); - s->irq = isa_get_irq(isadev, s->isairq); + s->irq = isa_get_irq(isadev, s->irqnum); ide_init2(&s->bus, s->irq); vmstate_register(VMSTATE_IF(dev), 0, &vmstate_ide_isa, s); ide_register_restart_cb(&s->bus); } -ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, +ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int irqnum, DriveInfo *hd0, DriveInfo *hd1) { DeviceState *dev; @@ -92,7 +90,7 @@ ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, dev = DEVICE(isadev); qdev_prop_set_uint32(dev, "iobase", iobase); qdev_prop_set_uint32(dev, "iobase2", iobase2); - qdev_prop_set_uint32(dev, "irq", isairq); + qdev_prop_set_uint32(dev, "irq", irqnum); isa_realize_and_unref(isadev, bus, &error_fatal); s = ISA_IDE(dev); @@ -108,7 +106,7 @@ ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, static Property isa_ide_properties[] = { DEFINE_PROP_UINT32("iobase", ISAIDEState, iobase, 0x1f0), DEFINE_PROP_UINT32("iobase2", ISAIDEState, iobase2, 0x3f6), - DEFINE_PROP_UINT32("irq", ISAIDEState, isairq, 14), + DEFINE_PROP_UINT32("irq", ISAIDEState, irqnum, 14), DEFINE_PROP_END_OF_LIST(), }; diff --git a/include/hw/ide.h b/include/hw/ide.h index 5f8c36b2aa..24a7aa2925 100644 --- a/include/hw/ide.h +++ b/include/hw/ide.h @@ -1,13 +1,8 @@ #ifndef HW_IDE_H #define HW_IDE_H -#include "hw/isa/isa.h" #include "exec/memory.h" -/* ide-isa.c */ -ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq, - DriveInfo *hd0, DriveInfo *hd1); - int ide_get_geometry(BusState *bus, int unit, int16_t *cyls, int8_t *heads, int8_t *secs); int ide_get_bios_chs_trans(BusState *bus, int unit); diff --git a/include/hw/ide/isa.h b/include/hw/ide/isa.h new file mode 100644 index 0000000000..1cd0ff1fa6 --- /dev/null +++ b/include/hw/ide/isa.h @@ -0,0 +1,20 @@ +/* + * QEMU IDE Emulation: ISA Bus support. + * + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2006 Openedhand Ltd. + * + * SPDX-License-Identifier: MIT + */ +#ifndef HW_IDE_ISA_H +#define HW_IDE_ISA_H + +#include "qom/object.h" + +#define TYPE_ISA_IDE "isa-ide" +OBJECT_DECLARE_SIMPLE_TYPE(ISAIDEState, ISA_IDE) + +ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int irqnum, + DriveInfo *hd0, DriveInfo *hd1); + +#endif
"hw/ide.h" is a mixed bag of lost IDE declarations. Extract isa_ide_init() and the TYPE_ISA_IDE QOM declarations to a new "hw/ide/isa.h" header. Rename ISAIDEState::isairq as 'irqnum' to emphasize this is not a qemu_irq object but the number (index) of an ISA IRQ. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/i386/pc_piix.c | 1 + hw/ide/isa.c | 14 ++++++-------- include/hw/ide.h | 5 ----- include/hw/ide/isa.h | 20 ++++++++++++++++++++ 4 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 include/hw/ide/isa.h