Commit 07e3af9ac31008a1d7eaaf44d62a13545f01c579
1 parent
b4496b13
Virtio-blk qdev conversion
Signed-off-by: Paul Brook <paul@codesourcery.com>
Showing
6 changed files
with
15 additions
and
18 deletions
hw/pc.c
... | ... | @@ -33,7 +33,6 @@ |
33 | 33 | #include "boards.h" |
34 | 34 | #include "monitor.h" |
35 | 35 | #include "fw_cfg.h" |
36 | -#include "virtio-blk.h" | |
37 | 36 | #include "virtio-balloon.h" |
38 | 37 | #include "virtio-console.h" |
39 | 38 | #include "hpet_emul.h" |
... | ... | @@ -1136,7 +1135,7 @@ static void pc_init1(ram_addr_t ram_size, |
1136 | 1135 | int unit_id = 0; |
1137 | 1136 | |
1138 | 1137 | while ((index = drive_get_index(IF_VIRTIO, 0, unit_id)) != -1) { |
1139 | - virtio_blk_init(pci_bus, drives_table[index].bdrv); | |
1138 | + pci_create_simple(pci_bus, -1, "virtio-blk"); | |
1140 | 1139 | unit_id++; |
1141 | 1140 | } |
1142 | 1141 | } | ... | ... |
hw/pci-hotplug.c
... | ... | @@ -120,7 +120,8 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon, PCIBus *pci_bus, |
120 | 120 | opaque = pci_create_simple(pci_bus, -1, "lsi53c895a"); |
121 | 121 | break; |
122 | 122 | case IF_VIRTIO: |
123 | - opaque = virtio_blk_init (pci_bus, drives_table[drive_idx].bdrv); | |
123 | + opaque = pci_create_simple(pci_bus, -1, "virtio-blk"); | |
124 | + qdev_init(opaque); | |
124 | 125 | break; |
125 | 126 | } |
126 | 127 | ... | ... |
hw/ppc440_bamboo.c
... | ... | @@ -16,7 +16,6 @@ |
16 | 16 | #include "net.h" |
17 | 17 | #include "hw.h" |
18 | 18 | #include "pci.h" |
19 | -#include "virtio-blk.h" | |
20 | 19 | #include "virtio-console.h" |
21 | 20 | #include "boards.h" |
22 | 21 | #include "sysemu.h" |
... | ... | @@ -113,7 +112,7 @@ static void bamboo_init(ram_addr_t ram_size, |
113 | 112 | |
114 | 113 | /* Add virtio block devices. */ |
115 | 114 | while ((i = drive_get_index(IF_VIRTIO, 0, unit_id)) != -1) { |
116 | - virtio_blk_init(pcibus, drives_table[i].bdrv); | |
115 | + pci_create_simple(pcibus, -1, "virtio-blk"); | |
117 | 116 | unit_id++; |
118 | 117 | } |
119 | 118 | ... | ... |
hw/ppce500_mpc8544ds.c
... | ... | @@ -22,7 +22,6 @@ |
22 | 22 | #include "hw.h" |
23 | 23 | #include "pc.h" |
24 | 24 | #include "pci.h" |
25 | -#include "virtio-blk.h" | |
26 | 25 | #include "boards.h" |
27 | 26 | #include "sysemu.h" |
28 | 27 | #include "kvm.h" |
... | ... | @@ -221,7 +220,7 @@ static void mpc8544ds_init(ram_addr_t ram_size, |
221 | 220 | |
222 | 221 | /* Add virtio block devices. */ |
223 | 222 | while ((i = drive_get_index(IF_VIRTIO, 0, unit_id)) != -1) { |
224 | - virtio_blk_init(pci_bus, drives_table[i].bdrv); | |
223 | + pci_create_simple(pci_bus, -1, "virtio-blk"); | |
225 | 224 | unit_id++; |
226 | 225 | } |
227 | 226 | ... | ... |
hw/virtio-blk.c
... | ... | @@ -348,19 +348,14 @@ static int virtio_blk_load(QEMUFile *f, void *opaque, int version_id) |
348 | 348 | return 0; |
349 | 349 | } |
350 | 350 | |
351 | -void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs) | |
351 | +static void virtio_blk_init(PCIDevice *pci_dev) | |
352 | 352 | { |
353 | 353 | VirtIOBlock *s; |
354 | 354 | int cylinders, heads, secs; |
355 | 355 | static int virtio_blk_id; |
356 | - PCIDevice *d; | |
357 | - | |
358 | - d = pci_register_device(bus, "virtio-blk", sizeof(VirtIOBlock), | |
359 | - -1, NULL, NULL); | |
360 | - if (!d) | |
361 | - return NULL; | |
356 | + BlockDriverState *bs; | |
362 | 357 | |
363 | - s = (VirtIOBlock *)virtio_init_pci(d, "virtio-blk", | |
358 | + s = (VirtIOBlock *)virtio_init_pci(pci_dev, "virtio-blk", | |
364 | 359 | PCI_VENDOR_ID_REDHAT_QUMRANET, |
365 | 360 | PCI_DEVICE_ID_VIRTIO_BLOCK, |
366 | 361 | PCI_VENDOR_ID_REDHAT_QUMRANET, |
... | ... | @@ -368,6 +363,7 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs) |
368 | 363 | PCI_CLASS_STORAGE_OTHER, 0x00, |
369 | 364 | sizeof(struct virtio_blk_config)); |
370 | 365 | |
366 | + bs = qdev_init_bdrv(&pci_dev->qdev, IF_VIRTIO); | |
371 | 367 | s->vdev.get_config = virtio_blk_update_config; |
372 | 368 | s->vdev.get_features = virtio_blk_get_features; |
373 | 369 | s->vdev.reset = virtio_blk_reset; |
... | ... | @@ -382,6 +378,11 @@ void *virtio_blk_init(PCIBus *bus, BlockDriverState *bs) |
382 | 378 | qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s); |
383 | 379 | register_savevm("virtio-blk", virtio_blk_id++, 2, |
384 | 380 | virtio_blk_save, virtio_blk_load, s); |
381 | +} | |
385 | 382 | |
386 | - return s; | |
383 | +static void virtio_blk_register_devices(void) | |
384 | +{ | |
385 | + pci_qdev_register("virtio-blk", sizeof(VirtIOBlock), virtio_blk_init); | |
387 | 386 | } |
387 | + | |
388 | +device_init(virtio_blk_register_devices) | ... | ... |