mirror of https://github.com/xemu-project/xemu.git
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -83,6 +83,10 @@ typedef struct VirtioBusClass {
|
|||
*/
|
||||
int (*ioeventfd_assign)(DeviceState *d, EventNotifier *notifier,
|
||||
int n, bool assign);
|
||||
/*
|
||||
* Whether queue number n is enabled.
|
||||
*/
|
||||
bool (*queue_enabled)(DeviceState *d, int n);
|
||||
/*
|
||||
* Does the transport have variable vring alignment?
|
||||
* (ie can it ever call virtio_queue_set_align()?)
|
||||
|
|
Loading…
Reference in New Issue