qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups
@ 2013-07-27 13:36 Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 01/20] arm_timer: Rename sp804_state to SP804State Andreas Färber
                   ` (19 more replies)
  0 siblings, 20 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Hu Tao, Andreas Färber

Hello,

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

Regards,
Andreas

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

Andreas Färber (20):
  arm_timer: Rename sp804_state to SP804State
  arm_timer: QOM cast cleanup for SP804State
  arm_timer: QOM cast cleanup for icp_pit_state
  cadence_ttc: QOM cast cleanup
  etraxfs_timer: Rename etrax_timer to ETRAXTimerState
  etraxfs_timer: QOM cast cleanup
  exynos4210_mct: QOM cast cleanup
  exynos4210_pwm: QOM cast cleanup
  exynos4210_rtc: QOM cast cleanup
  grlib_gptimer: QOM cast cleanup
  lm32_timer: QOM cast cleanup
  m48t59: QOM cast cleanup for M48t59SysBusState
  milkymist-sysctl: QOM cast cleanup
  pl031: Rename pl031_state to PL031State
  pl031: QOM cast cleanup
  puv3_ost: QOM cast cleanup
  pxa2xx_timer: QOM cast cleanup
  slavio_timer: QOM cast cleanup
  tusb6010: QOM cast cleanup
  xilinx_timer: QOM cast cleanup

 hw/timer/arm_timer.c        | 48 +++++++++++++++++++++++++++------------------
 hw/timer/cadence_ttc.c      | 13 ++++++++----
 hw/timer/etraxfs_timer.c    | 35 +++++++++++++++++++--------------
 hw/timer/exynos4210_mct.c   | 13 ++++++++----
 hw/timer/exynos4210_pwm.c   | 12 ++++++++----
 hw/timer/exynos4210_rtc.c   | 13 ++++++++----
 hw/timer/grlib_gptimer.c    | 13 ++++++++----
 hw/timer/lm32_timer.c       | 12 ++++++++----
 hw/timer/m48t59.c           | 16 +++++++++------
 hw/timer/milkymist-sysctl.c | 14 ++++++++-----
 hw/timer/pl031.c            | 44 ++++++++++++++++++++++-------------------
 hw/timer/puv3_ost.c         | 12 ++++++++----
 hw/timer/pxa2xx_timer.c     | 38 ++++++++++++++++++++++++-----------
 hw/timer/slavio_timer.c     | 13 ++++++++----
 hw/timer/tusb6010.c         | 26 ++++++++++++++----------
 hw/timer/xilinx_timer.c     | 11 ++++++++---
 include/hw/timer/m48t59.h   |  3 +++
 17 files changed, 215 insertions(+), 121 deletions(-)

-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 01/20] arm_timer: Rename sp804_state to SP804State
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 02/20] arm_timer: QOM cast cleanup for SP804State Andreas Färber
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

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

diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c
index 798a8da..25e8890 100644
--- a/hw/timer/arm_timer.c
+++ b/hw/timer/arm_timer.c
@@ -179,14 +179,14 @@ static arm_timer_state *arm_timer_init(uint32_t freq)
  * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0271d/index.html
 */
 
-typedef struct {
+typedef struct SP804State {
     SysBusDevice busdev;
     MemoryRegion iomem;
     arm_timer_state *timer[2];
     uint32_t freq0, freq1;
     int level[2];
     qemu_irq irq;
-} sp804_state;
+} SP804State;
 
 static const uint8_t sp804_ids[] = {
     /* Timer ID */
@@ -198,7 +198,7 @@ static const uint8_t sp804_ids[] = {
 /* Merge the IRQs from the two component devices.  */
 static void sp804_set_irq(void *opaque, int irq, int level)
 {
-    sp804_state *s = (sp804_state *)opaque;
+    SP804State *s = (SP804State *)opaque;
 
     s->level[irq] = level;
     qemu_set_irq(s->irq, s->level[0] || s->level[1]);
@@ -207,7 +207,7 @@ static void sp804_set_irq(void *opaque, int irq, int level)
 static uint64_t sp804_read(void *opaque, hwaddr offset,
                            unsigned size)
 {
-    sp804_state *s = (sp804_state *)opaque;
+    SP804State *s = (SP804State *)opaque;
 
     if (offset < 0x20) {
         return arm_timer_read(s->timer[0], offset);
@@ -239,7 +239,7 @@ static uint64_t sp804_read(void *opaque, hwaddr offset,
 static void sp804_write(void *opaque, hwaddr offset,
                         uint64_t value, unsigned size)
 {
-    sp804_state *s = (sp804_state *)opaque;
+    SP804State *s = (SP804State *)opaque;
 
     if (offset < 0x20) {
         arm_timer_write(s->timer[0], offset, value);
@@ -268,14 +268,14 @@ static const VMStateDescription vmstate_sp804 = {
     .minimum_version_id = 1,
     .minimum_version_id_old = 1,
     .fields      = (VMStateField[]) {
-        VMSTATE_INT32_ARRAY(level, sp804_state, 2),
+        VMSTATE_INT32_ARRAY(level, SP804State, 2),
         VMSTATE_END_OF_LIST()
     }
 };
 
 static int sp804_init(SysBusDevice *dev)
 {
-    sp804_state *s = FROM_SYSBUS(sp804_state, dev);
+    SP804State *s = FROM_SYSBUS(SP804State, dev);
     qemu_irq *qi;
 
     qi = qemu_allocate_irqs(sp804_set_irq, s, 2);
@@ -371,8 +371,8 @@ static const TypeInfo icp_pit_info = {
 };
 
 static Property sp804_properties[] = {
-    DEFINE_PROP_UINT32("freq0", sp804_state, freq0, 1000000),
-    DEFINE_PROP_UINT32("freq1", sp804_state, freq1, 1000000),
+    DEFINE_PROP_UINT32("freq0", SP804State, freq0, 1000000),
+    DEFINE_PROP_UINT32("freq1", SP804State, freq1, 1000000),
     DEFINE_PROP_END_OF_LIST(),
 };
 
@@ -388,7 +388,7 @@ static void sp804_class_init(ObjectClass *klass, void *data)
 static const TypeInfo sp804_info = {
     .name          = "sp804",
     .parent        = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof(sp804_state),
+    .instance_size = sizeof(SP804State),
     .class_init    = sp804_class_init,
 };
 
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 02/20] arm_timer: QOM cast cleanup for SP804State
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 01/20] arm_timer: Rename sp804_state to SP804State Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 03/20] arm_timer: QOM cast cleanup for icp_pit_state Andreas Färber
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/arm_timer.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c
index 25e8890..8d95743 100644
--- a/hw/timer/arm_timer.c
+++ b/hw/timer/arm_timer.c
@@ -179,8 +179,12 @@ static arm_timer_state *arm_timer_init(uint32_t freq)
  * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0271d/index.html
 */
 
+#define TYPE_SP804 "sp804"
+#define SP804(obj) OBJECT_CHECK(SP804State, (obj), TYPE_SP804)
+
 typedef struct SP804State {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     arm_timer_state *timer[2];
     uint32_t freq0, freq1;
@@ -273,21 +277,22 @@ static const VMStateDescription vmstate_sp804 = {
     }
 };
 
-static int sp804_init(SysBusDevice *dev)
+static int sp804_init(SysBusDevice *sbd)
 {
-    SP804State *s = FROM_SYSBUS(SP804State, dev);
+    DeviceState *dev = DEVICE(sbd);
+    SP804State *s = SP804(dev);
     qemu_irq *qi;
 
     qi = qemu_allocate_irqs(sp804_set_irq, s, 2);
-    sysbus_init_irq(dev, &s->irq);
+    sysbus_init_irq(sbd, &s->irq);
     s->timer[0] = arm_timer_init(s->freq0);
     s->timer[1] = arm_timer_init(s->freq1);
     s->timer[0]->irq = qi[0];
     s->timer[1]->irq = qi[1];
     memory_region_init_io(&s->iomem, OBJECT(s), &sp804_ops, s,
                           "sp804", 0x1000);
-    sysbus_init_mmio(dev, &s->iomem);
-    vmstate_register(&dev->qdev, -1, &vmstate_sp804, s);
+    sysbus_init_mmio(sbd, &s->iomem);
+    vmstate_register(dev, -1, &vmstate_sp804, s);
     return 0;
 }
 
@@ -386,7 +391,7 @@ static void sp804_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo sp804_info = {
-    .name          = "sp804",
+    .name          = TYPE_SP804,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(SP804State),
     .class_init    = sp804_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 03/20] arm_timer: QOM cast cleanup for icp_pit_state
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 01/20] arm_timer: Rename sp804_state to SP804State Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 02/20] arm_timer: QOM cast cleanup for SP804State Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 04/20] cadence_ttc: QOM cast cleanup Andreas Färber
                   ` (16 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/arm_timer.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c
index 8d95743..acfea59 100644
--- a/hw/timer/arm_timer.c
+++ b/hw/timer/arm_timer.c
@@ -298,8 +298,13 @@ static int sp804_init(SysBusDevice *sbd)
 
 /* Integrator/CP timer module.  */
 
+#define TYPE_INTEGRATOR_PIT "integrator_pit"
+#define INTEGRATOR_PIT(obj) \
+    OBJECT_CHECK(icp_pit_state, (obj), TYPE_INTEGRATOR_PIT)
+
 typedef struct {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     arm_timer_state *timer[3];
 } icp_pit_state;
@@ -341,7 +346,7 @@ static const MemoryRegionOps icp_pit_ops = {
 
 static int icp_pit_init(SysBusDevice *dev)
 {
-    icp_pit_state *s = FROM_SYSBUS(icp_pit_state, dev);
+    icp_pit_state *s = INTEGRATOR_PIT(dev);
 
     /* Timer 0 runs at the system clock speed (40MHz).  */
     s->timer[0] = arm_timer_init(40000000);
@@ -369,7 +374,7 @@ static void icp_pit_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo icp_pit_info = {
-    .name          = "integrator_pit",
+    .name          = TYPE_INTEGRATOR_PIT,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(icp_pit_state),
     .class_init    = icp_pit_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 04/20] cadence_ttc: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (2 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 03/20] arm_timer: QOM cast cleanup for icp_pit_state Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 05/20] etraxfs_timer: Rename etrax_timer to ETRAXTimerState Andreas Färber
                   ` (15 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Crosthwaite, Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/cadence_ttc.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/hw/timer/cadence_ttc.c b/hw/timer/cadence_ttc.c
index a861049..888f9ce 100644
--- a/hw/timer/cadence_ttc.c
+++ b/hw/timer/cadence_ttc.c
@@ -64,8 +64,13 @@ typedef struct {
     qemu_irq irq;
 } CadenceTimerState;
 
-typedef struct {
-    SysBusDevice busdev;
+#define TYPE_CADENCE_TTC "cadence_ttc"
+#define CADENCE_TTC(obj) \
+    OBJECT_CHECK(CadenceTTCState, (obj), TYPE_CADENCE_TTC)
+
+typedef struct CadenceTTCState {
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     CadenceTimerState timer[3];
 } CadenceTTCState;
@@ -401,7 +406,7 @@ static void cadence_timer_init(uint32_t freq, CadenceTimerState *s)
 
 static int cadence_ttc_init(SysBusDevice *dev)
 {
-    CadenceTTCState *s = FROM_SYSBUS(CadenceTTCState, dev);
+    CadenceTTCState *s = CADENCE_TTC(dev);
     int i;
 
     for (i = 0; i < 3; ++i) {
@@ -476,7 +481,7 @@ static void cadence_ttc_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo cadence_ttc_info = {
-    .name  = "cadence_ttc",
+    .name  = TYPE_CADENCE_TTC,
     .parent = TYPE_SYS_BUS_DEVICE,
     .instance_size  = sizeof(CadenceTTCState),
     .class_init = cadence_ttc_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 05/20] etraxfs_timer: Rename etrax_timer to ETRAXTimerState
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (3 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 04/20] cadence_ttc: QOM cast cleanup Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 06/20] etraxfs_timer: QOM cast cleanup Andreas Färber
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Edgar E. Iglesias, Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/etraxfs_timer.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/hw/timer/etraxfs_timer.c b/hw/timer/etraxfs_timer.c
index 6dd1072..7e9807d 100644
--- a/hw/timer/etraxfs_timer.c
+++ b/hw/timer/etraxfs_timer.c
@@ -42,7 +42,7 @@
 #define R_INTR        0x50
 #define R_MASKED_INTR 0x54
 
-struct etrax_timer {
+typedef struct ETRAXTimerState {
     SysBusDevice busdev;
     MemoryRegion mmio;
     qemu_irq irq;
@@ -72,12 +72,12 @@ struct etrax_timer {
     uint32_t rw_ack_intr;
     uint32_t r_intr;
     uint32_t r_masked_intr;
-};
+} ETRAXTimerState;
 
 static uint64_t
 timer_read(void *opaque, hwaddr addr, unsigned int size)
 {
-    struct etrax_timer *t = opaque;
+    ETRAXTimerState *t = opaque;
     uint32_t r = 0;
 
     switch (addr) {
@@ -103,7 +103,7 @@ timer_read(void *opaque, hwaddr addr, unsigned int size)
     return r;
 }
 
-static void update_ctrl(struct etrax_timer *t, int tnum)
+static void update_ctrl(ETRAXTimerState *t, int tnum)
 {
     unsigned int op;
     unsigned int freq;
@@ -167,7 +167,7 @@ static void update_ctrl(struct etrax_timer *t, int tnum)
     }
 }
 
-static void timer_update_irq(struct etrax_timer *t)
+static void timer_update_irq(ETRAXTimerState *t)
 {
     t->r_intr &= ~(t->rw_ack_intr);
     t->r_masked_intr = t->r_intr & t->rw_intr_mask;
@@ -178,21 +178,21 @@ static void timer_update_irq(struct etrax_timer *t)
 
 static void timer0_hit(void *opaque)
 {
-    struct etrax_timer *t = opaque;
+    ETRAXTimerState *t = opaque;
     t->r_intr |= 1;
     timer_update_irq(t);
 }
 
 static void timer1_hit(void *opaque)
 {
-    struct etrax_timer *t = opaque;
+    ETRAXTimerState *t = opaque;
     t->r_intr |= 2;
     timer_update_irq(t);
 }
 
 static void watchdog_hit(void *opaque)
 {
-    struct etrax_timer *t = opaque;
+    ETRAXTimerState *t = opaque;
     if (t->wd_hits == 0) {
         /* real hw gives a single tick before reseting but we are
            a bit friendlier to compensate for our slower execution.  */
@@ -206,7 +206,7 @@ static void watchdog_hit(void *opaque)
     t->wd_hits++;
 }
 
-static inline void timer_watchdog_update(struct etrax_timer *t, uint32_t value)
+static inline void timer_watchdog_update(ETRAXTimerState *t, uint32_t value)
 {
     unsigned int wd_en = t->rw_wd_ctrl & (1 << 8);
     unsigned int wd_key = t->rw_wd_ctrl >> 9;
@@ -245,7 +245,7 @@ static void
 timer_write(void *opaque, hwaddr addr,
             uint64_t val64, unsigned int size)
 {
-    struct etrax_timer *t = opaque;
+    ETRAXTimerState *t = opaque;
     uint32_t value = val64;
 
     switch (addr)
@@ -298,7 +298,7 @@ static const MemoryRegionOps timer_ops = {
 
 static void etraxfs_timer_reset(void *opaque)
 {
-    struct etrax_timer *t = opaque;
+    ETRAXTimerState *t = opaque;
 
     ptimer_stop(t->ptimer_t0);
     ptimer_stop(t->ptimer_t1);
@@ -311,7 +311,7 @@ static void etraxfs_timer_reset(void *opaque)
 
 static int etraxfs_timer_init(SysBusDevice *dev)
 {
-    struct etrax_timer *t = FROM_SYSBUS(typeof (*t), dev);
+    ETRAXTimerState *t = FROM_SYSBUS(typeof (*t), dev);
 
     t->bh_t0 = qemu_bh_new(timer0_hit, t);
     t->bh_t1 = qemu_bh_new(timer1_hit, t);
@@ -340,7 +340,7 @@ static void etraxfs_timer_class_init(ObjectClass *klass, void *data)
 static const TypeInfo etraxfs_timer_info = {
     .name          = "etraxfs,timer",
     .parent        = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof (struct etrax_timer),
+    .instance_size = sizeof(ETRAXTimerState),
     .class_init    = etraxfs_timer_class_init,
 };
 
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 06/20] etraxfs_timer: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (4 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 05/20] etraxfs_timer: Rename etrax_timer to ETRAXTimerState Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 07/20] exynos4210_mct: " Andreas Färber
                   ` (13 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Edgar E. Iglesias, Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/etraxfs_timer.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/hw/timer/etraxfs_timer.c b/hw/timer/etraxfs_timer.c
index 7e9807d..a38d9e4 100644
--- a/hw/timer/etraxfs_timer.c
+++ b/hw/timer/etraxfs_timer.c
@@ -42,8 +42,13 @@
 #define R_INTR        0x50
 #define R_MASKED_INTR 0x54
 
+#define TYPE_ETRAX_FS_TIMER "etraxfs,timer"
+#define ETRAX_TIMER(obj) \
+    OBJECT_CHECK(ETRAXTimerState, (obj), TYPE_ETRAX_FS_TIMER)
+
 typedef struct ETRAXTimerState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion mmio;
     qemu_irq irq;
     qemu_irq nmi;
@@ -311,7 +316,7 @@ static void etraxfs_timer_reset(void *opaque)
 
 static int etraxfs_timer_init(SysBusDevice *dev)
 {
-    ETRAXTimerState *t = FROM_SYSBUS(typeof (*t), dev);
+    ETRAXTimerState *t = ETRAX_TIMER(dev);
 
     t->bh_t0 = qemu_bh_new(timer0_hit, t);
     t->bh_t1 = qemu_bh_new(timer1_hit, t);
@@ -338,7 +343,7 @@ static void etraxfs_timer_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo etraxfs_timer_info = {
-    .name          = "etraxfs,timer",
+    .name          = TYPE_ETRAX_FS_TIMER,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(ETRAXTimerState),
     .class_init    = etraxfs_timer_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 07/20] exynos4210_mct: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (5 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 06/20] etraxfs_timer: QOM cast cleanup Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 08/20] exynos4210_pwm: " Andreas Färber
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel
  Cc: Maksim Kozlov, Igor Mitsyanko, Andreas Färber,
	Evgeny Voevodin, Dmitry Solodkiy

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/exynos4210_mct.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/hw/timer/exynos4210_mct.c b/hw/timer/exynos4210_mct.c
index 28ebe5d..a8009a4 100644
--- a/hw/timer/exynos4210_mct.c
+++ b/hw/timer/exynos4210_mct.c
@@ -240,8 +240,13 @@ typedef struct {
 
 } Exynos4210MCTLT;
 
+#define TYPE_EXYNOS4210_MCT "exynos4210.mct"
+#define EXYNOS4210_MCT(obj) \
+    OBJECT_CHECK(Exynos4210MCTState, (obj), TYPE_EXYNOS4210_MCT)
+
 typedef struct Exynos4210MCTState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
 
     /* Registers */
@@ -955,7 +960,7 @@ static void exynos4210_mct_update_freq(Exynos4210MCTState *s)
 /* set defaul_timer values for all fields */
 static void exynos4210_mct_reset(DeviceState *d)
 {
-    Exynos4210MCTState *s = (Exynos4210MCTState *)d;
+    Exynos4210MCTState *s = EXYNOS4210_MCT(d);
     uint32_t i;
 
     s->reg_mct_cfg = 0;
@@ -1424,7 +1429,7 @@ static const MemoryRegionOps exynos4210_mct_ops = {
 static int exynos4210_mct_init(SysBusDevice *dev)
 {
     int i;
-    Exynos4210MCTState *s = FROM_SYSBUS(Exynos4210MCTState, dev);
+    Exynos4210MCTState *s = EXYNOS4210_MCT(dev);
     QEMUBH *bh[2];
 
     /* Global timer */
@@ -1467,7 +1472,7 @@ static void exynos4210_mct_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo exynos4210_mct_info = {
-    .name          = "exynos4210.mct",
+    .name          = TYPE_EXYNOS4210_MCT,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(Exynos4210MCTState),
     .class_init    = exynos4210_mct_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 08/20] exynos4210_pwm: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (6 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 07/20] exynos4210_mct: " Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 09/20] exynos4210_rtc: " Andreas Färber
                   ` (11 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel
  Cc: Maksim Kozlov, Igor Mitsyanko, Andreas Färber,
	Evgeny Voevodin, Dmitry Solodkiy

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

diff --git a/hw/timer/exynos4210_pwm.c b/hw/timer/exynos4210_pwm.c
index 8fa0bb2..a52f0f6 100644
--- a/hw/timer/exynos4210_pwm.c
+++ b/hw/timer/exynos4210_pwm.c
@@ -97,9 +97,13 @@ typedef struct {
 
 } Exynos4210PWM;
 
+#define TYPE_EXYNOS4210_PWM "exynos4210.pwm"
+#define EXYNOS4210_PWM(obj) \
+    OBJECT_CHECK(Exynos4210PWMState, (obj), TYPE_EXYNOS4210_PWM)
 
 typedef struct Exynos4210PWMState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
 
     uint32_t    reg_tcfg[2];
@@ -352,7 +356,7 @@ static void exynos4210_pwm_write(void *opaque, hwaddr offset,
  */
 static void exynos4210_pwm_reset(DeviceState *d)
 {
-    Exynos4210PWMState *s = (Exynos4210PWMState *)d;
+    Exynos4210PWMState *s = EXYNOS4210_PWM(d);
     int i;
     s->reg_tcfg[0] = 0x0101;
     s->reg_tcfg[1] = 0x0;
@@ -378,7 +382,7 @@ static const MemoryRegionOps exynos4210_pwm_ops = {
  */
 static int exynos4210_pwm_init(SysBusDevice *dev)
 {
-    Exynos4210PWMState *s = FROM_SYSBUS(Exynos4210PWMState, dev);
+    Exynos4210PWMState *s = EXYNOS4210_PWM(dev);
     int i;
     QEMUBH *bh;
 
@@ -408,7 +412,7 @@ static void exynos4210_pwm_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo exynos4210_pwm_info = {
-    .name          = "exynos4210.pwm",
+    .name          = TYPE_EXYNOS4210_PWM,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(Exynos4210PWMState),
     .class_init    = exynos4210_pwm_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 09/20] exynos4210_rtc: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (7 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 08/20] exynos4210_pwm: " Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 10/20] grlib_gptimer: " Andreas Färber
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel
  Cc: Maksim Kozlov, Igor Mitsyanko, Andreas Färber,
	Evgeny Voevodin, Dmitry Solodkiy

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/exynos4210_rtc.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/hw/timer/exynos4210_rtc.c b/hw/timer/exynos4210_rtc.c
index 7fca071..3f2c8c5 100644
--- a/hw/timer/exynos4210_rtc.c
+++ b/hw/timer/exynos4210_rtc.c
@@ -79,8 +79,13 @@
 
 #define     RTC_BASE_FREQ       32768
 
+#define TYPE_EXYNOS4210_RTC "exynos4210.rtc"
+#define EXYNOS4210_RTC(obj) \
+    OBJECT_CHECK(Exynos4210RTCState, (obj), TYPE_EXYNOS4210_RTC)
+
 typedef struct Exynos4210RTCState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
 
     /* registers */
@@ -507,7 +512,7 @@ static void exynos4210_rtc_write(void *opaque, hwaddr offset,
  */
 static void exynos4210_rtc_reset(DeviceState *d)
 {
-    Exynos4210RTCState *s = (Exynos4210RTCState *)d;
+    Exynos4210RTCState *s = EXYNOS4210_RTC(d);
 
     qemu_get_timedate(&s->current_tm, 0);
 
@@ -544,7 +549,7 @@ static const MemoryRegionOps exynos4210_rtc_ops = {
  */
 static int exynos4210_rtc_init(SysBusDevice *dev)
 {
-    Exynos4210RTCState *s = FROM_SYSBUS(Exynos4210RTCState, dev);
+    Exynos4210RTCState *s = EXYNOS4210_RTC(dev);
     QEMUBH *bh;
 
     bh = qemu_bh_new(exynos4210_rtc_tick, s);
@@ -577,7 +582,7 @@ static void exynos4210_rtc_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo exynos4210_rtc_info = {
-    .name          = "exynos4210.rtc",
+    .name          = TYPE_EXYNOS4210_RTC,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(Exynos4210RTCState),
     .class_init    = exynos4210_rtc_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 10/20] grlib_gptimer: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (8 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 09/20] exynos4210_rtc: " Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 11/20] lm32_timer: " Andreas Färber
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber, Fabien Chouteau

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/grlib_gptimer.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/hw/timer/grlib_gptimer.c b/hw/timer/grlib_gptimer.c
index 37ba47d..7c1055a 100644
--- a/hw/timer/grlib_gptimer.c
+++ b/hw/timer/grlib_gptimer.c
@@ -50,6 +50,10 @@
 #define COUNTER_RELOAD_OFFSET 0x04
 #define TIMER_BASE            0x10
 
+#define TYPE_GRLIB_GPTIMER "grlib,gptimer"
+#define GRLIB_GPTIMER(obj) \
+    OBJECT_CHECK(GPTimerUnit, (obj), TYPE_GRLIB_GPTIMER)
+
 typedef struct GPTimer     GPTimer;
 typedef struct GPTimerUnit GPTimerUnit;
 
@@ -68,7 +72,8 @@ struct GPTimer {
 };
 
 struct GPTimerUnit {
-    SysBusDevice  busdev;
+    SysBusDevice  parent_obj;
+
     MemoryRegion iomem;
 
     uint32_t nr_timers;         /* Number of timers available */
@@ -314,7 +319,7 @@ static const MemoryRegionOps grlib_gptimer_ops = {
 
 static void grlib_gptimer_reset(DeviceState *d)
 {
-    GPTimerUnit *unit = container_of(d, GPTimerUnit, busdev.qdev);
+    GPTimerUnit *unit = GRLIB_GPTIMER(d);
     int          i    = 0;
 
     assert(unit != NULL);
@@ -343,7 +348,7 @@ static void grlib_gptimer_reset(DeviceState *d)
 
 static int grlib_gptimer_init(SysBusDevice *dev)
 {
-    GPTimerUnit  *unit = FROM_SYSBUS(typeof(*unit), dev);
+    GPTimerUnit  *unit = GRLIB_GPTIMER(dev);
     unsigned int  i;
 
     assert(unit->nr_timers > 0);
@@ -391,7 +396,7 @@ static void grlib_gptimer_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo grlib_gptimer_info = {
-    .name          = "grlib,gptimer",
+    .name          = TYPE_GRLIB_GPTIMER,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(GPTimerUnit),
     .class_init    = grlib_gptimer_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 11/20] lm32_timer: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (9 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 10/20] grlib_gptimer: " Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 12/20] m48t59: QOM cast cleanup for M48t59SysBusState Andreas Färber
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

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

diff --git a/hw/timer/lm32_timer.c b/hw/timer/lm32_timer.c
index 016dade..986e6a1 100644
--- a/hw/timer/lm32_timer.c
+++ b/hw/timer/lm32_timer.c
@@ -50,8 +50,12 @@ enum {
     CR_STOP  = (1 << 3),
 };
 
+#define TYPE_LM32_TIMER "lm32-timer"
+#define LM32_TIMER(obj) OBJECT_CHECK(LM32TimerState, (obj), TYPE_LM32_TIMER)
+
 struct LM32TimerState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
 
     QEMUBH *bh;
@@ -161,7 +165,7 @@ static void timer_hit(void *opaque)
 
 static void timer_reset(DeviceState *d)
 {
-    LM32TimerState *s = container_of(d, LM32TimerState, busdev.qdev);
+    LM32TimerState *s = LM32_TIMER(d);
     int i;
 
     for (i = 0; i < R_MAX; i++) {
@@ -172,7 +176,7 @@ static void timer_reset(DeviceState *d)
 
 static int lm32_timer_init(SysBusDevice *dev)
 {
-    LM32TimerState *s = FROM_SYSBUS(typeof(*s), dev);
+    LM32TimerState *s = LM32_TIMER(dev);
 
     sysbus_init_irq(dev, &s->irq);
 
@@ -217,7 +221,7 @@ static void lm32_timer_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo lm32_timer_info = {
-    .name          = "lm32-timer",
+    .name          = TYPE_LM32_TIMER,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(LM32TimerState),
     .class_init    = lm32_timer_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 12/20] m48t59: QOM cast cleanup for M48t59SysBusState
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (10 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 11/20] lm32_timer: " Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 13/20] milkymist-sysctl: QOM cast cleanup Andreas Färber
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/m48t59.c         | 16 ++++++++++------
 include/hw/timer/m48t59.h |  3 +++
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c
index be3490b..0cc9e5b 100644
--- a/hw/timer/m48t59.c
+++ b/hw/timer/m48t59.c
@@ -83,8 +83,12 @@ typedef struct M48t59ISAState {
     MemoryRegion io;
 } M48t59ISAState;
 
+#define SYSBUS_M48T59(obj) \
+    OBJECT_CHECK(M48t59SysBusState, (obj), TYPE_SYSBUS_M48T59)
+
 typedef struct M48t59SysBusState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     M48t59State state;
     MemoryRegion io;
 } M48t59SysBusState;
@@ -621,7 +625,7 @@ static void m48t59_reset_isa(DeviceState *d)
 
 static void m48t59_reset_sysbus(DeviceState *d)
 {
-    M48t59SysBusState *sys = container_of(d, M48t59SysBusState, busdev.qdev);
+    M48t59SysBusState *sys = SYSBUS_M48T59(d);
     M48t59State *NVRAM = &sys->state;
 
     m48t59_reset_common(NVRAM);
@@ -646,13 +650,13 @@ M48t59State *m48t59_init(qemu_irq IRQ, hwaddr mem_base,
     M48t59SysBusState *d;
     M48t59State *state;
 
-    dev = qdev_create(NULL, "m48t59");
+    dev = qdev_create(NULL, TYPE_SYSBUS_M48T59);
     qdev_prop_set_uint32(dev, "model", model);
     qdev_prop_set_uint32(dev, "size", size);
     qdev_prop_set_uint32(dev, "io_base", io_base);
     qdev_init_nofail(dev);
     s = SYS_BUS_DEVICE(dev);
-    d = FROM_SYSBUS(M48t59SysBusState, s);
+    d = SYSBUS_M48T59(dev);
     state = &d->state;
     sysbus_connect_irq(s, 0, IRQ);
     memory_region_init_io(&d->io, OBJECT(d), &m48t59_io_ops, state,
@@ -716,7 +720,7 @@ static void m48t59_isa_realize(DeviceState *dev, Error **errp)
 
 static int m48t59_init1(SysBusDevice *dev)
 {
-    M48t59SysBusState *d = FROM_SYSBUS(M48t59SysBusState, dev);
+    M48t59SysBusState *d = SYSBUS_M48T59(dev);
     M48t59State *s = &d->state;
     Error *err = NULL;
 
@@ -776,7 +780,7 @@ static void m48t59_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo m48t59_info = {
-    .name          = "m48t59",
+    .name          = TYPE_SYSBUS_M48T59,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(M48t59SysBusState),
     .class_init    = m48t59_class_init,
diff --git a/include/hw/timer/m48t59.h b/include/hw/timer/m48t59.h
index 59337fa..8217522 100644
--- a/include/hw/timer/m48t59.h
+++ b/include/hw/timer/m48t59.h
@@ -21,6 +21,9 @@ int PPC_NVRAM_set_params (nvram_t *nvram, uint16_t NVRAM_size,
                           uint32_t initrd_image, uint32_t initrd_size,
                           uint32_t NVRAM_image,
                           int width, int height, int depth);
+
+#define TYPE_SYSBUS_M48T59 "m48t59"
+
 typedef struct M48t59State M48t59State;
 
 void m48t59_write (void *private, uint32_t addr, uint32_t val);
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 13/20] milkymist-sysctl: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (11 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 12/20] m48t59: QOM cast cleanup for M48t59SysBusState Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 14/20] pl031: Rename pl031_state to PL031State Andreas Färber
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

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

diff --git a/hw/timer/milkymist-sysctl.c b/hw/timer/milkymist-sysctl.c
index 5009394..94246e5 100644
--- a/hw/timer/milkymist-sysctl.c
+++ b/hw/timer/milkymist-sysctl.c
@@ -57,8 +57,13 @@ enum {
     R_MAX
 };
 
+#define TYPE_MILKYMIST_SYSCTL "milkymist-sysctl"
+#define MILKYMIST_SYSCTL(obj) \
+    OBJECT_CHECK(MilkymistSysctlState, (obj), TYPE_MILKYMIST_SYSCTL)
+
 struct MilkymistSysctlState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion regs_region;
 
     QEMUBH *bh0;
@@ -246,8 +251,7 @@ static void timer1_hit(void *opaque)
 
 static void milkymist_sysctl_reset(DeviceState *d)
 {
-    MilkymistSysctlState *s =
-            container_of(d, MilkymistSysctlState, busdev.qdev);
+    MilkymistSysctlState *s = MILKYMIST_SYSCTL(d);
     int i;
 
     for (i = 0; i < R_MAX; i++) {
@@ -267,7 +271,7 @@ static void milkymist_sysctl_reset(DeviceState *d)
 
 static int milkymist_sysctl_init(SysBusDevice *dev)
 {
-    MilkymistSysctlState *s = FROM_SYSBUS(typeof(*s), dev);
+    MilkymistSysctlState *s = MILKYMIST_SYSCTL(dev);
 
     sysbus_init_irq(dev, &s->gpio_irq);
     sysbus_init_irq(dev, &s->timer0_irq);
@@ -324,7 +328,7 @@ static void milkymist_sysctl_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo milkymist_sysctl_info = {
-    .name          = "milkymist-sysctl",
+    .name          = TYPE_MILKYMIST_SYSCTL,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(MilkymistSysctlState),
     .class_init    = milkymist_sysctl_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 14/20] pl031: Rename pl031_state to PL031State
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (12 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 13/20] milkymist-sysctl: QOM cast cleanup Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 15/20] pl031: QOM cast cleanup Andreas Färber
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/pl031.c | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/hw/timer/pl031.c b/hw/timer/pl031.c
index 3ce6ed8..e705a69 100644
--- a/hw/timer/pl031.c
+++ b/hw/timer/pl031.c
@@ -33,7 +33,7 @@ do { printf("pl031: " fmt , ## __VA_ARGS__); } while (0)
 #define RTC_MIS     0x18    /* Masked interrupt status register */
 #define RTC_ICR     0x1c    /* Interrupt clear register */
 
-typedef struct {
+typedef struct PL031State {
     SysBusDevice busdev;
     MemoryRegion iomem;
     QEMUTimer *timer;
@@ -51,34 +51,34 @@ typedef struct {
     uint32_t cr;
     uint32_t im;
     uint32_t is;
-} pl031_state;
+} PL031State;
 
 static const unsigned char pl031_id[] = {
     0x31, 0x10, 0x14, 0x00,         /* Device ID        */
     0x0d, 0xf0, 0x05, 0xb1          /* Cell ID      */
 };
 
-static void pl031_update(pl031_state *s)
+static void pl031_update(PL031State *s)
 {
     qemu_set_irq(s->irq, s->is & s->im);
 }
 
 static void pl031_interrupt(void * opaque)
 {
-    pl031_state *s = (pl031_state *)opaque;
+    PL031State *s = (PL031State *)opaque;
 
     s->is = 1;
     DPRINTF("Alarm raised\n");
     pl031_update(s);
 }
 
-static uint32_t pl031_get_count(pl031_state *s)
+static uint32_t pl031_get_count(PL031State *s)
 {
     int64_t now = qemu_get_clock_ns(rtc_clock);
     return s->tick_offset + now / get_ticks_per_sec();
 }
 
-static void pl031_set_alarm(pl031_state *s)
+static void pl031_set_alarm(PL031State *s)
 {
     uint32_t ticks;
 
@@ -98,7 +98,7 @@ static void pl031_set_alarm(pl031_state *s)
 static uint64_t pl031_read(void *opaque, hwaddr offset,
                            unsigned size)
 {
-    pl031_state *s = (pl031_state *)opaque;
+    PL031State *s = (PL031State *)opaque;
 
     if (offset >= 0xfe0  &&  offset < 0x1000)
         return pl031_id[(offset - 0xfe0) >> 2];
@@ -136,7 +136,7 @@ static uint64_t pl031_read(void *opaque, hwaddr offset,
 static void pl031_write(void * opaque, hwaddr offset,
                         uint64_t value, unsigned size)
 {
-    pl031_state *s = (pl031_state *)opaque;
+    PL031State *s = (PL031State *)opaque;
 
 
     switch (offset) {
@@ -189,7 +189,7 @@ static const MemoryRegionOps pl031_ops = {
 
 static int pl031_init(SysBusDevice *dev)
 {
-    pl031_state *s = FROM_SYSBUS(pl031_state, dev);
+    PL031State *s = FROM_SYSBUS(PL031State, dev);
     struct tm tm;
 
     memory_region_init_io(&s->iomem, OBJECT(s), &pl031_ops, s, "pl031", 0x1000);
@@ -205,7 +205,7 @@ static int pl031_init(SysBusDevice *dev)
 
 static void pl031_pre_save(void *opaque)
 {
-    pl031_state *s = opaque;
+    PL031State *s = opaque;
 
     /* tick_offset is base_time - rtc_clock base time.  Instead, we want to
      * store the base time relative to the vm_clock for backwards-compatibility.  */
@@ -215,7 +215,7 @@ static void pl031_pre_save(void *opaque)
 
 static int pl031_post_load(void *opaque, int version_id)
 {
-    pl031_state *s = opaque;
+    PL031State *s = opaque;
 
     int64_t delta = qemu_get_clock_ns(rtc_clock) - qemu_get_clock_ns(vm_clock);
     s->tick_offset = s->tick_offset_vmstate - delta / get_ticks_per_sec();
@@ -230,12 +230,12 @@ static const VMStateDescription vmstate_pl031 = {
     .pre_save = pl031_pre_save,
     .post_load = pl031_post_load,
     .fields = (VMStateField[]) {
-        VMSTATE_UINT32(tick_offset_vmstate, pl031_state),
-        VMSTATE_UINT32(mr, pl031_state),
-        VMSTATE_UINT32(lr, pl031_state),
-        VMSTATE_UINT32(cr, pl031_state),
-        VMSTATE_UINT32(im, pl031_state),
-        VMSTATE_UINT32(is, pl031_state),
+        VMSTATE_UINT32(tick_offset_vmstate, PL031State),
+        VMSTATE_UINT32(mr, PL031State),
+        VMSTATE_UINT32(lr, PL031State),
+        VMSTATE_UINT32(cr, PL031State),
+        VMSTATE_UINT32(im, PL031State),
+        VMSTATE_UINT32(is, PL031State),
         VMSTATE_END_OF_LIST()
     }
 };
@@ -253,7 +253,7 @@ static void pl031_class_init(ObjectClass *klass, void *data)
 static const TypeInfo pl031_info = {
     .name          = "pl031",
     .parent        = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof(pl031_state),
+    .instance_size = sizeof(PL031State),
     .class_init    = pl031_class_init,
 };
 
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 15/20] pl031: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (13 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 14/20] pl031: Rename pl031_state to PL031State Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 16/20] puv3_ost: " Andreas Färber
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/pl031.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/hw/timer/pl031.c b/hw/timer/pl031.c
index e705a69..d5e2f3e 100644
--- a/hw/timer/pl031.c
+++ b/hw/timer/pl031.c
@@ -33,8 +33,12 @@ do { printf("pl031: " fmt , ## __VA_ARGS__); } while (0)
 #define RTC_MIS     0x18    /* Masked interrupt status register */
 #define RTC_ICR     0x1c    /* Interrupt clear register */
 
+#define TYPE_PL031 "pl031"
+#define PL031(obj) OBJECT_CHECK(PL031State, (obj), TYPE_PL031)
+
 typedef struct PL031State {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     QEMUTimer *timer;
     qemu_irq irq;
@@ -189,7 +193,7 @@ static const MemoryRegionOps pl031_ops = {
 
 static int pl031_init(SysBusDevice *dev)
 {
-    PL031State *s = FROM_SYSBUS(PL031State, dev);
+    PL031State *s = PL031(dev);
     struct tm tm;
 
     memory_region_init_io(&s->iomem, OBJECT(s), &pl031_ops, s, "pl031", 0x1000);
@@ -251,7 +255,7 @@ static void pl031_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo pl031_info = {
-    .name          = "pl031",
+    .name          = TYPE_PL031,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(PL031State),
     .class_init    = pl031_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 16/20] puv3_ost: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (14 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 15/20] pl031: QOM cast cleanup Andreas Färber
@ 2013-07-27 13:36 ` Andreas Färber
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: " Andreas Färber
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: Guan Xuetao, Andreas Färber

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

diff --git a/hw/timer/puv3_ost.c b/hw/timer/puv3_ost.c
index 63f2c9f..4bd2b76 100644
--- a/hw/timer/puv3_ost.c
+++ b/hw/timer/puv3_ost.c
@@ -14,9 +14,13 @@
 #undef DEBUG_PUV3
 #include "hw/unicore32/puv3.h"
 
+#define TYPE_PUV3_OST "puv3_ost"
+#define PUV3_OST(obj) OBJECT_CHECK(PUV3OSTState, (obj), TYPE_PUV3_OST)
+
 /* puv3 ostimer implementation. */
-typedef struct {
-    SysBusDevice busdev;
+typedef struct PUV3OSTState {
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     QEMUBH *bh;
     qemu_irq irq;
@@ -109,7 +113,7 @@ static void puv3_ost_tick(void *opaque)
 
 static int puv3_ost_init(SysBusDevice *dev)
 {
-    PUV3OSTState *s = FROM_SYSBUS(PUV3OSTState, dev);
+    PUV3OSTState *s = PUV3_OST(dev);
 
     s->reg_OIER = 0;
     s->reg_OSSR = 0;
@@ -137,7 +141,7 @@ static void puv3_ost_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo puv3_ost_info = {
-    .name = "puv3_ost",
+    .name = TYPE_PUV3_OST,
     .parent = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(PUV3OSTState),
     .class_init = puv3_ost_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (15 preceding siblings ...)
  2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 16/20] puv3_ost: " Andreas Färber
@ 2013-07-27 13:37 ` Andreas Färber
  2013-07-29  3:50   ` Andreas Färber
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 18/20] slavio_timer: " Andreas Färber
                   ` (2 subsequent siblings)
  19 siblings, 1 reply; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/pxa2xx_timer.c | 38 +++++++++++++++++++++++++++-----------
 1 file changed, 27 insertions(+), 11 deletions(-)

diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
index 4d28719..ff63fa6 100644
--- a/hw/timer/pxa2xx_timer.c
+++ b/hw/timer/pxa2xx_timer.c
@@ -60,6 +60,10 @@ static int pxa2xx_timer4_freq[8] = {
     [5 ... 7] = 0,
 };
 
+#define TYPE_PXA2XX_TIMER "pxa2xx-timer"
+#define PXA2XX_TIMER(obj) \
+    OBJECT_CHECK(PXA2xxTimerInfo, (obj), TYPE_PXA2XX_TIMER)
+
 typedef struct PXA2xxTimerInfo PXA2xxTimerInfo;
 
 typedef struct {
@@ -80,7 +84,8 @@ typedef struct {
 } PXA2xxTimer4;
 
 struct PXA2xxTimerInfo {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem;
     uint32_t flags;
 
@@ -429,10 +434,9 @@ static int pxa25x_timer_post_load(void *opaque, int version_id)
 
 static int pxa2xx_timer_init(SysBusDevice *dev)
 {
+    PXA2xxTimerInfo *s = PXA2XX_TIMER(dev);
     int i;
-    PXA2xxTimerInfo *s;
 
-    s = FROM_SYSBUS(PXA2xxTimerInfo, dev);
     s->irq_enabled = 0;
     s->oldclock = 0;
     s->clock = 0;
@@ -527,18 +531,15 @@ static const VMStateDescription vmstate_pxa2xx_timer_regs = {
 static Property pxa25x_timer_dev_properties[] = {
     DEFINE_PROP_UINT32("freq", PXA2xxTimerInfo, freq, PXA25X_FREQ),
     DEFINE_PROP_BIT("tm4", PXA2xxTimerInfo, flags,
-    PXA2XX_TIMER_HAVE_TM4, false),
+                    PXA2XX_TIMER_HAVE_TM4, false),
     DEFINE_PROP_END_OF_LIST(),
 };
 
 static void pxa25x_timer_dev_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
 
-    k->init = pxa2xx_timer_init;
     dc->desc = "PXA25x timer";
-    dc->vmsd = &vmstate_pxa2xx_timer_regs;
     dc->props = pxa25x_timer_dev_properties;
 }
 
@@ -552,18 +553,15 @@ static const TypeInfo pxa25x_timer_dev_info = {
 static Property pxa27x_timer_dev_properties[] = {
     DEFINE_PROP_UINT32("freq", PXA2xxTimerInfo, freq, PXA27X_FREQ),
     DEFINE_PROP_BIT("tm4", PXA2xxTimerInfo, flags,
-    PXA2XX_TIMER_HAVE_TM4, true),
+                    PXA2XX_TIMER_HAVE_TM4, true),
     DEFINE_PROP_END_OF_LIST(),
 };
 
 static void pxa27x_timer_dev_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
-    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
 
-    k->init = pxa2xx_timer_init;
     dc->desc = "PXA27x timer";
-    dc->vmsd = &vmstate_pxa2xx_timer_regs;
     dc->props = pxa27x_timer_dev_properties;
 }
 
@@ -574,8 +572,26 @@ static const TypeInfo pxa27x_timer_dev_info = {
     .class_init    = pxa27x_timer_dev_class_init,
 };
 
+static void pxa2xx_timer_class_init(ObjectClass *oc, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(oc);
+    SysBusDeviceClass *sdc = SYS_BUS_DEVICE_CLASS(oc);
+
+    sdc->init = pxa2xx_timer_init;
+    dc->vmsd = &vmstate_pxa2xx_timer_regs;
+}
+
+static const TypeInfo pxa2xx_timer_type_info = {
+    .name          = TYPE_PXA2XX_TIMER,
+    .parent        = TYPE_SYS_BUS_DEVICE,
+    .instance_size = sizeof(PXA2xxTimerInfo),
+    .abstract      = true,
+    .class_init    = pxa2xx_timer_class_init,
+};
+
 static void pxa2xx_timer_register_types(void)
 {
+    type_register_static(&pxa2xx_timer_type_info);
     type_register_static(&pxa25x_timer_dev_info);
     type_register_static(&pxa27x_timer_dev_info);
 }
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 18/20] slavio_timer: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (16 preceding siblings ...)
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: " Andreas Färber
@ 2013-07-27 13:37 ` Andreas Färber
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 19/20] tusb6010: " Andreas Färber
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 20/20] xilinx_timer: " Andreas Färber
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/slavio_timer.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/hw/timer/slavio_timer.c b/hw/timer/slavio_timer.c
index 7f844d7..33e8f6c 100644
--- a/hw/timer/slavio_timer.c
+++ b/hw/timer/slavio_timer.c
@@ -54,8 +54,13 @@ typedef struct CPUTimerState {
     uint64_t limit;
 } CPUTimerState;
 
+#define TYPE_SLAVIO_TIMER "slavio_timer"
+#define SLAVIO_TIMER(obj) \
+    OBJECT_CHECK(SLAVIO_TIMERState, (obj), TYPE_SLAVIO_TIMER)
+
 typedef struct SLAVIO_TIMERState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     uint32_t num_cpus;
     uint32_t cputimer_mode;
     CPUTimerState cputimer[MAX_CPUS + 1];
@@ -354,7 +359,7 @@ static const VMStateDescription vmstate_slavio_timer = {
 
 static void slavio_timer_reset(DeviceState *d)
 {
-    SLAVIO_TIMERState *s = container_of(d, SLAVIO_TIMERState, busdev.qdev);
+    SLAVIO_TIMERState *s = SLAVIO_TIMER(d);
     unsigned int i;
     CPUTimerState *curr_timer;
 
@@ -375,7 +380,7 @@ static void slavio_timer_reset(DeviceState *d)
 
 static int slavio_timer_init1(SysBusDevice *dev)
 {
-    SLAVIO_TIMERState *s = FROM_SYSBUS(SLAVIO_TIMERState, dev);
+    SLAVIO_TIMERState *s = SLAVIO_TIMER(dev);
     QEMUBH *bh;
     unsigned int i;
     TimerContext *tc;
@@ -421,7 +426,7 @@ static void slavio_timer_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo slavio_timer_info = {
-    .name          = "slavio_timer",
+    .name          = TYPE_SLAVIO_TIMER,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(SLAVIO_TIMERState),
     .class_init    = slavio_timer_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 19/20] tusb6010: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (17 preceding siblings ...)
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 18/20] slavio_timer: " Andreas Färber
@ 2013-07-27 13:37 ` Andreas Färber
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 20/20] xilinx_timer: " Andreas Färber
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/tusb6010.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/hw/timer/tusb6010.c b/hw/timer/tusb6010.c
index 47b6809..c48ecf8 100644
--- a/hw/timer/tusb6010.c
+++ b/hw/timer/tusb6010.c
@@ -26,8 +26,12 @@
 #include "hw/devices.h"
 #include "hw/sysbus.h"
 
+#define TYPE_TUSB6010 "tusb6010"
+#define TUSB(obj) OBJECT_CHECK(TUSBState, (obj), TYPE_TUSB6010)
+
 typedef struct TUSBState {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion iomem[2];
     qemu_irq irq;
     MUSBState *musb;
@@ -740,7 +744,7 @@ static void tusb6010_irq(void *opaque, int source, int level)
 
 static void tusb6010_reset(DeviceState *dev)
 {
-    TUSBState *s = FROM_SYSBUS(TUSBState, SYS_BUS_DEVICE(dev));
+    TUSBState *s = TUSB(dev);
     int i;
 
     s->test_reset = TUSB_PROD_TEST_RESET_VAL;
@@ -774,18 +778,20 @@ static void tusb6010_reset(DeviceState *dev)
     musb_reset(s->musb);
 }
 
-static int tusb6010_init(SysBusDevice *dev)
+static int tusb6010_init(SysBusDevice *sbd)
 {
-    TUSBState *s = FROM_SYSBUS(TUSBState, dev);
+    DeviceState *dev = DEVICE(sbd);
+    TUSBState *s = TUSB(dev);
+
     s->otg_timer = qemu_new_timer_ns(vm_clock, tusb_otg_tick, s);
     s->pwr_timer = qemu_new_timer_ns(vm_clock, tusb_power_tick, s);
     memory_region_init_io(&s->iomem[1], OBJECT(s), &tusb_async_ops, s,
                           "tusb-async", UINT32_MAX);
-    sysbus_init_mmio(dev, &s->iomem[0]);
-    sysbus_init_mmio(dev, &s->iomem[1]);
-    sysbus_init_irq(dev, &s->irq);
-    qdev_init_gpio_in(&dev->qdev, tusb6010_irq, musb_irq_max + 1);
-    s->musb = musb_init(&dev->qdev, 1);
+    sysbus_init_mmio(sbd, &s->iomem[0]);
+    sysbus_init_mmio(sbd, &s->iomem[1]);
+    sysbus_init_irq(sbd, &s->irq);
+    qdev_init_gpio_in(dev, tusb6010_irq, musb_irq_max + 1);
+    s->musb = musb_init(dev, 1);
     return 0;
 }
 
@@ -799,7 +805,7 @@ static void tusb6010_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo tusb6010_info = {
-    .name          = "tusb6010",
+    .name          = TYPE_TUSB6010,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(TUSBState),
     .class_init    = tusb6010_class_init,
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH qom-next for-1.6 20/20] xilinx_timer: QOM cast cleanup
  2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
                   ` (18 preceding siblings ...)
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 19/20] tusb6010: " Andreas Färber
@ 2013-07-27 13:37 ` Andreas Färber
  19 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-27 13:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Crosthwaite, Edgar E. Iglesias, Andreas Färber

Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/timer/xilinx_timer.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/hw/timer/xilinx_timer.c b/hw/timer/xilinx_timer.c
index ee53834..5f2c902 100644
--- a/hw/timer/xilinx_timer.c
+++ b/hw/timer/xilinx_timer.c
@@ -57,9 +57,14 @@ struct xlx_timer
     uint32_t regs[R_MAX];
 };
 
+#define TYPE_XILINX_TIMER "xlnx.xps-timer"
+#define XILINX_TIMER(obj) \
+    OBJECT_CHECK(struct timerblock, (obj), TYPE_XILINX_TIMER)
+
 struct timerblock
 {
-    SysBusDevice busdev;
+    SysBusDevice parent_obj;
+
     MemoryRegion mmio;
     qemu_irq irq;
     uint8_t one_timer_only;
@@ -200,7 +205,7 @@ static void timer_hit(void *opaque)
 
 static int xilinx_timer_init(SysBusDevice *dev)
 {
-    struct timerblock *t = FROM_SYSBUS(typeof (*t), dev);
+    struct timerblock *t = XILINX_TIMER(dev);
     unsigned int i;
 
     /* All timers share a single irq line.  */
@@ -241,7 +246,7 @@ static void xilinx_timer_class_init(ObjectClass *klass, void *data)
 }
 
 static const TypeInfo xilinx_timer_info = {
-    .name          = "xlnx.xps-timer",
+    .name          = TYPE_XILINX_TIMER,
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(struct timerblock),
     .class_init    = xilinx_timer_class_init,
-- 
1.8.1.4

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

* Re: [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: QOM cast cleanup
  2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: " Andreas Färber
@ 2013-07-29  3:50   ` Andreas Färber
  0 siblings, 0 replies; 22+ messages in thread
From: Andreas Färber @ 2013-07-29  3:50 UTC (permalink / raw)
  To: qemu-devel

Am 27.07.2013 15:37, schrieb Andreas Färber:
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  hw/timer/pxa2xx_timer.c | 38 +++++++++++++++++++++++++++-----------
>  1 file changed, 27 insertions(+), 11 deletions(-)
> 
> diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
> index 4d28719..ff63fa6 100644
> --- a/hw/timer/pxa2xx_timer.c
> +++ b/hw/timer/pxa2xx_timer.c
> @@ -60,6 +60,10 @@ static int pxa2xx_timer4_freq[8] = {
>      [5 ... 7] = 0,
>  };
>  
> +#define TYPE_PXA2XX_TIMER "pxa2xx-timer"
> +#define PXA2XX_TIMER(obj) \
> +    OBJECT_CHECK(PXA2xxTimerInfo, (obj), TYPE_PXA2XX_TIMER)
> +
>  typedef struct PXA2xxTimerInfo PXA2xxTimerInfo;
>  
>  typedef struct {
> @@ -80,7 +84,8 @@ typedef struct {
>  } PXA2xxTimer4;
>  
>  struct PXA2xxTimerInfo {
> -    SysBusDevice busdev;
> +    SysBusDevice parent_obj;
> +
>      MemoryRegion iomem;
>      uint32_t flags;
>  
> @@ -429,10 +434,9 @@ static int pxa25x_timer_post_load(void *opaque, int version_id)
>  
>  static int pxa2xx_timer_init(SysBusDevice *dev)
>  {
> +    PXA2xxTimerInfo *s = PXA2XX_TIMER(dev);
>      int i;
> -    PXA2xxTimerInfo *s;
>  
> -    s = FROM_SYSBUS(PXA2xxTimerInfo, dev);
>      s->irq_enabled = 0;
>      s->oldclock = 0;
>      s->clock = 0;
> @@ -527,18 +531,15 @@ static const VMStateDescription vmstate_pxa2xx_timer_regs = {
>  static Property pxa25x_timer_dev_properties[] = {
>      DEFINE_PROP_UINT32("freq", PXA2xxTimerInfo, freq, PXA25X_FREQ),
>      DEFINE_PROP_BIT("tm4", PXA2xxTimerInfo, flags,
> -    PXA2XX_TIMER_HAVE_TM4, false),
> +                    PXA2XX_TIMER_HAVE_TM4, false),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
>  static void pxa25x_timer_dev_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> -    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
>  
> -    k->init = pxa2xx_timer_init;
>      dc->desc = "PXA25x timer";
> -    dc->vmsd = &vmstate_pxa2xx_timer_regs;
>      dc->props = pxa25x_timer_dev_properties;
>  }
>  
> @@ -552,18 +553,15 @@ static const TypeInfo pxa25x_timer_dev_info = {
>  static Property pxa27x_timer_dev_properties[] = {
>      DEFINE_PROP_UINT32("freq", PXA2xxTimerInfo, freq, PXA27X_FREQ),
>      DEFINE_PROP_BIT("tm4", PXA2xxTimerInfo, flags,
> -    PXA2XX_TIMER_HAVE_TM4, true),
> +                    PXA2XX_TIMER_HAVE_TM4, true),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
>  static void pxa27x_timer_dev_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> -    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
>  
> -    k->init = pxa2xx_timer_init;
>      dc->desc = "PXA27x timer";
> -    dc->vmsd = &vmstate_pxa2xx_timer_regs;
>      dc->props = pxa27x_timer_dev_properties;
>  }
>  
> @@ -574,8 +572,26 @@ static const TypeInfo pxa27x_timer_dev_info = {
>      .class_init    = pxa27x_timer_dev_class_init,
>  };
>  
> +static void pxa2xx_timer_class_init(ObjectClass *oc, void *data)
> +{
> +    DeviceClass *dc = DEVICE_CLASS(oc);
> +    SysBusDeviceClass *sdc = SYS_BUS_DEVICE_CLASS(oc);
> +
> +    sdc->init = pxa2xx_timer_init;
> +    dc->vmsd = &vmstate_pxa2xx_timer_regs;
> +}
> +
> +static const TypeInfo pxa2xx_timer_type_info = {
> +    .name          = TYPE_PXA2XX_TIMER,
> +    .parent        = TYPE_SYS_BUS_DEVICE,
> +    .instance_size = sizeof(PXA2xxTimerInfo),
> +    .abstract      = true,
> +    .class_init    = pxa2xx_timer_class_init,
> +};
> +
>  static void pxa2xx_timer_register_types(void)
>  {
> +    type_register_static(&pxa2xx_timer_type_info);
>      type_register_static(&pxa25x_timer_dev_info);
>      type_register_static(&pxa27x_timer_dev_info);
>  }

Needs the following addition (and subject fix), found by qtests:

diff --git a/hw/timer/pxa2xx_timer.c b/hw/timer/pxa2xx_timer.c
index ff63fa6..cdabccd 100644
--- a/hw/timer/pxa2xx_timer.c
+++ b/hw/timer/pxa2xx_timer.c
@@ -545,7 +545,7 @@ static void pxa25x_timer_dev_class_init(ObjectClass
*klass, void *data)

 static const TypeInfo pxa25x_timer_dev_info = {
     .name          = "pxa25x-timer",
-    .parent        = TYPE_SYS_BUS_DEVICE,
+    .parent        = TYPE_PXA2XX_TIMER,
     .instance_size = sizeof(PXA2xxTimerInfo),
     .class_init    = pxa25x_timer_dev_class_init,
 };
@@ -567,7 +567,7 @@ static void pxa27x_timer_dev_class_init(ObjectClass
*klass, void *data)

 static const TypeInfo pxa27x_timer_dev_info = {
     .name          = "pxa27x-timer",
-    .parent        = TYPE_SYS_BUS_DEVICE,
+    .parent        = TYPE_PXA2XX_TIMER,
     .instance_size = sizeof(PXA2xxTimerInfo),
     .class_init    = pxa27x_timer_dev_class_init,

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

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

end of thread, other threads:[~2013-07-29  3:50 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-27 13:36 [Qemu-devel] [PATCH qom-next for-1.6 00/20] timer: QOM cast cleanups Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 01/20] arm_timer: Rename sp804_state to SP804State Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 02/20] arm_timer: QOM cast cleanup for SP804State Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 03/20] arm_timer: QOM cast cleanup for icp_pit_state Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 04/20] cadence_ttc: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 05/20] etraxfs_timer: Rename etrax_timer to ETRAXTimerState Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 06/20] etraxfs_timer: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 07/20] exynos4210_mct: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 08/20] exynos4210_pwm: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 09/20] exynos4210_rtc: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 10/20] grlib_gptimer: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 11/20] lm32_timer: " Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 12/20] m48t59: QOM cast cleanup for M48t59SysBusState Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 13/20] milkymist-sysctl: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 14/20] pl031: Rename pl031_state to PL031State Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 15/20] pl031: QOM cast cleanup Andreas Färber
2013-07-27 13:36 ` [Qemu-devel] [PATCH qom-next for-1.6 16/20] puv3_ost: " Andreas Färber
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 17/20] pxa2xx_timer: " Andreas Färber
2013-07-29  3:50   ` Andreas Färber
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 18/20] slavio_timer: " Andreas Färber
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 19/20] tusb6010: " Andreas Färber
2013-07-27 13:37 ` [Qemu-devel] [PATCH qom-next for-1.6 20/20] xilinx_timer: " 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).