On Wed, 13 May 2015, arei.gong...@huawei.com wrote: > From: Gonglei <arei.gong...@huawei.com> > > Cc: Stefano Stabellini <stefano.stabell...@eu.citrix.com> > Signed-off-by: Gonglei <arei.gong...@huawei.com>
Tested-by: Stefano Stabellini <stefano.stabell...@eu.citrix.com> > hw/xen/xen_pt.c | 10 +++++----- > hw/xen/xen_pt.h | 4 ++++ > 2 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c > index d095c08..6674974 100644 > --- a/hw/xen/xen_pt.c > +++ b/hw/xen/xen_pt.c > @@ -125,7 +125,7 @@ int xen_pt_bar_offset_to_index(uint32_t offset) > > static uint32_t xen_pt_pci_read_config(PCIDevice *d, uint32_t addr, int len) > { > - XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, d); > + XenPCIPassthroughState *s = XEN_PT_DEVICE(d); > uint32_t val = 0; > XenPTRegGroup *reg_grp_entry = NULL; > XenPTReg *reg_entry = NULL; > @@ -230,7 +230,7 @@ exit: > static void xen_pt_pci_write_config(PCIDevice *d, uint32_t addr, > uint32_t val, int len) > { > - XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, d); > + XenPCIPassthroughState *s = XEN_PT_DEVICE(d); > int index = 0; > XenPTRegGroup *reg_grp_entry = NULL; > int rc = 0; > @@ -637,7 +637,7 @@ static const MemoryListener xen_pt_io_listener = { > > static int xen_pt_initfn(PCIDevice *d) > { > - XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, d); > + XenPCIPassthroughState *s = XEN_PT_DEVICE(d); > int rc = 0; > uint8_t machine_irq = 0; > uint16_t cmd = 0; > @@ -755,7 +755,7 @@ out: > > static void xen_pt_unregister_device(PCIDevice *d) > { > - XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, d); > + XenPCIPassthroughState *s = XEN_PT_DEVICE(d); > uint8_t machine_irq = s->machine_irq; > uint8_t intx = xen_pt_pci_intx(s); > int rc; > @@ -825,7 +825,7 @@ static void xen_pci_passthrough_class_init(ObjectClass > *klass, void *data) > }; > > static const TypeInfo xen_pci_passthrough_info = { > - .name = "xen-pci-passthrough", > + .name = TYPE_XEN_PT_DEVICE, > .parent = TYPE_PCI_DEVICE, > .instance_size = sizeof(XenPCIPassthroughState), > .class_init = xen_pci_passthrough_class_init, > diff --git a/hw/xen/xen_pt.h b/hw/xen/xen_pt.h > index 942dc60..e744a3c 100644 > --- a/hw/xen/xen_pt.h > +++ b/hw/xen/xen_pt.h > @@ -36,6 +36,10 @@ typedef struct XenPTReg XenPTReg; > > typedef struct XenPCIPassthroughState XenPCIPassthroughState; > > +#define TYPE_XEN_PT_DEVICE "xen-pci-passthrough" > +#define XEN_PT_DEVICE(obj) \ > + OBJECT_CHECK(XenPCIPassthroughState, (obj), TYPE_XEN_PT_DEVICE) > + > /* function type for config reg */ > typedef int (*xen_pt_conf_reg_init) > (XenPCIPassthroughState *, XenPTRegInfo *, uint32_t real_offset, > -- > 1.7.12.4 > >