@@ -1842,6 +1842,8 @@ static int usb_ohci_init(OHCIState *ohci, DeviceState *dev,
return 0;
}
+#define TYPE_PCI_OHCI "pci-ohci"
+#define PCI_OHCI(obj) OBJECT_CHECK(OHCIPCIState, (obj), TYPE_PCI_OHCI)
typedef struct {
PCIDevice pci_dev;
OHCIState state;
@@ -1852,7 +1854,7 @@ typedef struct {
static int usb_ohci_initfn_pci(struct PCIDevice *dev)
{
- OHCIPCIState *ohci = DO_UPCAST(OHCIPCIState, pci_dev, dev);
+ OHCIPCIState *ohci = PCI_OHCI(dev);
ohci->pci_dev.config[PCI_CLASS_PROG] = 0x10; /* OHCI */
ohci->pci_dev.config[PCI_INTERRUPT_PIN] = 0x01; /* interrupt pin A */
@@ -1869,6 +1871,9 @@ static int usb_ohci_initfn_pci(struct PCIDevice *dev)
return 0;
}
+#define TYPE_SYSBUS_OHCI "sysbus-ohci"
+#define SYSBUS_OHCI(obj) OBJECT_CHECK(OHCISysBusState, (obj), TYPE_SYSBUS_OHCI)
+
typedef struct {
SysBusDevice busdev;
OHCIState ohci;
@@ -1878,8 +1883,8 @@ typedef struct {
static void ohci_realize_pxa(DeviceState *dev, Error **errp)
{
- OHCISysBusState *s = DO_UPCAST(OHCISysBusState, busdev.qdev, dev);
- SysBusDevice *b = SYS_BUS_DEVICE(dev);
+ OHCISysBusState *s = SYSBUS_OHCI(dev);
+ SysBusDevice *b= SYS_BUS_DEVICE(dev);
/* Cannot fail as we pass NULL for masterbus */
usb_ohci_init(&s->ohci, dev, s->num_ports, s->dma_offset, NULL, 0,
@@ -1910,7 +1915,7 @@ static void ohci_pci_class_init(ObjectClass *klass, void *data)
}
static const TypeInfo ohci_pci_info = {
- .name = "pci-ohci",
+ .name = TYPE_PCI_OHCI,
.parent = TYPE_PCI_DEVICE,
.instance_size = sizeof(OHCIPCIState),
.class_init = ohci_pci_class_init,
@@ -1932,7 +1937,7 @@ static void ohci_sysbus_class_init(ObjectClass *klass, void *data)
}
static const TypeInfo ohci_sysbus_info = {
- .name = "sysbus-ohci",
+ .name = TYPE_SYSBUS_OHCI,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(OHCISysBusState),
.class_init = ohci_sysbus_class_init,
Introduce type constant and avoid DO_UPCAST(). Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> --- hw/usb/hcd-ohci.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-)