qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Anthony Liguori" <aliguori@us.ibm.com>,
	"Andreas Färber" <afaerber@suse.de>,
	anthony@codemonkey.ws, "Markus Armbruster" <armbru@redhat.com>
Subject: [Qemu-devel] [RFC 09/34] fdc: QOM'ify ISA floppy controller
Date: Mon, 26 Nov 2012 01:12:21 +0100	[thread overview]
Message-ID: <1353888766-6951-10-git-send-email-afaerber@suse.de> (raw)
In-Reply-To: <1353888766-6951-1-git-send-email-afaerber@suse.de>

Introduce type constant and cast macro to obsolete DO_UPCAST().
Reuse type constant for PC machine compatibility settings.

Prepares for ISA realizefn.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Cc: Markus Armbruster <armbru@redhat.com>
---
 hw/fdc.c     |   23 +++++++++++++----------
 hw/fdc.h     |    2 ++
 hw/pc_piix.c |    2 +-
 3 Dateien geändert, 16 Zeilen hinzugefügt(+), 11 Zeilen entfernt(-)

diff --git a/hw/fdc.c b/hw/fdc.c
index 29b5449..edd7483 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -550,8 +550,11 @@ typedef struct FDCtrlSysBus {
     struct FDCtrl state;
 } FDCtrlSysBus;
 
+#define ISA_FDC(obj) OBJECT_CHECK(FDCtrlISABus, (obj), TYPE_ISA_FDC)
+
 typedef struct FDCtrlISABus {
-    ISADevice busdev;
+    ISADevice parent_obj;
+
     uint32_t iobase;
     uint32_t irq;
     uint32_t dma;
@@ -779,7 +782,7 @@ static void fdctrl_external_reset_sysbus(DeviceState *d)
 
 static void fdctrl_external_reset_isa(DeviceState *d)
 {
-    FDCtrlISABus *isa = container_of(d, FDCtrlISABus, busdev.qdev);
+    FDCtrlISABus *isa = ISA_FDC(d);
     FDCtrl *s = &isa->state;
 
     fdctrl_reset(s, 0);
@@ -2022,7 +2025,7 @@ ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds)
 {
     ISADevice *dev;
 
-    dev = isa_try_create(bus, "isa-fdc");
+    dev = isa_try_create(bus, TYPE_ISA_FDC);
     if (!dev) {
         return NULL;
     }
@@ -2117,13 +2120,13 @@ static const MemoryRegionPortio fdc_portio_list[] = {
 
 static int isabus_fdc_init1(ISADevice *dev)
 {
-    FDCtrlISABus *isa = DO_UPCAST(FDCtrlISABus, busdev, dev);
+    FDCtrlISABus *isa = ISA_FDC(dev);
     FDCtrl *fdctrl = &isa->state;
     int ret;
 
     isa_register_portio_list(dev, isa->iobase, fdc_portio_list, fdctrl, "fdc");
 
-    isa_init_irq(&isa->busdev, &fdctrl->irq, isa->irq);
+    isa_init_irq(dev, &fdctrl->irq, isa->irq);
     fdctrl->dma_chann = isa->dma;
 
     qdev_set_legacy_instance_id(&dev->qdev, isa->iobase, 2);
@@ -2170,7 +2173,7 @@ static int sun4m_fdc_init1(SysBusDevice *dev)
 
 FDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i)
 {
-    FDCtrlISABus *isa = DO_UPCAST(FDCtrlISABus, busdev, fdc);
+    FDCtrlISABus *isa = ISA_FDC(fdc);
 
     return isa->state.drives[i].drive;
 }
@@ -2198,7 +2201,7 @@ static Property isa_fdc_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
-static void isabus_fdc_class_init1(ObjectClass *klass, void *data)
+static void isabus_fdc_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
     ISADeviceClass *ic = ISA_DEVICE_CLASS(klass);
@@ -2210,11 +2213,11 @@ static void isabus_fdc_class_init1(ObjectClass *klass, void *data)
     dc->props = isa_fdc_properties;
 }
 
-static TypeInfo isa_fdc_info = {
-    .name          = "isa-fdc",
+static const TypeInfo isa_fdc_info = {
+    .name          = TYPE_ISA_FDC,
     .parent        = TYPE_ISA_DEVICE,
     .instance_size = sizeof(FDCtrlISABus),
-    .class_init    = isabus_fdc_class_init1,
+    .class_init    = isabus_fdc_class_init,
 };
 
 static const VMStateDescription vmstate_sysbus_fdc ={
diff --git a/hw/fdc.h b/hw/fdc.h
index a8f6f7c..d48b2f8 100644
--- a/hw/fdc.h
+++ b/hw/fdc.h
@@ -13,6 +13,8 @@ typedef enum FDriveType {
     FDRIVE_DRV_NONE = 0x03,   /* No drive connected     */
 } FDriveType;
 
+#define TYPE_ISA_FDC "isa-fdc"
+
 ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds);
 void fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
                         hwaddr mmio_base, DriveInfo **fds);
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index cfa839c..7791e4a 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -449,7 +449,7 @@ static QEMUMachine pc_machine_v1_1 = {
             .property = "rom_only",\
             .value    = stringify(1),\
         }, {\
-            .driver   = "isa-fdc",\
+            .driver   = TYPE_ISA_FDC,\
             .property = "check_media_rate",\
             .value    = "off",\
         }, {\
-- 
1.7.10.4

  parent reply	other threads:[~2012-11-26  0:13 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-26  0:12 [Qemu-devel] [RFC 00/34] QOM realize, device-only plus ISA conversion Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [PATCH 01/34] qdev: Eliminate qdev_free() in favor of QOM Andreas Färber
2012-11-26  7:20   ` Paolo Bonzini
2012-11-26 11:52     ` Andreas Färber
2012-11-26 12:04       ` Paolo Bonzini
2012-11-26  0:12 ` [Qemu-devel] [RFC 02/34] qbus: QOM'ify qbus_realize() Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 03/34] qdev: Fold state enum into bool realized Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 04/34] qdev: Prepare "realized" property Andreas Färber
2012-12-12 14:29   ` Eduardo Habkost
2012-12-12 16:51     ` Andreas Färber
2012-12-12 18:16       ` Eduardo Habkost
2012-12-12 18:25         ` Andreas Färber
2012-12-12 18:44           ` Eduardo Habkost
2012-11-26  0:12 ` [Qemu-devel] [RFC 05/34] isa: Split off instance_init for ISADevice Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 06/34] applesmc: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 07/34] cirrus_vga: QOM'ify ISA Cirrus VGA Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 08/34] debugcon: QOM'ify ISA debug console Andreas Färber
2012-11-26  0:12 ` Andreas Färber [this message]
2012-11-26  0:12 ` [Qemu-devel] [RFC 10/34] i82374: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [PATCH 11/34] i8259: Fix PIC_COMMON() macro Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 12/34] i8259: QOM cleanups Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 13/34] ide: QOM'ify ISA IDE Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 14/34] m48t59: QOM'ify ISA M48T59 NVRAM Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 15/34] mc146818rtc: QOM'ify Andreas Färber
2013-04-22 15:42   ` Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 16/34] ne2000-isa: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 17/34] parallel: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 18/34] pc: QOM'ify port 92 Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 19/34] pckbd: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 20/34] pcspk: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 21/34] sb16: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 22/34] serial: QOM'ify ISA serial Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 23/34] sga: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 24/34] vga-isa: QOM'ify ISA VGA Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 25/34] vmmouse: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 26/34] vmport: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 27/34] wdt_ib700: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 28/34] isa: Use realizefn for ISADevice Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 29/34] i8254: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 30/34] kvm/i8254: QOM'ify some more Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 31/34] i8254: Convert PITCommonState to QOM realizefn Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 32/34] i8259: QOM'ify some more Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 33/34] kvm/i8259: " Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 34/34] i8259: Convert PICCommonState to use QOM realizefn Andreas Färber
2012-12-04 22:19 ` [Qemu-devel] [RFC 00/34] QOM realize, device-only plus ISA conversion Andreas Färber
2013-01-02 14:48 ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1353888766-6951-10-git-send-email-afaerber@suse.de \
    --to=afaerber@suse.de \
    --cc=aliguori@us.ibm.com \
    --cc=anthony@codemonkey.ws \
    --cc=armbru@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).