diff mbox series

[04/20] hw/ide/isa: Extract TYPE_ISA_IDE declarations to 'hw/ide/isa.h'

Message ID 20230215112712.23110-5-philmd@linaro.org
State Superseded
Headers show
Series hw/ide: QOM/QDev housekeeping | expand

Commit Message

Philippe Mathieu-Daudé Feb. 15, 2023, 11:26 a.m. UTC
"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

Comments

Richard Henderson Feb. 15, 2023, 7:08 p.m. UTC | #1
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~
Bernhard Beschow Feb. 16, 2023, 2:19 p.m. UTC | #2
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 mbox series

Patch

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