]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Support virtio-mmio in virtio_init
authorAsias He <asias.hejun@gmail.com>
Sat, 7 Apr 2012 11:47:34 +0000 (19:47 +0800)
committerPekka Enberg <penberg@kernel.org>
Mon, 9 Apr 2012 08:34:47 +0000 (11:34 +0300)
This patch adds virtio-mmio support in virtio_init.

Signed-off-by: Asias He <asias.hejun@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/virtio/core.c

index 20b90be9154f4f8f14c15967b9ba591331c39708..da2749212fc6b8cd365a9a954bc5848c8537b6fa 100644 (file)
@@ -6,6 +6,7 @@
 #include "kvm/barrier.h"
 #include "kvm/virtio.h"
 #include "kvm/virtio-pci.h"
+#include "kvm/virtio-mmio.h"
 #include "kvm/util.h"
 #include "kvm/kvm.h"
 
@@ -179,6 +180,18 @@ int virtio_init(struct kvm *kvm, void *dev, struct virtio_device *vdev,
                vdev->ops->exit                 = virtio_pci__exit;
                vdev->ops->init(kvm, dev, vdev, device_id, subsys_id, class);
                break;
+       case VIRTIO_MMIO:
+               virtio = calloc(sizeof(struct virtio_mmio), 1);
+               if (!virtio)
+                       return -ENOMEM;
+               vdev->virtio                    = virtio;
+               vdev->ops                       = ops;
+               vdev->ops->signal_vq            = virtio_mmio_signal_vq;
+               vdev->ops->signal_config        = virtio_mmio_signal_config;
+               vdev->ops->init                 = virtio_mmio_init;
+               vdev->ops->exit                 = virtio_mmio_exit;
+               vdev->ops->init(kvm, dev, vdev, device_id, subsys_id, class);
+               break;
        default:
                return -1;
        };