Introduce type constant and cast macro to obsolete DO_UPCAST() and container_of(). Prepares for ISA realizefn.
Unify function naming scheme while at it. Signed-off-by: Andreas Färber <afaer...@suse.de> --- hw/vga-isa.c | 29 +++++++++++++++++------------ 1 Datei geändert, 17 Zeilen hinzugefügt(+), 12 Zeilen entfernt(-) diff --git a/hw/vga-isa.c b/hw/vga-isa.c index 046602b..f177c48 100644 --- a/hw/vga-isa.c +++ b/hw/vga-isa.c @@ -31,14 +31,18 @@ #include "qemu-timer.h" #include "loader.h" +#define TYPE_ISA_VGA "isa-vga" +#define ISA_VGA(obj) OBJECT_CHECK(ISAVGAState, (obj), TYPE_ISA_VGA) + typedef struct ISAVGAState { - ISADevice dev; + ISADevice parent_obj; + struct VGACommonState state; } ISAVGAState; -static void vga_reset_isa(DeviceState *dev) +static void vga_isa_reset(DeviceState *dev) { - ISAVGAState *d = container_of(dev, ISAVGAState, dev.qdev); + ISAVGAState *d = ISA_VGA(dev); VGACommonState *s = &d->state; vga_common_reset(s); @@ -46,7 +50,7 @@ static void vga_reset_isa(DeviceState *dev) static int vga_initfn(ISADevice *dev) { - ISAVGAState *d = DO_UPCAST(ISAVGAState, dev, dev); + ISAVGAState *d = ISA_VGA(dev); VGACommonState *s = &d->state; MemoryRegion *vga_io_memory; const MemoryRegionPortio *vga_ports, *vbe_ports; @@ -76,26 +80,27 @@ static Property vga_isa_properties[] = { DEFINE_PROP_END_OF_LIST(), }; -static void vga_class_initfn(ObjectClass *klass, void *data) +static void vga_isa_class_initfn(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); ISADeviceClass *ic = ISA_DEVICE_CLASS(klass); + ic->init = vga_initfn; - dc->reset = vga_reset_isa; + dc->reset = vga_isa_reset; dc->vmsd = &vmstate_vga_common; dc->props = vga_isa_properties; } -static TypeInfo vga_info = { - .name = "isa-vga", +static const TypeInfo vga_isa_info = { + .name = TYPE_ISA_VGA, .parent = TYPE_ISA_DEVICE, .instance_size = sizeof(ISAVGAState), - .class_init = vga_class_initfn, + .class_init = vga_isa_class_initfn, }; -static void vga_register_types(void) +static void vga_isa_register_types(void) { - type_register_static(&vga_info); + type_register_static(&vga_isa_info); } -type_init(vga_register_types) +type_init(vga_isa_register_types) -- 1.7.10.4