> > +/* 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