Re: [PATCH v3 09/14] hw/net/tulip: Finish QOM conversion
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
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
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