> Subject: Re: [Qemu-devel] [PATCH v7 24/28] ide: add bootindex to qom property
> 
> On Fri, Sep 05, 2014 at 04:37:32PM +0800, arei.gong...@huawei.com wrote:
> > From: Gonglei <arei.gong...@huawei.com>
> >
> > Add a qom property with the same name 'bootindex',
> > when we remove it form qdev property, things will
> > continue to work just fine, and we can use qom features
> > which are not supported by qdev property.
> >
> > Signed-off-by: Gonglei <arei.gong...@huawei.com>
> > ---
> >  hw/ide/qdev.c | 14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> >
> > diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
> > index efab95b..9e2ed40 100644
> > --- a/hw/ide/qdev.c
> > +++ b/hw/ide/qdev.c
> > @@ -191,6 +191,17 @@ static int ide_dev_initfn(IDEDevice *dev,
> IDEDriveKind kind)
> >      return 0;
> >  }
> >
> > +static void ide_dev_instance_init(Object *obj)
> > +{
> > +    DeviceState *dev = DEVICE(obj);
> > +    IDEDevice *d = DO_UPCAST(IDEDevice, qdev, dev);
> > +
> > +    device_add_bootindex_property(obj, &d->conf.bootindex,
> > +                                  "bootindex",
> > +                                  d->unit ? "/disk@1" : "/disk@0",
> > +                                  &d->qdev, NULL);
> > +}
> > +
> >  static int ide_hd_initfn(IDEDevice *dev)
> >  {
> >      return ide_dev_initfn(dev, IDE_HD);
> > @@ -238,6 +249,7 @@ static const TypeInfo ide_hd_info = {
> >      .parent        = TYPE_IDE_DEVICE,
> >      .instance_size = sizeof(IDEDrive),
> >      .class_init    = ide_hd_class_init,
> > +    .instance_init = ide_dev_instance_init,
> >  };
> >
> >  static Property ide_cd_properties[] = {
> > @@ -260,6 +272,7 @@ static const TypeInfo ide_cd_info = {
> >      .parent        = TYPE_IDE_DEVICE,
> >      .instance_size = sizeof(IDEDrive),
> >      .class_init    = ide_cd_class_init,
> > +    .instance_init = ide_dev_instance_init,
> >  };
> >
> >  static Property ide_drive_properties[] = {
> > @@ -282,6 +295,7 @@ static const TypeInfo ide_drive_info = {
> >      .parent        = TYPE_IDE_DEVICE,
> >      .instance_size = sizeof(IDEDrive),
> >      .class_init    = ide_drive_class_init,
> > +    .instance_init = ide_dev_instance_init,
> >  };
> 
> If all TYPE_IDE_DEVICE subclasses have the same instance_init, why not
> just set ide_device_type_info.instance_init = ide_dev_instance_init?
> 
OK. TBH I have not noticed this way, sorry. 

Great thanks for your help and reviewing, Eduardo. :)

Best regards,
-Gonglei


Reply via email to