Revision 6acf69cd hw/s390x/virtio-ccw.c
b/hw/s390x/virtio-ccw.c | ||
---|---|---|
590 | 590 |
object_property_add_child(obj, "virtio-backend", OBJECT(&dev->vdev), NULL); |
591 | 591 |
} |
592 | 592 |
|
593 |
static int virtio_ccw_serial_init(VirtioCcwDevice *dev) |
|
593 |
static int virtio_ccw_serial_init(VirtioCcwDevice *ccw_dev)
|
|
594 | 594 |
{ |
595 |
VirtIODevice *vdev; |
|
595 |
VirtioSerialCcw *dev = VIRTIO_SERIAL_CCW(ccw_dev); |
|
596 |
DeviceState *vdev = DEVICE(&dev->vdev); |
|
596 | 597 |
|
597 |
vdev = virtio_serial_init((DeviceState *)dev, &dev->serial);
|
|
598 |
if (!vdev) {
|
|
598 |
qdev_set_parent_bus(vdev, BUS(&ccw_dev->bus));
|
|
599 |
if (qdev_init(vdev) < 0) {
|
|
599 | 600 |
return -1; |
600 | 601 |
} |
601 | 602 |
|
602 |
return virtio_ccw_device_init(dev, vdev);
|
|
603 |
return virtio_ccw_device_init(ccw_dev, VIRTIO_DEVICE(vdev));
|
|
603 | 604 |
} |
604 | 605 |
|
605 |
static int virtio_ccw_serial_exit(VirtioCcwDevice *dev) |
|
606 |
|
|
607 |
static void virtio_ccw_serial_instance_init(Object *obj) |
|
606 | 608 |
{ |
607 |
virtio_serial_exit(dev->vdev); |
|
608 |
return virtio_ccw_exit(dev); |
|
609 |
VirtioSerialCcw *dev = VIRTIO_SERIAL_CCW(obj); |
|
610 |
object_initialize(OBJECT(&dev->vdev), TYPE_VIRTIO_SERIAL); |
|
611 |
object_property_add_child(obj, "virtio-backend", OBJECT(&dev->vdev), NULL); |
|
609 | 612 |
} |
610 | 613 |
|
611 | 614 |
static int virtio_ccw_balloon_init(VirtioCcwDevice *ccw_dev) |
... | ... | |
786 | 789 |
|
787 | 790 |
static Property virtio_ccw_serial_properties[] = { |
788 | 791 |
DEFINE_PROP_STRING("devno", VirtioCcwDevice, bus_id), |
789 |
DEFINE_VIRTIO_SERIAL_PROPERTIES(VirtioCcwDevice, serial),
|
|
792 |
DEFINE_VIRTIO_SERIAL_PROPERTIES(VirtioSerialCcw, vdev.serial),
|
|
790 | 793 |
DEFINE_VIRTIO_COMMON_FEATURES(VirtioCcwDevice, host_features[0]), |
791 | 794 |
DEFINE_PROP_END_OF_LIST(), |
792 | 795 |
}; |
... | ... | |
797 | 800 |
VirtIOCCWDeviceClass *k = VIRTIO_CCW_DEVICE_CLASS(klass); |
798 | 801 |
|
799 | 802 |
k->init = virtio_ccw_serial_init; |
800 |
k->exit = virtio_ccw_serial_exit;
|
|
803 |
k->exit = virtio_ccw_exit; |
|
801 | 804 |
dc->reset = virtio_ccw_reset; |
802 | 805 |
dc->props = virtio_ccw_serial_properties; |
803 | 806 |
} |
804 | 807 |
|
805 | 808 |
static const TypeInfo virtio_ccw_serial = { |
806 |
.name = "virtio-serial-ccw",
|
|
809 |
.name = TYPE_VIRTIO_SERIAL_CCW,
|
|
807 | 810 |
.parent = TYPE_VIRTIO_CCW_DEVICE, |
808 |
.instance_size = sizeof(VirtioCcwDevice), |
|
811 |
.instance_size = sizeof(VirtioSerialCcw), |
|
812 |
.instance_init = virtio_ccw_serial_instance_init, |
|
809 | 813 |
.class_init = virtio_ccw_serial_class_init, |
810 | 814 |
}; |
811 | 815 |
|
Also available in: Unified diff