qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups
@ 2013-07-26 15:00 Andreas Färber
  2013-07-26 15:00 ` [Qemu-devel] [PATCH qom-next for-1.6 1/6] pl080: Rename pl080_state to PL080State Andreas Färber
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Andreas Färber @ 2013-07-26 15:00 UTC (permalink / raw)
  To: qemu-devel; +Cc: Hu Tao, Andreas Färber

Hello,

This series eliminates FROM_SYSBUS() in hw/dma/.

Regards,
Andreas

Cc: Hu Tao <hutao@cn.fujitsu.com>

Andreas Färber (6):
  pl080: Rename pl080_state to PL080State
  pl080: QOM'ify pl080 and pl081
  puv3_dma: QOM cast cleanup
  pxa2xx_dma: QOM cast cleanup
  sparc32_dma: QOM cast cleanup
  sun4m_iommu: QOM cast cleanup

 hw/dma/pl080.c       | 91 +++++++++++++++++++++++-----------------------------
 hw/dma/puv3_dma.c    | 12 ++++---
 hw/dma/pxa2xx_dma.c  | 20 +++++++-----
 hw/dma/sparc32_dma.c | 23 +++++++------
 hw/dma/sun4m_iommu.c | 12 ++++---
 5 files changed, 82 insertions(+), 76 deletions(-)

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH qom-next for-1.6 1/6] pl080: Rename pl080_state to PL080State
  2013-07-26 15:00 [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups Andreas Färber
@ 2013-07-26 15:00 ` Andreas Färber
  2013-07-26 15:00 ` [Qemu-devel] [PATCH qom-next for-1.6 2/6] pl080: QOM'ify pl080 and pl081 Andreas Färber
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2013-07-26 15:00 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/dma/pl080.c | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/hw/dma/pl080.c b/hw/dma/pl080.c
index 7937c3e..189a922 100644
--- a/hw/dma/pl080.c
+++ b/hw/dma/pl080.c
@@ -35,7 +35,7 @@ typedef struct {
     uint32_t conf;
 } pl080_channel;
 
-typedef struct {
+typedef struct PL080State {
     SysBusDevice busdev;
     MemoryRegion iomem;
     uint8_t tc_int;
@@ -51,7 +51,7 @@ typedef struct {
     /* Flag to avoid recursive DMA invocations.  */
     int running;
     qemu_irq irq;
-} pl080_state;
+} PL080State;
 
 static const VMStateDescription vmstate_pl080_channel = {
     .name = "pl080_channel",
@@ -72,20 +72,20 @@ static const VMStateDescription vmstate_pl080 = {
     .version_id = 1,
     .minimum_version_id = 1,
     .fields = (VMStateField[]) {
-        VMSTATE_UINT8(tc_int, pl080_state),
-        VMSTATE_UINT8(tc_mask, pl080_state),
-        VMSTATE_UINT8(err_int, pl080_state),
-        VMSTATE_UINT8(err_mask, pl080_state),
-        VMSTATE_UINT32(conf, pl080_state),
-        VMSTATE_UINT32(sync, pl080_state),
-        VMSTATE_UINT32(req_single, pl080_state),
-        VMSTATE_UINT32(req_burst, pl080_state),
-        VMSTATE_UINT8(tc_int, pl080_state),
-        VMSTATE_UINT8(tc_int, pl080_state),
-        VMSTATE_UINT8(tc_int, pl080_state),
-        VMSTATE_STRUCT_ARRAY(chan, pl080_state, PL080_MAX_CHANNELS,
+        VMSTATE_UINT8(tc_int, PL080State),
+        VMSTATE_UINT8(tc_mask, PL080State),
+        VMSTATE_UINT8(err_int, PL080State),
+        VMSTATE_UINT8(err_mask, PL080State),
+        VMSTATE_UINT32(conf, PL080State),
+        VMSTATE_UINT32(sync, PL080State),
+        VMSTATE_UINT32(req_single, PL080State),
+        VMSTATE_UINT32(req_burst, PL080State),
+        VMSTATE_UINT8(tc_int, PL080State),
+        VMSTATE_UINT8(tc_int, PL080State),
+        VMSTATE_UINT8(tc_int, PL080State),
+        VMSTATE_STRUCT_ARRAY(chan, PL080State, PL080_MAX_CHANNELS,
                              1, vmstate_pl080_channel, pl080_channel),
-        VMSTATE_INT32(running, pl080_state),
+        VMSTATE_INT32(running, PL080State),
         VMSTATE_END_OF_LIST()
     }
 };
@@ -96,7 +96,7 @@ static const unsigned char pl080_id[] =
 static const unsigned char pl081_id[] =
 { 0x81, 0x10, 0x04, 0x0a, 0x0d, 0xf0, 0x05, 0xb1 };
 
-static void pl080_update(pl080_state *s)
+static void pl080_update(PL080State *s)
 {
     if ((s->tc_int & s->tc_mask)
             || (s->err_int & s->err_mask))
@@ -105,7 +105,7 @@ static void pl080_update(pl080_state *s)
         qemu_irq_lower(s->irq);
 }
 
-static void pl080_run(pl080_state *s)
+static void pl080_run(PL080State *s)
 {
     int c;
     int flow;
@@ -221,7 +221,7 @@ again:
 static uint64_t pl080_read(void *opaque, hwaddr offset,
                            unsigned size)
 {
-    pl080_state *s = (pl080_state *)opaque;
+    PL080State *s = (PL080State *)opaque;
     uint32_t i;
     uint32_t mask;
 
@@ -290,7 +290,7 @@ static uint64_t pl080_read(void *opaque, hwaddr offset,
 static void pl080_write(void *opaque, hwaddr offset,
                         uint64_t value, unsigned size)
 {
-    pl080_state *s = (pl080_state *)opaque;
+    PL080State *s = (PL080State *)opaque;
     int i;
 
     if (offset >= 0x100 && offset < 0x200) {
@@ -357,7 +357,7 @@ static const MemoryRegionOps pl080_ops = {
 
 static int pl08x_init(SysBusDevice *dev, int nchannels)
 {
-    pl080_state *s = FROM_SYSBUS(pl080_state, dev);
+    PL080State *s = FROM_SYSBUS(PL080State, dev);
 
     memory_region_init_io(&s->iomem, OBJECT(s), &pl080_ops, s, "pl080", 0x1000);
     sysbus_init_mmio(dev, &s->iomem);
@@ -389,7 +389,7 @@ static void pl080_class_init(ObjectClass *klass, void *data)
 static const TypeInfo pl080_info = {
     .name          = "pl080",
     .parent        = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof(pl080_state),
+    .instance_size = sizeof(PL080State),
     .class_init    = pl080_class_init,
 };
 
@@ -406,7 +406,7 @@ static void pl081_class_init(ObjectClass *klass, void *data)
 static const TypeInfo pl081_info = {
     .name          = "pl081",
     .parent        = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof(pl080_state),
+    .instance_size = sizeof(PL080State),
     .class_init    = pl081_class_init,
 };
 
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH qom-next for-1.6 2/6] pl080: QOM'ify pl080 and pl081
  2013-07-26 15:00 [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups Andreas Färber
  2013-07-26 15:00 ` [Qemu-devel] [PATCH qom-next for-1.6 1/6] pl080: Rename pl080_state to PL080State Andreas Färber
@ 2013-07-26 15:00 ` Andreas Färber
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 3/6] puv3_dma: QOM cast cleanup Andreas Färber
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2013-07-26 15:00 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Let pl081 inherit from pl080 and replace triple SysBus initfn with two
instance_inits.

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/dma/pl080.c | 51 ++++++++++++++++++++-------------------------------
 1 file changed, 20 insertions(+), 31 deletions(-)

diff --git a/hw/dma/pl080.c b/hw/dma/pl080.c
index 189a922..35b9015 100644
--- a/hw/dma/pl080.c
+++ b/hw/dma/pl080.c
@@ -35,8 +35,12 @@ typedef struct {
     uint32_t conf;
 } pl080_channel;
 
+#define TYPE_PL080 "pl080"
+#define PL080(obj) OBJECT_CHECK(PL080State, (obj), TYPE_PL080)
+
 typedef struct PL080State {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     uint8_t tc_int;
     uint8_t tc_mask;
@@ -355,59 +359,44 @@ static const MemoryRegionOps pl080_ops = {
     .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
-static int pl08x_init(SysBusDevice *dev, int nchannels)
+static void pl080_init(Object *obj)
 {
-    PL080State *s = FROM_SYSBUS(PL080State, dev);
+    SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
+    PL080State *s = PL080(obj);
 
     memory_region_init_io(&s->iomem, OBJECT(s), &pl080_ops, s, "pl080", 0x1000);
-    sysbus_init_mmio(dev, &s->iomem);
-    sysbus_init_irq(dev, &s->irq);
-    s->nchannels = nchannels;
-    return 0;
+    sysbus_init_mmio(sbd, &s->iomem);
+    sysbus_init_irq(sbd, &s->irq);
+    s->nchannels = 8;
 }
 
-static int pl080_init(SysBusDevice *dev)
+static void pl081_init(Object *obj)
 {
-    return pl08x_init(dev, 8);
-}
+    PL080State *s = PL080(obj);
 
-static int pl081_init(SysBusDevice *dev)
-{
-    return pl08x_init(dev, 2);
+    s->nchannels = 2;
 }
 
-static void pl080_class_init(ObjectClass *klass, void *data)
+static void pl080_class_init(ObjectClass *oc, void *data)
 {
-    DeviceClass *dc = DEVICE_CLASS(klass);
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
+    DeviceClass *dc = DEVICE_CLASS(oc);
 
-    k->init = pl080_init;
     dc->no_user = 1;
     dc->vmsd = &vmstate_pl080;
 }
 
 static const TypeInfo pl080_info = {
-    .name          = "pl080",
+    .name          = TYPE_PL080,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(PL080State),
+    .instance_init = pl080_init,
     .class_init    = pl080_class_init,
 };
 
-static void pl081_class_init(ObjectClass *klass, void *data)
-{
-    DeviceClass *dc = DEVICE_CLASS(klass);
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
-
-    k->init = pl081_init;
-    dc->no_user = 1;
-    dc->vmsd = &vmstate_pl080;
-}
-
 static const TypeInfo pl081_info = {
     .name          = "pl081",
-    .parent        = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof(PL080State),
-    .class_init    = pl081_class_init,
+    .parent        = TYPE_PL080,
+    .instance_init = pl081_init,
 };
 
 /* The PL080 and PL081 are the same except for the number of channels
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH qom-next for-1.6 3/6] puv3_dma: QOM cast cleanup
  2013-07-26 15:00 [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups Andreas Färber
  2013-07-26 15:00 ` [Qemu-devel] [PATCH qom-next for-1.6 1/6] pl080: Rename pl080_state to PL080State Andreas Färber
  2013-07-26 15:00 ` [Qemu-devel] [PATCH qom-next for-1.6 2/6] pl080: QOM'ify pl080 and pl081 Andreas Färber
@ 2013-07-26 15:01 ` Andreas Färber
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 4/6] pxa2xx_dma: " Andreas Färber
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2013-07-26 15:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Guan Xuetao, Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/dma/puv3_dma.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/hw/dma/puv3_dma.c b/hw/dma/puv3_dma.c
index 36004ae..101bd7f 100644
--- a/hw/dma/puv3_dma.c
+++ b/hw/dma/puv3_dma.c
@@ -18,8 +18,12 @@
 #define PUV3_DMA_CH_MASK        (0xff)
 #define PUV3_DMA_CH(offset)     ((offset) >> 8)
 
-typedef struct {
-    SysBusDevice busdev;
+#define TYPE_PUV3_DMA "puv3_dma"
+#define PUV3_DMA(obj) OBJECT_CHECK(PUV3DMAState, (obj), TYPE_PUV3_DMA)
+
+typedef struct PUV3DMAState {
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     uint32_t reg_CFG[PUV3_DMA_CH_NR];
 } PUV3DMAState;
@@ -73,7 +77,7 @@ static const MemoryRegionOps puv3_dma_ops = {
 
 static int puv3_dma_init(SysBusDevice *dev)
 {
-    PUV3DMAState *s = FROM_SYSBUS(PUV3DMAState, dev);
+    PUV3DMAState *s = PUV3_DMA(dev);
     int i;
 
     for (i = 0; i < PUV3_DMA_CH_NR; i++) {
@@ -95,7 +99,7 @@ static void puv3_dma_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo puv3_dma_info = {
-    .name = "puv3_dma",
+    .name = TYPE_PUV3_DMA,
     .parent = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(PUV3DMAState),
     .class_init = puv3_dma_class_init,
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH qom-next for-1.6 4/6] pxa2xx_dma: QOM cast cleanup
  2013-07-26 15:00 [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups Andreas Färber
                   ` (2 preceding siblings ...)
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 3/6] puv3_dma: QOM cast cleanup Andreas Färber
@ 2013-07-26 15:01 ` Andreas Färber
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 5/6] sparc32_dma: " Andreas Färber
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 6/6] sun4m_iommu: " Andreas Färber
  5 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2013-07-26 15:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/dma/pxa2xx_dma.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/hw/dma/pxa2xx_dma.c b/hw/dma/pxa2xx_dma.c
index bc7bf4c..c013abb 100644
--- a/hw/dma/pxa2xx_dma.c
+++ b/hw/dma/pxa2xx_dma.c
@@ -26,8 +26,12 @@ typedef struct {
     int request;
 } PXA2xxDMAChannel;
 
+#define TYPE_PXA2XX_DMA "pxa2xx-dma"
+#define PXA2XX_DMA(obj) OBJECT_CHECK(PXA2xxDMAState, (obj), TYPE_PXA2XX_DMA)
+
 typedef struct PXA2xxDMAState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     qemu_irq irq;
 
@@ -445,11 +449,11 @@ static void pxa2xx_dma_request(void *opaque, int req_num, int on)
     }
 }
 
-static int pxa2xx_dma_init(SysBusDevice *dev)
+static int pxa2xx_dma_init(SysBusDevice *sbd)
 {
+    DeviceState *dev = DEVICE(sbd);
+    PXA2xxDMAState *s = PXA2XX_DMA(dev);
     int i;
-    PXA2xxDMAState *s;
-    s = FROM_SYSBUS(PXA2xxDMAState, dev);
 
     if (s->channels <= 0) {
         return -1;
@@ -463,12 +467,12 @@ static int pxa2xx_dma_init(SysBusDevice *dev)
 
     memset(s->req, 0, sizeof(uint8_t) * PXA2XX_DMA_NUM_REQUESTS);
 
-    qdev_init_gpio_in(&dev->qdev, pxa2xx_dma_request, PXA2XX_DMA_NUM_REQUESTS);
+    qdev_init_gpio_in(dev, pxa2xx_dma_request, PXA2XX_DMA_NUM_REQUESTS);
 
     memory_region_init_io(&s->iomem, OBJECT(s), &pxa2xx_dma_ops, s,
                           "pxa2xx.dma", 0x00010000);
-    sysbus_init_mmio(dev, &s->iomem);
-    sysbus_init_irq(dev, &s->irq);
+    sysbus_init_mmio(sbd, &s->iomem);
+    sysbus_init_irq(sbd, &s->irq);
 
     return 0;
 }
@@ -560,7 +564,7 @@ static void pxa2xx_dma_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo pxa2xx_dma_info = {
-    .name          = "pxa2xx-dma",
+    .name          = TYPE_PXA2XX_DMA,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(PXA2xxDMAState),
     .class_init    = pxa2xx_dma_class_init,
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH qom-next for-1.6 5/6] sparc32_dma: QOM cast cleanup
  2013-07-26 15:00 [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups Andreas Färber
                   ` (3 preceding siblings ...)
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 4/6] pxa2xx_dma: " Andreas Färber
@ 2013-07-26 15:01 ` Andreas Färber
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 6/6] sun4m_iommu: " Andreas Färber
  5 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2013-07-26 15:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/dma/sparc32_dma.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c
index be6275f..2a92ffb 100644
--- a/hw/dma/sparc32_dma.c
+++ b/hw/dma/sparc32_dma.c
@@ -60,10 +60,14 @@
 /* XXX SCSI and ethernet should have different read-only bit masks */
 #define DMA_CSR_RO_MASK 0xfe000007
 
+#define TYPE_SPARC32_DMA "sparc32_dma"
+#define SPARC32_DMA(obj) OBJECT_CHECK(DMAState, (obj), TYPE_SPARC32_DMA)
+
 typedef struct DMAState DMAState;
 
 struct DMAState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     uint32_t dmaregs[DMA_REGS];
     qemu_irq irq;
@@ -249,7 +253,7 @@ static const MemoryRegionOps dma_mem_ops = {
 
 static void dma_reset(DeviceState *d)
 {
-    DMAState *s = container_of(d, DMAState, busdev.qdev);
+    DMAState *s = SPARC32_DMA(d);
 
     memset(s->dmaregs, 0, DMA_SIZE);
     s->dmaregs[0] = DMA_VER;
@@ -266,20 +270,21 @@ static const VMStateDescription vmstate_dma = {
     }
 };
 
-static int sparc32_dma_init1(SysBusDevice *dev)
+static int sparc32_dma_init1(SysBusDevice *sbd)
 {
-    DMAState *s = FROM_SYSBUS(DMAState, dev);
+    DeviceState *dev = DEVICE(sbd);
+    DMAState *s = SPARC32_DMA(dev);
     int reg_size;
 
-    sysbus_init_irq(dev, &s->irq);
+    sysbus_init_irq(sbd, &s->irq);
 
     reg_size = s->is_ledma ? DMA_ETH_SIZE : DMA_SIZE;
     memory_region_init_io(&s->iomem, OBJECT(s), &dma_mem_ops, s,
                           "dma", reg_size);
-    sysbus_init_mmio(dev, &s->iomem);
+    sysbus_init_mmio(sbd, &s->iomem);
 
-    qdev_init_gpio_in(&dev->qdev, dma_set_irq, 1);
-    qdev_init_gpio_out(&dev->qdev, s->gpio, 2);
+    qdev_init_gpio_in(dev, dma_set_irq, 1);
+    qdev_init_gpio_out(dev, s->gpio, 2);
 
     return 0;
 }
@@ -302,7 +307,7 @@ static void sparc32_dma_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo sparc32_dma_info = {
-    .name          = "sparc32_dma",
+    .name          = TYPE_SPARC32_DMA,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(DMAState),
     .class_init    = sparc32_dma_class_init,
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH qom-next for-1.6 6/6] sun4m_iommu: QOM cast cleanup
  2013-07-26 15:00 [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups Andreas Färber
                   ` (4 preceding siblings ...)
  2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 5/6] sparc32_dma: " Andreas Färber
@ 2013-07-26 15:01 ` Andreas Färber
  5 siblings, 0 replies; 7+ messages in thread
From: Andreas Färber @ 2013-07-26 15:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/dma/sun4m_iommu.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/hw/dma/sun4m_iommu.c b/hw/dma/sun4m_iommu.c
index edb93f3..a04409a 100644
--- a/hw/dma/sun4m_iommu.c
+++ b/hw/dma/sun4m_iommu.c
@@ -126,8 +126,12 @@
 #define IOMMU_PAGE_SIZE     (1 << IOMMU_PAGE_SHIFT)
 #define IOMMU_PAGE_MASK     ~(IOMMU_PAGE_SIZE - 1)
 
+#define TYPE_SUN4M_IOMMU "iommu"
+#define SUN4M_IOMMU(obj) OBJECT_CHECK(IOMMUState, (obj), TYPE_SUN4M_IOMMU)
+
 typedef struct IOMMUState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     uint32_t regs[IOMMU_NREGS];
     hwaddr iostart;
@@ -332,7 +336,7 @@ static const VMStateDescription vmstate_iommu = {
 
 static void iommu_reset(DeviceState *d)
 {
-    IOMMUState *s = container_of(d, IOMMUState, busdev.qdev);
+    IOMMUState *s = SUN4M_IOMMU(d);
 
     memset(s->regs, 0, IOMMU_NREGS * 4);
     s->iostart = 0;
@@ -345,7 +349,7 @@ static void iommu_reset(DeviceState *d)
 
 static int iommu_init1(SysBusDevice *dev)
 {
-    IOMMUState *s = FROM_SYSBUS(IOMMUState, dev);
+    IOMMUState *s = SUN4M_IOMMU(dev);
 
     sysbus_init_irq(dev, &s->irq);
 
@@ -373,7 +377,7 @@ static void iommu_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo iommu_info = {
-    .name          = "iommu",
+    .name          = TYPE_SUN4M_IOMMU,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(IOMMUState),
     .class_init    = iommu_class_init,
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-07-26 15:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-26 15:00 [Qemu-devel] [PATCH qom-next for-1.6 0/6] dma: QOM cast cleanups Andreas Färber
2013-07-26 15:00 ` [Qemu-devel] [PATCH qom-next for-1.6 1/6] pl080: Rename pl080_state to PL080State Andreas Färber
2013-07-26 15:00 ` [Qemu-devel] [PATCH qom-next for-1.6 2/6] pl080: QOM'ify pl080 and pl081 Andreas Färber
2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 3/6] puv3_dma: QOM cast cleanup Andreas Färber
2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 4/6] pxa2xx_dma: " Andreas Färber
2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 5/6] sparc32_dma: " Andreas Färber
2013-07-26 15:01 ` [Qemu-devel] [PATCH qom-next for-1.6 6/6] sun4m_iommu: " Andreas Färber

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).