Re: [Qemu-devel] [PATCH qom-next for-1.6] onenand: QOM'ify

2013-07-26 Thread Hu Tao
On Wed, Jul 24, 2013 at 10:46:31AM +0200, Andreas Färber wrote:
 Signed-off-by: Andreas Färber afaer...@suse.de
 ---
  hw/block/onenand.c | 30 --
  1 file changed, 20 insertions(+), 10 deletions(-)

Reviewed-by: Hu Tao hu...@cn.fujitsu.com



Re: [Qemu-devel] [PATCH qom-next for-1.6] onenand: QOM'ify

2013-07-26 Thread Andreas Färber
Am 26.07.2013 10:54, schrieb Hu Tao:
 On Wed, Jul 24, 2013 at 10:46:31AM +0200, Andreas Färber wrote:
 Signed-off-by: Andreas Färber afaer...@suse.de
 ---
  hw/block/onenand.c | 30 --
  1 file changed, 20 insertions(+), 10 deletions(-)
 
 Reviewed-by: Hu Tao hu...@cn.fujitsu.com

Thanks, applied to qom-next:
https://github.com/afaerber/qemu-cpu/commits/qom-next

Andreas

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



[Qemu-devel] [PATCH qom-next for-1.6] onenand: QOM'ify

2013-07-24 Thread Andreas Färber
Signed-off-by: Andreas Färber afaer...@suse.de
---
 hw/block/onenand.c | 30 --
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/hw/block/onenand.c b/hw/block/onenand.c
index 2776f64..aae9ee7 100644
--- a/hw/block/onenand.c
+++ b/hw/block/onenand.c
@@ -34,8 +34,12 @@
 /* Fixed */
 #define BLOCK_SHIFT(PAGE_SHIFT + 6)
 
-typedef struct {
-SysBusDevice busdev;
+#define TYPE_ONE_NAND onenand
+#define ONE_NAND(obj) OBJECT_CHECK(OneNANDState, (obj), TYPE_ONE_NAND)
+
+typedef struct OneNANDState {
+SysBusDevice parent_obj;
+
 struct {
 uint16_t man;
 uint16_t dev;
@@ -226,7 +230,9 @@ static void onenand_reset(OneNANDState *s, int cold)
 
 static void onenand_system_reset(DeviceState *dev)
 {
-onenand_reset(FROM_SYSBUS(OneNANDState, SYS_BUS_DEVICE(dev)), 1);
+OneNANDState *s = ONE_NAND(dev);
+
+onenand_reset(s, 1);
 }
 
 static inline int onenand_load_main(OneNANDState *s, int sec, int secn,
@@ -757,11 +763,13 @@ static const MemoryRegionOps onenand_ops = {
 .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
-static int onenand_initfn(SysBusDevice *dev)
+static int onenand_initfn(SysBusDevice *sbd)
 {
-OneNANDState *s = (OneNANDState *)dev;
+DeviceState *dev = DEVICE(sbd);
+OneNANDState *s = ONE_NAND(dev);
 uint32_t size = 1  (24 + ((s-id.dev  4)  7));
 void *ram;
+
 s-base = (hwaddr)-1;
 s-rdy = NULL;
 s-blocks = size  BLOCK_SHIFT;
@@ -794,9 +802,9 @@ static int onenand_initfn(SysBusDevice *dev)
 s-data[1][0] = ram + ((0x0200 + (1  (PAGE_SHIFT - 1)))  s-shift);
 s-data[1][1] = ram + ((0x8010 + (1  (PAGE_SHIFT - 6)))  s-shift);
 onenand_mem_setup(s);
-sysbus_init_irq(dev, s-intr);
-sysbus_init_mmio(dev, s-container);
-vmstate_register(dev-qdev,
+sysbus_init_irq(sbd, s-intr);
+sysbus_init_mmio(sbd, s-container);
+vmstate_register(dev,
  ((s-shift  0x7f)  24)
  | ((s-id.man  0xff)  16)
  | ((s-id.dev  0xff)  8)
@@ -825,7 +833,7 @@ static void onenand_class_init(ObjectClass *klass, void 
*data)
 }
 
 static const TypeInfo onenand_info = {
-.name  = onenand,
+.name  = TYPE_ONE_NAND,
 .parent= TYPE_SYS_BUS_DEVICE,
 .instance_size = sizeof(OneNANDState),
 .class_init= onenand_class_init,
@@ -838,7 +846,9 @@ static void onenand_register_types(void)
 
 void *onenand_raw_otp(DeviceState *onenand_device)
 {
-return FROM_SYSBUS(OneNANDState, SYS_BUS_DEVICE(onenand_device))-otp;
+OneNANDState *s = ONE_NAND(onenand_device);
+
+return s-otp;
 }
 
 type_init(onenand_register_types)
-- 
1.8.1.4