|
@@ -913,14 +913,15 @@ static void virtio_ccw_notify(DeviceState *d, uint16_t vector)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static void virtio_ccw_reset(DeviceState *d)
|
|
|
|
|
|
+static void virtio_ccw_reset_hold(Object *obj, ResetType type)
|
|
{
|
|
{
|
|
- VirtioCcwDevice *dev = VIRTIO_CCW_DEVICE(d);
|
|
|
|
|
|
+ VirtioCcwDevice *dev = VIRTIO_CCW_DEVICE(obj);
|
|
VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_GET_CLASS(dev);
|
|
VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_GET_CLASS(dev);
|
|
|
|
|
|
virtio_ccw_reset_virtio(dev);
|
|
virtio_ccw_reset_virtio(dev);
|
|
- if (vdc->parent_reset) {
|
|
|
|
- vdc->parent_reset(d);
|
|
|
|
|
|
+
|
|
|
|
+ if (vdc->parent_phases.hold) {
|
|
|
|
+ vdc->parent_phases.hold(obj, type);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1233,11 +1234,13 @@ static void virtio_ccw_device_class_init(ObjectClass *klass, void *data)
|
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
|
DeviceClass *dc = DEVICE_CLASS(klass);
|
|
CCWDeviceClass *k = CCW_DEVICE_CLASS(dc);
|
|
CCWDeviceClass *k = CCW_DEVICE_CLASS(dc);
|
|
VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_CLASS(klass);
|
|
VirtIOCCWDeviceClass *vdc = VIRTIO_CCW_DEVICE_CLASS(klass);
|
|
|
|
+ ResettableClass *rc = RESETTABLE_CLASS(klass);
|
|
|
|
|
|
k->unplug = virtio_ccw_busdev_unplug;
|
|
k->unplug = virtio_ccw_busdev_unplug;
|
|
dc->realize = virtio_ccw_busdev_realize;
|
|
dc->realize = virtio_ccw_busdev_realize;
|
|
dc->unrealize = virtio_ccw_busdev_unrealize;
|
|
dc->unrealize = virtio_ccw_busdev_unrealize;
|
|
- device_class_set_parent_reset(dc, virtio_ccw_reset, &vdc->parent_reset);
|
|
|
|
|
|
+ resettable_class_set_parent_phases(rc, NULL, virtio_ccw_reset_hold, NULL,
|
|
|
|
+ &vdc->parent_phases);
|
|
}
|
|
}
|
|
|
|
|
|
static const TypeInfo virtio_ccw_device_info = {
|
|
static const TypeInfo virtio_ccw_device_info = {
|