mirror of
https://github.com/qemu/qemu.git
synced 2025-08-09 01:50:43 +00:00
virtio-bus: introduce queue_enabled method
This patch introduces queue_enabled() method which allows the transport to implement its own way to report whether or not a queue is enabled. Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Cindy Lu <lulu@redhat.com> Message-Id: <20200701145538.22333-4-lulu@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
92fbc3e07e
commit
b2a5f62a22
@ -3286,6 +3286,12 @@ hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n)
|
|||||||
|
|
||||||
bool virtio_queue_enabled(VirtIODevice *vdev, int n)
|
bool virtio_queue_enabled(VirtIODevice *vdev, int n)
|
||||||
{
|
{
|
||||||
|
BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
|
||||||
|
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
|
||||||
|
|
||||||
|
if (k->queue_enabled) {
|
||||||
|
return k->queue_enabled(qbus->parent, n);
|
||||||
|
}
|
||||||
return virtio_queue_get_desc_addr(vdev, n) != 0;
|
return virtio_queue_get_desc_addr(vdev, n) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,6 +83,10 @@ typedef struct VirtioBusClass {
|
|||||||
*/
|
*/
|
||||||
int (*ioeventfd_assign)(DeviceState *d, EventNotifier *notifier,
|
int (*ioeventfd_assign)(DeviceState *d, EventNotifier *notifier,
|
||||||
int n, bool assign);
|
int n, bool assign);
|
||||||
|
/*
|
||||||
|
* Whether queue number n is enabled.
|
||||||
|
*/
|
||||||
|
bool (*queue_enabled)(DeviceState *d, int n);
|
||||||
/*
|
/*
|
||||||
* Does the transport have variable vring alignment?
|
* Does the transport have variable vring alignment?
|
||||||
* (ie can it ever call virtio_queue_set_align()?)
|
* (ie can it ever call virtio_queue_set_align()?)
|
||||||
|
Loading…
Reference in New Issue
Block a user