Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F115207367
D32371.id96480.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D32371.id96480.diff
View Options
Index: sys/dev/virtio/virtqueue.h
===================================================================
--- sys/dev/virtio/virtqueue.h
+++ sys/dev/virtio/virtqueue.h
@@ -92,7 +92,9 @@
int virtqueue_size(struct virtqueue *vq);
int virtqueue_nfree(struct virtqueue *vq);
int virtqueue_nused(struct virtqueue *vq);
-void virtqueue_notify(struct virtqueue *vq);
+bool vq_ring_must_notify_host(struct virtqueue *vq);
+bool vq_ring_notify_host(struct virtqueue *vq);
+bool virtqueue_notify(struct virtqueue *vq);
void virtqueue_dump(struct virtqueue *vq);
int virtqueue_enqueue(struct virtqueue *vq, void *cookie,
Index: sys/dev/virtio/virtqueue.c
===================================================================
--- sys/dev/virtio/virtqueue.c
+++ sys/dev/virtio/virtqueue.c
@@ -134,8 +134,6 @@
static void vq_ring_enqueue_indirect(struct virtqueue *, void *,
struct sglist *, int, int);
static int vq_ring_enable_interrupt(struct virtqueue *, uint16_t);
-static int vq_ring_must_notify_host(struct virtqueue *);
-static void vq_ring_notify_host(struct virtqueue *);
static void vq_ring_free_chain(struct virtqueue *, uint16_t);
SDT_PROVIDER_DEFINE(virtqueue);
@@ -434,7 +432,7 @@
return (vq->vq_free_cnt == 0);
}
-void
+bool
virtqueue_notify(struct virtqueue *vq)
{
@@ -444,6 +442,8 @@
if (vq_ring_must_notify_host(vq))
vq_ring_notify_host(vq);
vq->vq_queued_cnt = 0;
+ /* Unlike the Linux API, we currently never report failure. */
+ return true;
}
int
@@ -820,7 +820,7 @@
return (0);
}
-static int
+bool
vq_ring_must_notify_host(struct virtqueue *vq)
{
uint16_t new_idx, prev_idx, event_idx, flags;
@@ -837,12 +837,13 @@
return ((flags & vq_gtoh16(vq, VRING_USED_F_NO_NOTIFY)) == 0);
}
-static void
+bool
vq_ring_notify_host(struct virtqueue *vq)
{
-
+ /* TODO: return success/failure */
VIRTIO_BUS_NOTIFY_VQ(vq->vq_dev, vq->vq_queue_index,
vq->vq_notify_offset);
+ return true;
}
static void
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Apr 22, 10:47 AM (4 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17703613
Default Alt Text
D32371.id96480.diff (1 KB)
Attached To
Mode
D32371: virtqueue: expose two helper functions
Attached
Detach File
Event Timeline
Log In to Comment