[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnal
From: |
Maxime Coquelin |
Subject: |
[Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality |
Date: |
Fri, 9 Sep 2016 12:14:31 +0200 |
This patch adds virtio_test_backend_feature() function to
enable checking a backend feature before the negociation
takes place.
It may be used, for example, to check whether the backend
supports VIRTIO_F_VERSION_1 before enabling modern
capabilities.
Cc: Marcel Apfelbaum <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Cc: address@hidden
Signed-off-by: Maxime Coquelin <address@hidden>
---
hw/virtio/virtio.c | 14 ++++++++++++++
include/hw/virtio/virtio.h | 2 ++
2 files changed, 16 insertions(+)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index 74c085c..7ab91a1 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1481,6 +1481,20 @@ void virtio_vmstate_save(QEMUFile *f, void *opaque,
size_t size)
virtio_save(VIRTIO_DEVICE(opaque), f);
}
+bool virtio_test_backend_feature(VirtIODevice *vdev,
+ unsigned int fbit, Error **errp)
+{
+ VirtioDeviceClass *k = VIRTIO_DEVICE_GET_CLASS(vdev);
+ uint64_t feature;
+
+ virtio_add_feature(&feature, fbit);
+
+ assert(k->get_features != NULL);
+ feature = k->get_features(vdev, feature, errp);
+
+ return virtio_has_feature(feature, fbit);
+}
+
static int virtio_set_features_nocheck(VirtIODevice *vdev, uint64_t val)
{
VirtioDeviceClass *k = VIRTIO_DEVICE_GET_CLASS(vdev);
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index d2490c1..5fb74c8 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -235,6 +235,8 @@ int virtio_set_status(VirtIODevice *vdev, uint8_t val);
void virtio_reset(void *opaque);
void virtio_update_irq(VirtIODevice *vdev);
int virtio_set_features(VirtIODevice *vdev, uint64_t val);
+bool virtio_test_backend_feature(VirtIODevice *vdev,
+ unsigned int fbit, Error **errp);
/* Base devices. */
typedef struct VirtIOBlkConf VirtIOBlkConf;
--
2.7.4
- [Qemu-devel] [PATCH 0/2] virtio-pci: Improve device plugging whith legacy backends, Maxime Coquelin, 2016/09/09
- [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality,
Maxime Coquelin <=
- Re: [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality, Cornelia Huck, 2016/09/09
- Re: [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality, Marcel Apfelbaum, 2016/09/09
- Re: [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality, Cornelia Huck, 2016/09/09
- Re: [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality, Marcel Apfelbaum, 2016/09/09
- Re: [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality, Cornelia Huck, 2016/09/09
- Re: [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality, Maxime Coquelin, 2016/09/09
- Re: [Qemu-devel] [PATCH 1/2] virtio: Add backend feature testing functionnality, Marcel Apfelbaum, 2016/09/09
[Qemu-devel] [PATCH 2/2] virtio-pci: Disable modern interface if backend without VIRTIO_F_VERSION_1, Maxime Coquelin, 2016/09/09