Revision 53c25cea hw/virtio-blk.c

b/hw/virtio-blk.c
348 348
    return 0;
349 349
}
350 350

  
351
static void virtio_blk_init(PCIDevice *pci_dev)
351
VirtIODevice *virtio_blk_init(DeviceState *dev)
352 352
{
353 353
    VirtIOBlock *s;
354 354
    int cylinders, heads, secs;
355 355
    static int virtio_blk_id;
356 356
    BlockDriverState *bs;
357 357

  
358
    s = (VirtIOBlock *)virtio_init_pci(pci_dev, "virtio-blk",
359
                                       PCI_VENDOR_ID_REDHAT_QUMRANET,
360
                                       PCI_DEVICE_ID_VIRTIO_BLOCK,
361
                                       PCI_VENDOR_ID_REDHAT_QUMRANET,
362
                                       VIRTIO_ID_BLOCK,
363
                                       PCI_CLASS_STORAGE_OTHER, 0x00,
364
                                       sizeof(struct virtio_blk_config));
358
    s = (VirtIOBlock *)virtio_common_init("virtio-blk", VIRTIO_ID_BLOCK,
359
                                          sizeof(struct virtio_blk_config),
360
                                          sizeof(VirtIOBlock));
365 361

  
366
    bs = qdev_init_bdrv(&pci_dev->qdev, IF_VIRTIO);
362
    bs = qdev_init_bdrv(dev, IF_VIRTIO);
367 363
    s->vdev.get_config = virtio_blk_update_config;
368 364
    s->vdev.get_features = virtio_blk_get_features;
369 365
    s->vdev.reset = virtio_blk_reset;
370 366
    s->bs = bs;
371 367
    s->rq = NULL;
372
    bs->private = &s->vdev.pci_dev;
368
    bs->private = dev;
373 369
    bdrv_guess_geometry(s->bs, &cylinders, &heads, &secs);
374 370
    bdrv_set_geometry_hint(s->bs, cylinders, heads, secs);
375 371

  
......
378 374
    qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s);
379 375
    register_savevm("virtio-blk", virtio_blk_id++, 2,
380 376
                    virtio_blk_save, virtio_blk_load, s);
381
}
382 377

  
383
static void virtio_blk_register_devices(void)
384
{
385
    pci_qdev_register("virtio-blk", sizeof(VirtIOBlock), virtio_blk_init);
378
    return &s->vdev;
386 379
}
387

  
388
device_init(virtio_blk_register_devices)

Also available in: Unified diff