diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2013-09-20 13:59:08 +0200 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2013-12-09 21:46:48 +0100 |
| commit | 5e96f5d2f8d2696ef7d2d8d7282c18fa6023470b (patch) | |
| tree | e90b205656defa4bd7f36a22e37730ff060b2afd /include/hw/virtio/virtio.h | |
| parent | a3fc66d9fd37acbfcee013692246a8ae42bd93bb (diff) | |
| download | focaccia-qemu-5e96f5d2f8d2696ef7d2d8d7282c18fa6023470b.tar.gz focaccia-qemu-5e96f5d2f8d2696ef7d2d8d7282c18fa6023470b.zip | |
virtio-bus: cleanup plug/unplug interface
Right now we have these pairs: - virtio_bus_plug_device/virtio_bus_destroy_device. The first takes a VirtIODevice, the second takes a VirtioBusState - device_plugged/device_unplug callbacks in the VirtioBusClass (here it's just the naming that is inconsistent) - virtio_bus_destroy_device is not called by anyone (and since it calls qdev_free, it would be called by the proxies---but then the callback is useless since the proxies can do whatever they want before calling virtio_bus_destroy_device) And there is a k->init but no k->exit, hence virtio_device_exit is overwritten by subclasses (except virtio-9p). This cleans it up by: - renaming the device_unplug callback to device_unplugged - renaming virtio_bus_plug_device to virtio_bus_device_plugged, matching the callback name - renaming virtio_bus_destroy_device to virtio_bus_device_unplugged, removing the qdev_free, making it take a VirtIODevice and calling it from virtio_device_exit - adding a k->exit callback virtio_device_exit is still overwritten, the next patches will fix that. Cc: qemu-stable@nongnu.org Acked-by: Andreas Faerber <afaerber@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/hw/virtio/virtio.h')
| -rw-r--r-- | include/hw/virtio/virtio.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index a90522d6d6..59756c29b9 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -127,6 +127,7 @@ typedef struct VirtioDeviceClass { /* This is what a VirtioDevice must implement */ DeviceClass parent; int (*init)(VirtIODevice *vdev); + void (*exit)(VirtIODevice *vdev); uint32_t (*get_features)(VirtIODevice *vdev, uint32_t requested_features); uint32_t (*bad_features)(VirtIODevice *vdev); void (*set_features)(VirtIODevice *vdev, uint32_t val); |