> > +/* Toggle guest->host notifies */
> > +void vring_set_notification(VirtIODevice *vdev, Vring *vring, bool
> > enable)
> > +{
> > + if (vdev->guest_features & (1 << VIRTIO_RING_F_EVENT_IDX)) {
> > + if (enable) {
> > + vring_avail_event(&vring->vr) = vring->vr.avail->idx;
> > + }
> > + } else if (enable) {
> > + vring->vr.used->flags &= ~VRING_USED_F_NO_NOTIFY;
> > + } else {
> > + vring->vr.used->flags |= VRING_USED_F_NO_NOTIFY;
> > + }
> > +}
This is similar to the (guest-side) virtqueue_disable_cb/virtqueue_enable_cb.
Perhaps having two functions will be easier to use, because from your
other code it looks like you'd benefit from a return value when
enable == true (again similar to virtqueue_enable_cb).
Paolo