Re: [PATCH v3 09/14] hw/net/tulip: Finish QOM conversion

2023-03-05 Thread Jason Wang
On Tue, Feb 28, 2023 at 9:39 PM Philippe Mathieu-Daudé
 wrote:
>
> Hi Jason, do you Ack this patch?

Yes.

Acked-by: Jason Wang 

Thanks

>
> On 13/2/23 19:43, Philippe Mathieu-Daudé wrote:
> > Use the TULIP() and DEVICE() QOM type-checking macros.
> > Remove uses of DO_UPCAST().
> >
> > Signed-off-by: Philippe Mathieu-Daudé 
> > ---
> >   hw/net/tulip.c | 20 +++-
> >   1 file changed, 11 insertions(+), 9 deletions(-)
> >
> > diff --git a/hw/net/tulip.c b/hw/net/tulip.c
> > index 915e5fb595..990507859d 100644
> > --- a/hw/net/tulip.c
> > +++ b/hw/net/tulip.c
> > @@ -19,7 +19,10 @@
> >   #include "net/eth.h"
> >
> >   struct TULIPState {
> > +/*< private >*/
> >   PCIDevice dev;
> > +/*< public >*/
> > +
> >   MemoryRegion io;
> >   MemoryRegion memory;
> >   NICConf c;
> > @@ -959,7 +962,7 @@ static void tulip_fill_eeprom(TULIPState *s)
> >
> >   static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
> >   {
> > -TULIPState *s = DO_UPCAST(TULIPState, dev, pci_dev);
> > +TULIPState *s = TULIP(pci_dev);
> >   uint8_t *pci_conf;
> >
> >   pci_conf = s->dev.config;
> > @@ -967,7 +970,7 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error 
> > **errp)
> >
> >   qemu_macaddr_default_if_unset(>c.macaddr);
> >
> > -s->eeprom = eeprom93xx_new(_dev->qdev, 64);
> > +s->eeprom = eeprom93xx_new(DEVICE(pci_dev), 64);
> >   tulip_fill_eeprom(s);
> >
> >   memory_region_init_io(>io, OBJECT(>dev), _ops, s,
> > @@ -983,27 +986,26 @@ static void pci_tulip_realize(PCIDevice *pci_dev, 
> > Error **errp)
> >
> >   s->nic = qemu_new_nic(_tulip_info, >c,
> > object_get_typename(OBJECT(pci_dev)),
> > -  pci_dev->qdev.id, s);
> > +  DEVICE(pci_dev)->id, s);
> >   qemu_format_nic_info_str(qemu_get_queue(s->nic), s->c.macaddr.a);
> >   }
> >
> >   static void pci_tulip_exit(PCIDevice *pci_dev)
> >   {
> > -TULIPState *s = DO_UPCAST(TULIPState, dev, pci_dev);
> > +TULIPState *s = TULIP(pci_dev);
> >
> >   qemu_del_nic(s->nic);
> >   qemu_free_irq(s->irq);
> > -eeprom93xx_free(_dev->qdev, s->eeprom);
> > +eeprom93xx_free(DEVICE(s), s->eeprom);
> >   }
> >
> >   static void tulip_instance_init(Object *obj)
> >   {
> > -PCIDevice *pci_dev = PCI_DEVICE(obj);
> > -TULIPState *d = DO_UPCAST(TULIPState, dev, pci_dev);
> > +TULIPState *s = TULIP(obj);
> >
> > -device_add_bootindex_property(obj, >c.bootindex,
> > +device_add_bootindex_property(obj, >c.bootindex,
> > "bootindex", "/ethernet-phy@0",
> > -  _dev->qdev);
> > +  DEVICE(obj));
> >   }
> >
> >   static Property tulip_properties[] = {
>




Re: [PATCH v3 09/14] hw/net/tulip: Finish QOM conversion

2023-02-28 Thread Philippe Mathieu-Daudé

Hi Jason, do you Ack this patch?

On 13/2/23 19:43, Philippe Mathieu-Daudé wrote:

Use the TULIP() and DEVICE() QOM type-checking macros.
Remove uses of DO_UPCAST().

Signed-off-by: Philippe Mathieu-Daudé 
---
  hw/net/tulip.c | 20 +++-
  1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/hw/net/tulip.c b/hw/net/tulip.c
index 915e5fb595..990507859d 100644
--- a/hw/net/tulip.c
+++ b/hw/net/tulip.c
@@ -19,7 +19,10 @@
  #include "net/eth.h"
  
  struct TULIPState {

+/*< private >*/
  PCIDevice dev;
+/*< public >*/
+
  MemoryRegion io;
  MemoryRegion memory;
  NICConf c;
@@ -959,7 +962,7 @@ static void tulip_fill_eeprom(TULIPState *s)
  
  static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)

  {
-TULIPState *s = DO_UPCAST(TULIPState, dev, pci_dev);
+TULIPState *s = TULIP(pci_dev);
  uint8_t *pci_conf;
  
  pci_conf = s->dev.config;

@@ -967,7 +970,7 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error 
**errp)
  
  qemu_macaddr_default_if_unset(>c.macaddr);
  
-s->eeprom = eeprom93xx_new(_dev->qdev, 64);

+s->eeprom = eeprom93xx_new(DEVICE(pci_dev), 64);
  tulip_fill_eeprom(s);
  
  memory_region_init_io(>io, OBJECT(>dev), _ops, s,

@@ -983,27 +986,26 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error 
**errp)
  
  s->nic = qemu_new_nic(_tulip_info, >c,

object_get_typename(OBJECT(pci_dev)),
-  pci_dev->qdev.id, s);
+  DEVICE(pci_dev)->id, s);
  qemu_format_nic_info_str(qemu_get_queue(s->nic), s->c.macaddr.a);
  }
  
  static void pci_tulip_exit(PCIDevice *pci_dev)

  {
-TULIPState *s = DO_UPCAST(TULIPState, dev, pci_dev);
+TULIPState *s = TULIP(pci_dev);
  
  qemu_del_nic(s->nic);

  qemu_free_irq(s->irq);
-eeprom93xx_free(_dev->qdev, s->eeprom);
+eeprom93xx_free(DEVICE(s), s->eeprom);
  }
  
  static void tulip_instance_init(Object *obj)

  {
-PCIDevice *pci_dev = PCI_DEVICE(obj);
-TULIPState *d = DO_UPCAST(TULIPState, dev, pci_dev);
+TULIPState *s = TULIP(obj);
  
-device_add_bootindex_property(obj, >c.bootindex,

+device_add_bootindex_property(obj, >c.bootindex,
"bootindex", "/ethernet-phy@0",
-  _dev->qdev);
+  DEVICE(obj));
  }
  
  static Property tulip_properties[] = {





[PATCH v3 09/14] hw/net/tulip: Finish QOM conversion

2023-02-13 Thread Philippe Mathieu-Daudé
Use the TULIP() and DEVICE() QOM type-checking macros.
Remove uses of DO_UPCAST().

Signed-off-by: Philippe Mathieu-Daudé 
---
 hw/net/tulip.c | 20 +++-
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/hw/net/tulip.c b/hw/net/tulip.c
index 915e5fb595..990507859d 100644
--- a/hw/net/tulip.c
+++ b/hw/net/tulip.c
@@ -19,7 +19,10 @@
 #include "net/eth.h"
 
 struct TULIPState {
+/*< private >*/
 PCIDevice dev;
+/*< public >*/
+
 MemoryRegion io;
 MemoryRegion memory;
 NICConf c;
@@ -959,7 +962,7 @@ static void tulip_fill_eeprom(TULIPState *s)
 
 static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
 {
-TULIPState *s = DO_UPCAST(TULIPState, dev, pci_dev);
+TULIPState *s = TULIP(pci_dev);
 uint8_t *pci_conf;
 
 pci_conf = s->dev.config;
@@ -967,7 +970,7 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error 
**errp)
 
 qemu_macaddr_default_if_unset(>c.macaddr);
 
-s->eeprom = eeprom93xx_new(_dev->qdev, 64);
+s->eeprom = eeprom93xx_new(DEVICE(pci_dev), 64);
 tulip_fill_eeprom(s);
 
 memory_region_init_io(>io, OBJECT(>dev), _ops, s,
@@ -983,27 +986,26 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error 
**errp)
 
 s->nic = qemu_new_nic(_tulip_info, >c,
   object_get_typename(OBJECT(pci_dev)),
-  pci_dev->qdev.id, s);
+  DEVICE(pci_dev)->id, s);
 qemu_format_nic_info_str(qemu_get_queue(s->nic), s->c.macaddr.a);
 }
 
 static void pci_tulip_exit(PCIDevice *pci_dev)
 {
-TULIPState *s = DO_UPCAST(TULIPState, dev, pci_dev);
+TULIPState *s = TULIP(pci_dev);
 
 qemu_del_nic(s->nic);
 qemu_free_irq(s->irq);
-eeprom93xx_free(_dev->qdev, s->eeprom);
+eeprom93xx_free(DEVICE(s), s->eeprom);
 }
 
 static void tulip_instance_init(Object *obj)
 {
-PCIDevice *pci_dev = PCI_DEVICE(obj);
-TULIPState *d = DO_UPCAST(TULIPState, dev, pci_dev);
+TULIPState *s = TULIP(obj);
 
-device_add_bootindex_property(obj, >c.bootindex,
+device_add_bootindex_property(obj, >c.bootindex,
   "bootindex", "/ethernet-phy@0",
-  _dev->qdev);
+  DEVICE(obj));
 }
 
 static Property tulip_properties[] = {
-- 
2.38.1