This way SVQ queues can be migrated. Signed-off-by: Eugenio Pérez <epere...@redhat.com> --- hw/virtio/vhost-shadow-virtqueue.h | 1 + hw/virtio/vhost-shadow-virtqueue.c | 8 ++++++++ 2 files changed, 9 insertions(+)
diff --git a/hw/virtio/vhost-shadow-virtqueue.h b/hw/virtio/vhost-shadow-virtqueue.h index c6f67d6f76..a2b0c6434d 100644 --- a/hw/virtio/vhost-shadow-virtqueue.h +++ b/hw/virtio/vhost-shadow-virtqueue.h @@ -30,6 +30,7 @@ const EventNotifier *vhost_svq_get_svq_call_notifier( const VhostShadowVirtqueue *svq); void vhost_svq_get_vring_addr(const VhostShadowVirtqueue *svq, struct vhost_vring_addr *addr); +uint16_t vhost_svq_get_last_used_idx(const VhostShadowVirtqueue *svq); uint16_t vhost_svq_get_num(const VhostShadowVirtqueue *svq); size_t vhost_svq_driver_area_size(const VhostShadowVirtqueue *svq); size_t vhost_svq_device_area_size(const VhostShadowVirtqueue *svq); diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-virtqueue.c index c7888eb8cf..eb0a3fcb80 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -574,6 +574,14 @@ void vhost_svq_get_vring_addr(const VhostShadowVirtqueue *svq, addr->used_user_addr = (uint64_t)svq->vring.used; } +/** + * Get the next index that SVQ is going to consume from SVQ used ring. + */ +uint16_t vhost_svq_get_last_used_idx(const VhostShadowVirtqueue *svq) +{ + return svq->last_used_idx; +} + uint16_t vhost_svq_get_num(const VhostShadowVirtqueue *svq) { return svq->vring.num; -- 2.27.0