drivers/vhost: add vhost_get_vq_buffers() to collect scatter-gather buffers

Add vhost_get_vq_buffers() API to retrieve all chained buffers from a
virtqueue in one call. This simplifies handling of scatter-gather I/O
where data spans multiple descriptors.

The function populates an array of virtqueue_buf structures with buffer
pointers and lengths, returning the descriptor head index on success.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
Signed-off-by: hongfengchen <hongfengchen@xiaomi.com>
This commit is contained in:
Bowen Wang
2024-09-26 22:04:30 +08:00
committed by Xiang Xiao
parent 5051007bfa
commit 2fc2f44b61
2 changed files with 49 additions and 0 deletions
+3
View File
@@ -88,6 +88,9 @@ int vhost_register_device(FAR struct vhost_device *hdev);
int vhost_register_driver(FAR struct vhost_driver *hdrv);
int vhost_unregister_driver(FAR struct vhost_driver *hdrv);
int vhost_unregister_device(FAR struct vhost_device *hdev);
int vhost_get_vq_buffers(FAR struct virtqueue *vq,
FAR struct virtqueue_buf *vb, size_t vbsize,
FAR size_t *vbcnt);
/****************************************************************************
* Name: vhost_register_drivers